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'

Reply via email to