https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113197
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- >From the last reproducer, one doesn't really need any extra libraries. Just ./cc1 -quiet -Wdate-time -std=gnu99 -W -Wall -Wmissing-prototypes -Wwrite-strings -Wfloat-equal -Wshadow -Wpointer-arith -Wbad-function-cast -Wsign-compare -Waggregate-return -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline -Wstrict-prototypes -Wundef -Wno-unused-parameter -g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection libct_proto_udp.i -fPIC ./cc1 -quiet -Wdate-time -std=gnu99 -W -Wall -Wmissing-prototypes -Wwrite-strings -Wfloat-equal -Wshadow -Wpointer-arith -Wbad-function-cast -Wsign-compare -Waggregate-return -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline -Wstrict-prototypes -Wundef -Wno-unused-parameter -g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection conntrack.i -fpie ./xgcc -B ./ -std=gnu99 -W -Wall -Wmissing-prototypes -Wwrite-strings -Wfloat-equal -Wshadow -Wpointer-arith -Wbad-function-cast -Wsign-compare -Waggregate-return -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline -Wstrict-prototypes -Wundef -Wno-unused-parameter -g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -Wl,-z -Wl,relro -o conntrack.so conntrack.i libct_proto_udp.s -v -save-temps reproduces it. The ICE is on 4105 /* As an compile time optimization if we make no difference between 4106 direct and indirect accesses make arg transitively closed. 4107 This avoids the need to build indir arg and do everything twice. */ 4108 if (((flags & EAF_NO_INDIRECT_CLOBBER) != 0) 4109 == ((flags & EAF_NO_DIRECT_CLOBBER) != 0) 4110 && (((flags & EAF_NO_INDIRECT_READ) != 0) 4111 == ((flags & EAF_NO_DIRECT_READ) != 0)) 4112 && (((flags & EAF_NO_INDIRECT_ESCAPE) != 0) 4113 == ((flags & EAF_NO_DIRECT_ESCAPE) != 0)) 4114 && (((flags & EAF_NOT_RETURNED_INDIRECTLY) != 0) 4115 == ((flags & EAF_NOT_RETURNED_DIRECTLY) != 0))) 4116 { 4117 make_transitive_closure_constraints (tem); 4118 callarg_transitive = true; 4119 gcc_checking_assert (!(flags & EAF_NO_DIRECT_READ)); 4120 }