https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117641
Bug ID: 117641 Summary: ICE: SIGSEGV in contains_struct_check (tree.h:3788) with __sync_fetch_and_add() on _BitInt(128) on i686 Product: gcc Version: 15.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zsojka at seznam dot cz Target Milestone: --- Host: x86_64-pc-linux-gnu Target: i686-pc-linux-gnu Created attachment 59612 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=59612&action=edit reduced testcase Compiler output: $ x86_64-pc-linux-gnu-gcc -m32 testcase.c -wrapper valgrind,-q,--num-callers=100 ==2548== Invalid read of size 2 ==2548== at 0xF826D8: contains_struct_check (tree.h:3788) ==2548== by 0xF826D8: sync_resolve_params (c-common.cc:7494) ==2548== by 0xF826D8: resolve_overloaded_builtin(unsigned int, tree_node*, vec<tree_node*, va_gc, vl_embed>*) (c-common.cc:8520) ==2548== by 0xED82CF: c_build_function_call_vec(unsigned int, vec<unsigned int, va_heap, vl_ptr> const&, tree_node*, vec<tree_node*, va_gc, vl_embed>*, vec<tree_node*, va_gc, vl_embed>*) (c-typeck.cc:3915) ==2548== by 0xF18BA0: c_parser_postfix_expression_after_primary(c_parser*, unsigned int, c_expr) (c-parser.cc:13372) ==2548== by 0xEFD2C8: c_parser_postfix_expression(c_parser*) (c-parser.cc:12923) ==2548== by 0xF022FA: c_parser_unary_expression(c_parser*) (c-parser.cc:10364) ==2548== by 0xF03E9F: c_parser_cast_expression(c_parser*, c_expr*) (c-parser.cc:10205) ==2548== by 0xF0418F: c_parser_binary_expression(c_parser*, c_expr*, tree_node*) (c-parser.cc:9973) ==2548== by 0xF05623: c_parser_conditional_expression(c_parser*, c_expr*, tree_node*) (c-parser.cc:9668) ==2548== by 0xF05E34: c_parser_expr_no_commas(c_parser*, c_expr*, tree_node*) (c-parser.cc:9581) ==2548== by 0xF06293: c_parser_expression(c_parser*) (c-parser.cc:13512) ==2548== by 0xF067F7: c_parser_expression_conv(c_parser*) (c-parser.cc:13572) ==2548== by 0xF29EB7: c_parser_statement_after_labels(c_parser*, bool*, tree_node*, vec<tree_node*, va_heap, vl_ptr>*, attr_state) (c-parser.cc:8080) ==2548== by 0xEFCF51: c_parser_compound_statement_nostart(c_parser*) (c-parser.cc:7533) ==2548== by 0xF262B4: c_parser_compound_statement(c_parser*, unsigned int*) (c-parser.cc:6757) ==2548== by 0xF286ED: c_parser_declaration_or_fndef(c_parser*, bool, bool, bool, bool, bool, bool, tree_node**, vec<c_token, va_heap, vl_ptr>*, bool, tree_node*, oacc_routine_data*, bool*) (c-parser.cc:3069) ==2548== by 0xF333DD: c_parser_external_declaration(c_parser*) (c-parser.cc:2065) ==2548== by 0xF33E73: c_parser_translation_unit (c-parser.cc:1919) ==2548== by 0xF33E73: c_parse_file() (c-parser.cc:28017) ==2548== by 0xFAE401: c_common_parse_file() (c-opts.cc:1359) ==2548== by 0x15D5DDD: compile_file() (toplev.cc:453) ==2548== by 0xE8B90E: do_compile (toplev.cc:2211) ==2548== by 0xE8B90E: toplev::main(int, char**) (toplev.cc:2371) ==2548== by 0xE8D17A: main (main.cc:39) ==2548== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==2548== testcase.c: In function 'foo': testcase.c:4:3: internal compiler error: Segmentation fault 4 | __sync_fetch_and_add(b, 1); | ^~~~~~~~~~~~~~~~~~~~ 0x2cbf30e internal_error(char const*, ...) /repo/gcc-trunk/gcc/diagnostic-global-context.cc:518 ... $ x86_64-pc-linux-gnu-gcc -v Using built-in specs. COLLECT_GCC=/repo/gcc-trunk/binary-latest-amd64/bin/x86_64-pc-linux-gnu-gcc COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-r15-5350-20241116113704-ge30bc91e96f-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../libexec/gcc/x86_64-pc-linux-gnu/15.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++ --enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra --disable-bootstrap --with-cloog --with-ppl --with-isl --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu --with-ld=/usr/bin/x86_64-pc-linux-gnu-ld --with-as=/usr/bin/x86_64-pc-linux-gnu-as --enable-libsanitizer --disable-libstdcxx-pch --prefix=/repo/gcc-trunk//binary-trunk-r15-5350-20241116113704-ge30bc91e96f-checking-yes-rtl-df-extra-nobootstrap-amd64 Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 15.0.0 20241116 (experimental) (GCC)