diff --git a/misc/cgo/testgodefs/testdata/issue39534.go b/misc/cgo/testgodefs/testdata/issue39534.go new file mode 100644 index 00000000000..9899ba16734 --- /dev/null +++ b/misc/cgo/testgodefs/testdata/issue39534.go @@ -0,0 +1,12 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +// +// +build ignore + +package main + +// enum { ENUMVAL = 0x1 }; +import "C" + +const ENUMVAL = C.ENUMVAL diff --git a/misc/cgo/testgodefs/testgodefs_test.go b/misc/cgo/testgodefs/testgodefs_test.go index 178fff3fbc1..e4085f9ca80 100644 --- a/misc/cgo/testgodefs/testgodefs_test.go +++ b/misc/cgo/testgodefs/testgodefs_test.go @@ -24,6 +24,7 @@ var filePrefixes = []string{ "issue37479", "issue37621", "issue38649", + "issue39534", } func TestGoDefs(t *testing.T) { diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go index d903a7afb56..a59534ebd0a 100644 --- a/src/cmd/cgo/gcc.go +++ b/src/cmd/cgo/gcc.go @@ -1354,7 +1354,7 @@ func (p *Package) rewriteRef(f *File) { if *godefs { // Substitute definition for mangled type name. - if r.Name.Type != nil { + if r.Name.Type != nil && r.Name.Kind == "type" { expr = r.Name.Type.Go } if id, ok := expr.(*ast.Ident); ok {