https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123342
Bug ID: 123342
Summary: Compilation of xorg-x11-server fails if -march=znver5
-O3 is used, compiles with -O2 or without
-march=znver5.
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: erhan.bilgili at gmail dot com
Target Milestone: ---
Created attachment 63182
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=63182&action=edit
.i file for xorg-server-21.1.21/dix/events.c compilation
As mentioned in the title, without -march=znver5 or with -O2 it compiles fine.
.i file is attached. The full log of the error is longer, but it is multiple
instances of the same issue. GCC version is 16.0.0 20251230.
/usr/bin/gcc -v -save-temps -Idix/liblibxserver_dix.a.p -Idix -I../dix -IXext
-I../Xext -IXi -I../Xi -Icomposite -I../composite -Idamageext -I../damageext
-Iexa -I../exa -Ifb -I../fb -Iglamor -I../glamor -Imi -I../mi -Imiext/damage
-I../miext/damage -Imiext/shadow -I../miext/shadow -Imiext/sync -I../miext/sync
-Idbe -I../dbe -Idri3 -I../dri3 -Iinclude -I../include -Ipresent -I../present
-Irandr -I../randr -Irender -I../render -Ixfixes -I../xfixes
-I/usr/include/X11/dri -I/usr/include/pixman-1 -I/usr/include/freetype2
-I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0
-I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6
-fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch
-std=gnu99 -DHAVE_DIX_CONFIG_H -fno-strict-aliasing -fvisibility=hidden -Wall
-Wpointer-arith -Wmissing-declarations -Wformat=2 -Wstrict-prototypes
-Wmissing-prototypes -Wnested-externs -Wbad-function-cast
-Wold-style-definition -Wunused -Wuninitialized -Wshadow -Wmissing-noreturn
-Wmissing-format-attribute -Wredundant-decls -Werror=implicit -Werror=nonnull
-Werror=init-self -Werror=main -Werror=missing-braces -Werror=sequence-point
-Werror=return-type -Werror=trigraphs -Werror=array-bounds
-Werror=write-strings -Werror=address -Werror=int-to-pointer-cast
-Werror=pointer-to-int-cast -O2 -flto=auto -ffat-lto-objects -fexceptions -g
-grecord-gcc-switches -pipe -Wall -Werror=format-security
-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=znver5 -O3
-funroll-loops -ftree-vectorize -fstrict-aliasing
-fno-unsafe-math-optimizations -fno-fast-math -Wno-error
-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
-mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fPIC
-pthread -DWITH_GZFILEOP -isystem /usr/include/bsd -DLIBBSD_OVERLAY
-D_DEFAULT_SOURCE -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -MD -MQ
dix/liblibxserver_dix.a.p/events.c.o -MF dix/liblibxserver_dix.a.p/events.c.o.d
-o dix/liblibxserver_dix.a.p/events.c.o -c ../dix/events.c
gcc: warning: ‘-pipe’ ignored because ‘-save-temps’ specified
Using built-in specs.
Reading specs from /usr/lib/rpm/redhat/redhat-annobin-cc1
COLLECT_GCC=/usr/bin/gcc
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap
--enable-languages=c,c++,fortran,objc,obj-c++,d,lto --prefix=/usr
--mandir=/usr/share/man --infodir=/usr/share/info
--with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared
--enable-threads=posix --enable-checking=release --enable-multilib
--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions
--enable-gnu-unique-object --enable-linker-build-id
--with-gcc-major-version-only --enable-libstdcxx-backtrace
--with-libstdcxx-zoneinfo=/usr/share/zoneinfo --with-linker-hash-style=gnu
--enable-plugin --enable-initfini-array
--with-isl=/opt/build/rpmbuild/BUILD/gcc-16-build/gcc-16-20251229/obj-x86_64-redhat-linux/isl-install
--enable-gnu-indirect-function --enable-cet --with-tune=generic
--with-arch_32=i686 --build=x86_64-redhat-linux
--with-build-config=bootstrap-lto --enable-link-serialization=1
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 16.0.0 20251230
COLLECT_GCC_OPTIONS='-fdiagnostics-color=always' '-v' '-save-temps' '-I'
'dix/liblibxserver_dix.a.p' '-I' 'dix' '-I' '../dix' '-I' 'Xext' '-I' '../Xext'
'-I' 'Xi' '-I' '../Xi' '-I' 'composite' '-I' '../composite' '-I' 'damageext'
'-I' '../damageext' '-I' 'exa' '-I' '../exa' '-I' 'fb' '-I' '../fb' '-I'
'glamor' '-I' '../glamor' '-I' 'mi' '-I' '../mi' '-I' 'miext/damage' '-I'
'../miext/damage' '-I' 'miext/shadow' '-I' '../miext/shadow' '-I' 'miext/sync'
'-I' '../miext/sync' '-I' 'dbe' '-I' '../dbe' '-I' 'dri3' '-I' '../dri3' '-I'
'include' '-I' '../include' '-I' 'present' '-I' '../present' '-I' 'randr' '-I'
'../randr' '-I' 'render' '-I' '../render' '-I' 'xfixes' '-I' '../xfixes' '-I'
'/usr/include/X11/dri' '-I' '/usr/include/pixman-1' '-I'
'/usr/include/freetype2' '-I' '/usr/include/libpng16' '-I'
'/usr/include/harfbuzz' '-I' '/usr/include/glib-2.0' '-I'
'/usr/lib64/glib-2.0/include' '-I' '/usr/include/sysprof-6' '-D'
'_FILE_OFFSET_BITS=64' '-Winvalid-pch' '-std=gnu99' '-D' 'HAVE_DIX_CONFIG_H'
'-fvisibility=hidden' '-Wpointer-arith' '-Wmissing-declarations' '-Wformat=2'
'-Wstrict-prototypes' '-Wmissing-prototypes' '-Wnested-externs'
'-Wbad-function-cast' '-Wold-style-definition' '-Wunused' '-Wuninitialized'
'-Wshadow' '-Wsuggest-attribute=noreturn' '-Wsuggest-attribute=format'
'-Wredundant-decls' '-Werror=implicit' '-Werror=nonnull' '-Werror=init-self'
'-Werror=main' '-Werror=missing-braces' '-Werror=sequence-point'
'-Werror=return-type' '-Werror=trigraphs' '-Werror=array-bounds'
'-Werror=write-strings' '-Werror=address' '-Werror=int-to-pointer-cast'
'-Werror=pointer-to-int-cast' '-O2' '-flto=auto' '-ffat-lto-objects'
'-fexceptions' '-g' '-grecord-gcc-switches' '-pipe' '-Wall'
'-Werror=format-security' '-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1'
'-m64' '-march=znver5' '-O3' '-funroll-loops' '-ftree-vectorize'
'-fstrict-aliasing' '-fno-unsafe-math-optimizations' '-fno-fast-math'
'-Wno-error' '-fasynchronous-unwind-tables' '-fstack-clash-protection'
'-fcf-protection=full' '-mtls-dialect=gnu2' '-fno-omit-frame-pointer'
'-mno-omit-leaf-frame-pointer' '-fPIC' '-pthread' '-D' 'WITH_GZFILEOP'
'-isystem' '/usr/include/bsd' '-D' 'LIBBSD_OVERLAY' '-D' '_DEFAULT_SOURCE' '-D'
'_BSD_SOURCE' '-D' 'HAS_FCHOWN' '-D' 'HAS_STICKY_DIR_BIT' '-MD' '-MQ'
'dix/liblibxserver_dix.a.p/events.c.o' '-MF'
'dix/liblibxserver_dix.a.p/events.c.o.d' '-o'
'dix/liblibxserver_dix.a.p/events.c.o' '-c' '-dumpdir'
'dix/liblibxserver_dix.a.p/'
/usr/libexec/gcc/x86_64-redhat-linux/16/cc1 -E -quiet -v -I
dix/liblibxserver_dix.a.p -I dix -I ../dix -I Xext -I ../Xext -I Xi -I ../Xi -I
composite -I ../composite -I damageext -I ../damageext -I exa -I ../exa -I fb
-I ../fb -I glamor -I ../glamor -I mi -I ../mi -I miext/damage -I
../miext/damage -I miext/shadow -I ../miext/shadow -I miext/sync -I
../miext/sync -I dbe -I ../dbe -I dri3 -I ../dri3 -I include -I ../include -I
present -I ../present -I randr -I ../randr -I render -I ../render -I xfixes -I
../xfixes -I /usr/include/X11/dri -I /usr/include/pixman-1 -I
/usr/include/freetype2 -I /usr/include/libpng16 -I /usr/include/harfbuzz -I
/usr/include/glib-2.0 -I /usr/lib64/glib-2.0/include -I /usr/include/sysprof-6
-MD dix/liblibxserver_dix.a.p/events.c.d -MF
dix/liblibxserver_dix.a.p/events.c.o.d -MQ dix/liblibxserver_dix.a.p/events.c.o
-D_REENTRANT -D _FILE_OFFSET_BITS=64 -D HAVE_DIX_CONFIG_H -D WITH_GZFILEOP -D
LIBBSD_OVERLAY -D _DEFAULT_SOURCE -D _BSD_SOURCE -D HAS_FCHOWN -D
HAS_STICKY_DIR_BIT -isystem /usr/include/bsd -U_FORTIFY_SOURCE
-D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS ../dix/events.c -m64 -march=znver5
-mtls-dialect=gnu2 -mno-omit-leaf-frame-pointer -std=gnu99 -Winvalid-pch
-Wpointer-arith -Wmissing-declarations -Wformat=2 -Wstrict-prototypes
-Wmissing-prototypes -Wnested-externs -Wbad-function-cast
-Wold-style-definition -Wunused -Wuninitialized -Wshadow
-Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wredundant-decls
-Werror=implicit -Werror=nonnull -Werror=init-self -Werror=main
-Werror=missing-braces -Werror=sequence-point -Werror=return-type
-Werror=trigraphs -Werror=array-bounds -Werror=write-strings -Werror=address
-Werror=int-to-pointer-cast -Werror=pointer-to-int-cast -Wall
-Werror=format-security -Wno-error -fdiagnostics-color=always
-fvisibility=hidden -flto=auto -ffat-lto-objects -fexceptions -funroll-loops
-ftree-vectorize -fstrict-aliasing -fno-unsafe-math-optimizations
-fno-fast-math -fasynchronous-unwind-tables -fstack-clash-protection
-fcf-protection=full -fno-omit-frame-pointer -fPIC -g -grecord-gcc-switches
-fworking-directory -O2 -O3 -fpch-preprocess -o
dix/liblibxserver_dix.a.p/events.c.i
ignoring nonexistent directory
"/usr/lib/gcc/x86_64-redhat-linux/16/include-fixed"
ignoring nonexistent directory
"/usr/lib/gcc/x86_64-redhat-linux/16/../../../../x86_64-redhat-linux/include"
#include "..." search starts here:
#include <...> search starts here:
dix/liblibxserver_dix.a.p
dix
../dix
Xext
../Xext
Xi
../Xi
composite
../composite
damageext
../damageext
exa
../exa
fb
../fb
glamor
../glamor
mi
../mi
miext/damage
../miext/damage
miext/shadow
../miext/shadow
miext/sync
../miext/sync
dbe
../dbe
dri3
../dri3
include
../include
present
../present
randr
../randr
render
../render
xfixes
../xfixes
/usr/include/X11/dri
/usr/include/pixman-1
/usr/include/freetype2
/usr/include/libpng16
/usr/include/harfbuzz
/usr/include/glib-2.0
/usr/lib64/glib-2.0/include
/usr/include/sysprof-6
/usr/include/bsd
/usr/lib/gcc/x86_64-redhat-linux/16/include
/usr/local/include
/usr/include
End of search list.
COLLECT_GCC_OPTIONS='-fdiagnostics-color=always' '-v' '-save-temps' '-I'
'dix/liblibxserver_dix.a.p' '-I' 'dix' '-I' '../dix' '-I' 'Xext' '-I' '../Xext'
'-I' 'Xi' '-I' '../Xi' '-I' 'composite' '-I' '../composite' '-I' 'damageext'
'-I' '../damageext' '-I' 'exa' '-I' '../exa' '-I' 'fb' '-I' '../fb' '-I'
'glamor' '-I' '../glamor' '-I' 'mi' '-I' '../mi' '-I' 'miext/damage' '-I'
'../miext/damage' '-I' 'miext/shadow' '-I' '../miext/shadow' '-I' 'miext/sync'
'-I' '../miext/sync' '-I' 'dbe' '-I' '../dbe' '-I' 'dri3' '-I' '../dri3' '-I'
'include' '-I' '../include' '-I' 'present' '-I' '../present' '-I' 'randr' '-I'
'../randr' '-I' 'render' '-I' '../render' '-I' 'xfixes' '-I' '../xfixes' '-I'
'/usr/include/X11/dri' '-I' '/usr/include/pixman-1' '-I'
'/usr/include/freetype2' '-I' '/usr/include/libpng16' '-I'
'/usr/include/harfbuzz' '-I' '/usr/include/glib-2.0' '-I'
'/usr/lib64/glib-2.0/include' '-I' '/usr/include/sysprof-6' '-D'
'_FILE_OFFSET_BITS=64' '-Winvalid-pch' '-std=gnu99' '-D' 'HAVE_DIX_CONFIG_H'
'-fvisibility=hidden' '-Wpointer-arith' '-Wmissing-declarations' '-Wformat=2'
'-Wstrict-prototypes' '-Wmissing-prototypes' '-Wnested-externs'
'-Wbad-function-cast' '-Wold-style-definition' '-Wunused' '-Wuninitialized'
'-Wshadow' '-Wsuggest-attribute=noreturn' '-Wsuggest-attribute=format'
'-Wredundant-decls' '-Werror=implicit' '-Werror=nonnull' '-Werror=init-self'
'-Werror=main' '-Werror=missing-braces' '-Werror=sequence-point'
'-Werror=return-type' '-Werror=trigraphs' '-Werror=array-bounds'
'-Werror=write-strings' '-Werror=address' '-Werror=int-to-pointer-cast'
'-Werror=pointer-to-int-cast' '-O2' '-flto=auto' '-ffat-lto-objects'
'-fexceptions' '-g' '-grecord-gcc-switches' '-pipe' '-Wall'
'-Werror=format-security' '-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1'
'-m64' '-march=znver5' '-O3' '-funroll-loops' '-ftree-vectorize'
'-fstrict-aliasing' '-fno-unsafe-math-optimizations' '-fno-fast-math'
'-Wno-error' '-fasynchronous-unwind-tables' '-fstack-clash-protection'
'-fcf-protection=full' '-mtls-dialect=gnu2' '-fno-omit-frame-pointer'
'-mno-omit-leaf-frame-pointer' '-fPIC' '-pthread' '-D' 'WITH_GZFILEOP'
'-isystem' '/usr/include/bsd' '-D' 'LIBBSD_OVERLAY' '-D' '_DEFAULT_SOURCE' '-D'
'_BSD_SOURCE' '-D' 'HAS_FCHOWN' '-D' 'HAS_STICKY_DIR_BIT' '-MD' '-MQ'
'dix/liblibxserver_dix.a.p/events.c.o' '-MF'
'dix/liblibxserver_dix.a.p/events.c.o.d' '-o'
'dix/liblibxserver_dix.a.p/events.c.o' '-c' '-dumpdir'
'dix/liblibxserver_dix.a.p/'
/usr/libexec/gcc/x86_64-redhat-linux/16/cc1 -fpreprocessed
dix/liblibxserver_dix.a.p/events.c.i -quiet -dumpdir dix/liblibxserver_dix.a.p/
-dumpbase events.c.c -dumpbase-ext .c -m64 -march=znver5 -mtls-dialect=gnu2
-mno-omit-leaf-frame-pointer -g -grecord-gcc-switches -O2 -O3 -Winvalid-pch
-Wpointer-arith -Wmissing-declarations -Wformat=2 -Wstrict-prototypes
-Wmissing-prototypes -Wnested-externs -Wbad-function-cast
-Wold-style-definition -Wunused -Wuninitialized -Wshadow
-Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wredundant-decls
-Werror=implicit -Werror=nonnull -Werror=init-self -Werror=main
-Werror=missing-braces -Werror=sequence-point -Werror=return-type
-Werror=trigraphs -Werror=array-bounds -Werror=write-strings -Werror=address
-Werror=int-to-pointer-cast -Werror=pointer-to-int-cast -Wall
-Werror=format-security -Wno-error -std=gnu99 -version
-fdiagnostics-color=always -fvisibility=hidden -flto=auto -ffat-lto-objects
-fexceptions -funroll-loops -ftree-vectorize -fstrict-aliasing
-fno-unsafe-math-optimizations -fno-fast-math -fasynchronous-unwind-tables
-fstack-clash-protection -fcf-protection=full -fno-omit-frame-pointer -fPIC
-iplugindir=/usr/lib/gcc/x86_64-redhat-linux/16/plugin -fplugin=gcc-annobin -o
dix/liblibxserver_dix.a.p/events.c.s
GNU C99 (GCC) version 16.0.0 20251230 (x86_64-redhat-linux)
compiled by GNU C version 16.0.0 20251230, GMP version 6.3.0, MPFR
version 4.2.2, MPC version 1.3.1, isl version isl-0.24-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Versions of loaded plugins:
gcc-annobin: Annobin Version 13.03
Compiler executable checksum: 79be090230253fcad3004f0feadde9ab
In function ‘FixUpXI2SwipeEventFromWindow’,
inlined from ‘FixUpEventFromWindow’ at ../dix/events.c:2731:13,
inlined from ‘CoreEnterLeaveEvent’ at ../dix/events.c:4761:5:
../dix/events.c:2674:17: error: array subscript ‘struct
xXIGestureSwipeEvent[0]’ is partly outside array bounds of ‘struct xEvent[1]’
[-Werror=array-bounds=]
2674 | event->root = RootWindow(pSprite)->drawable.id;
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../dix/events.c: In function ‘CoreEnterLeaveEvent’:
../dix/events.c:4734:12: note: object ‘event’ of size 32
4734 | xEvent event = {
| ^~~~~
In function ‘FixUpXI2SwipeEventFromWindow’,
inlined from ‘FixUpEventFromWindow’ at ../dix/events.c:2731:13,
inlined from ‘CoreEnterLeaveEvent’ at ../dix/events.c:4761:5:
../dix/events.c:2675:18: error: array subscript ‘struct
xXIGestureSwipeEvent[0]’ is partly outside array bounds of ‘struct xEvent[1]’
[-Werror=array-bounds=]
2675 | event->event = pWin->drawable.id;
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
../dix/events.c: In function ‘CoreEnterLeaveEvent’:
../dix/events.c:4734:12: note: object ‘event’ of size 32
4734 | xEvent event = {
| ^~~~~