https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104942
Bug ID: 104942 Summary: ICE in size_for_offset, at tree-object-size.cc:352 since r12-6482-g06bc1b0c539e3a60 Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: siddhesh at gcc dot gnu.org Target Milestone: --- Reduced from gzip package: $ cat savedir.i char *streamsavedir_name_space; long streamsavedir_used; void *ximalloc() __attribute__((__alloc_size__(1))); const char **x; void streamsavedir___src() { streamsavedir_name_space = ximalloc(streamsavedir_used); char *dest = streamsavedir_name_space + streamsavedir_used; long __trans_tmp_1 = __builtin_dynamic_object_size(dest, 1); __builtin___stpcpy_chk(dest, *x, __trans_tmp_1); } $ gcc savedir.i -D_FORTIFY_SOURCE=3 -O during GIMPLE pass: objsz savedir.i: In function ‘streamsavedir___src’: savedir.i:9:1: internal compiler error: in size_for_offset, at tree-object-size.cc:352 9 | streamsavedir___src() { | ^~~~~~~~~~~~~~~~~~~ 0x79987d size_for_offset /home/marxin/Programming/gcc/gcc/tree-object-size.cc:352 0x1006124 plus_stmt_object_size /home/marxin/Programming/gcc/gcc/tree-object-size.cc:1354 0x1006124 collect_object_sizes_for /home/marxin/Programming/gcc/gcc/tree-object-size.cc:1645 0x10070a7 compute_builtin_object_size(tree_node*, int, tree_node**) /home/marxin/Programming/gcc/gcc/tree-object-size.cc:1106 0xa1d849 fold_builtin_object_size /home/marxin/Programming/gcc/gcc/builtins.cc:10397 0xa1d849 fold_builtin_2 /home/marxin/Programming/gcc/gcc/builtins.cc:9420 0xa1d849 fold_builtin_n /home/marxin/Programming/gcc/gcc/builtins.cc:9528 0x1007d2e dynamic_object_sizes_execute_one /home/marxin/Programming/gcc/gcc/tree-object-size.cc:1974 0x1007d2e object_sizes_execute /home/marxin/Programming/gcc/gcc/tree-object-size.cc:2034 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.