https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113070
Bug ID: 113070 Summary: [14 regression] [AArch64] [PGO/LTO] Miscompilation of go compiler Product: gcc Version: 14.0 Status: UNCONFIRMED Keywords: lto, wrong-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: sch...@linux-m68k.org Target Milestone: --- Target: aarch64-*-* https://build.opensuse.org/package/live_build_log/devel:gcc:next/gcc14/openSUSE_Factory_ARM/aarch64 In a PGO/LTO bootstrap the Go compiler is apparently miscompiled: make[4]: Entering directory '/home/abuild/rpmbuild/BUILD/gcc-14.0.0+git6645/obj-aarch64-suse-linux/aarch64-suse-linux/libgo' /usr/bin/mkdir -p internal; files=`echo ../../../libgo/go/internal/goarch/goarch.go zgoarch.go | sed -e 's/[^ ]*\.gox//g' -e 's/[^ ]*\.dep//'`; /bin/sh ./libtool --tag GO --mode=compile /home/abuild/rpmbuild/BUILD/gcc-14.0.0+git6645/obj-aarch64-suse-linux/./gcc/gccgo -B/home/abuild/rpmbuild/BUILD/gcc-14.0.0+git6645/obj-aarch64-suse-linux/./gcc/ -B/usr/aarch64-suse-linux/bin/ -B/usr/aarch64-suse-linux/lib/ -isystem /usr/aarch64-suse-linux/include -isystem /usr/aarch64-suse-linux/sys-include -O2 -g -I . -c -fgo-pkgpath=`echo internal/goarch.lo | sed -e 's/.lo$//'` -o internal/goarch.lo $files libtool: compile: /home/abuild/rpmbuild/BUILD/gcc-14.0.0+git6645/obj-aarch64-suse-linux/./gcc/gccgo -B/home/abuild/rpmbuild/BUILD/gcc-14.0.0+git6645/obj-aarch64-suse-linux/./gcc/ -B/usr/aarch64-suse-linux/bin/ -B/usr/aarch64-suse-linux/lib/ -isystem /usr/aarch64-suse-linux/include -isystem /usr/aarch64-suse-linux/sys-include -O2 -g -I . -c -fgo-pkgpath=internal/goarch ../../../libgo/go/internal/goarch/goarch.go zgoarch.go -fPIC -o internal/.libs/goarch.o zgoarch.go:7:3: error: redefinition of '' 7 | _BigEndian = false | ^ zgoarch.go:6:3: note: previous definition of '' was here 6 | _ArchFamily = ARM64 | ^ zgoarch.go:8:3: error: redefinition of '' 8 | _DefaultPhysPageSize = 65536 | ^ zgoarch.go:6:3: note: previous definition of '' was here 6 | _ArchFamily = ARM64 | ^ zgoarch.go:9:3: error: redefinition of '' 9 | _Int64Align = 8 | ^ zgoarch.go:6:3: note: previous definition of '' was here 6 | _ArchFamily = ARM64 | ^ zgoarch.go:10:3: error: redefinition of '' 10 | _MinFrameSize = 8 | ^ zgoarch.go:6:3: note: previous definition of '' was here 6 | _ArchFamily = ARM64 | ^ zgoarch.go:11:3: error: redefinition of '' 11 | _PCQuantum = 4 | ^ zgoarch.go:6:3: note: previous definition of '' was here 6 | _ArchFamily = ARM64 | ^ zgoarch.go:12:3: error: redefinition of '' 12 | _StackAlign = 16 | ^ zgoarch.go:6:3: note: previous definition of '' was here 6 | _ArchFamily = ARM64 | ^ ../../../libgo/go/internal/goarch/goarch.go:8:21: error: expected type 8 | type ArchFamilyType int | ^ zgoarch.go:6:3: error: constant refers to itself 6 | _ArchFamily = ARM64 | ^ ../../../libgo/go/internal/goarch/goarch.go:12:19: error: shift count overflow 12 | const PtrSize = 4 << (^uintptr(0) >> 63) | ^ zgoarch.go:21:9: error: constant refers to itself 21 | ARM64 | ^ make[4]: *** [Makefile:3049: internal/goarch.lo] Error 1 make[4]: Leaving directory '/home/abuild/rpmbuild/BUILD/gcc-14.0.0+git6645/obj-aarch64-suse-linux/aarch64-suse-linux/libgo' make[4]: Entering directory '/home/abuild/rpmbuild/BUILD/gcc-14.0.0+git6645/obj-aarch64-suse-linux/aarch64-suse-linux/libgo' /usr/bin/mkdir -p internal; files=`echo ../../../libgo/go/internal/unsafeheader/unsafeheader.go | sed -e 's/[^ ]*\.gox//g' -e 's/[^ ]*\.dep//'`; /bin/sh ./libtool --tag GO --mode=compile /home/abuild/rpmbuild/BUILD/gcc-14.0.0+git6645/obj-aarch64-suse-linux/./gcc/gccgo -B/home/abuild/rpmbuild/BUILD/gcc-14.0.0+git6645/obj-aarch64-suse-linux/./gcc/ -B/usr/aarch64-suse-linux/bin/ -B/usr/aarch64-suse-linux/lib/ -isystem /usr/aarch64-suse-linux/include -isystem /usr/aarch64-suse-linux/sys-include -O2 -g -I . -c -fgo-pkgpath=`echo internal/unsafeheader.lo | sed -e 's/.lo$//'` -o internal/unsafeheader.lo $files libtool: compile: /home/abuild/rpmbuild/BUILD/gcc-14.0.0+git6645/obj-aarch64-suse-linux/./gcc/gccgo -B/home/abuild/rpmbuild/BUILD/gcc-14.0.0+git6645/obj-aarch64-suse-linux/./gcc/ -B/usr/aarch64-suse-linux/bin/ -B/usr/aarch64-suse-linux/lib/ -isystem /usr/aarch64-suse-linux/include -isystem /usr/aarch64-suse-linux/sys-include -O2 -g -I . -c -fgo-pkgpath=internal/unsafeheader ../../../libgo/go/internal/unsafeheader/unsafeheader.go -fPIC -o internal/.libs/unsafeheader.o go1: internal compiler error: in note_usage, at go/gofrontend/gogo.cc:9524 0x1aaefd3 Package::note_usage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const ../../gcc/go/gofrontend/gogo.cc:9524 0x1aaefd3 Package::note_usage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const ../../gcc/go/gofrontend/gogo.cc:9521 0x1ac265b Parse::qualified_ident(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, Named_object**) ../../gcc/go/gofrontend/parse.cc:205 0x1accfff Parse::type_name(bool) ../../gcc/go/gofrontend/parse.cc:315 0x1ace6df Parse::field_decl(Struct_field_list*) ../../gcc/go/gofrontend/parse.cc:616 0x1aceee7 Parse::struct_type() ../../gcc/go/gofrontend/parse.cc:490 0x1ad22bb Parse::type_spec() ../../gcc/go/gofrontend/parse.cc:1663 0x1ae4dcb Parse::program() ../../gcc/go/gofrontend/parse.cc:5981 0x1aa2f03 go_parse_input_files(char const**, unsigned int, bool, bool) ../../gcc/go/gofrontend/go.cc:87 0x1aa36cb go_langhook_parse_file ../../gcc/go/go-lang.cc:362 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://bugs.opensuse.org/> for instructions. make[4]: *** [Makefile:3049: internal/unsafeheader.lo] Error 1 make[4]: Leaving directory '/home/abuild/rpmbuild/BUILD/gcc-14.0.0+git6645/obj-aarch64-suse-linux/aarch64-suse-linux/libgo'