On Wed, Aug 16, 2023 at 10:31:30PM -0700, Kees Cook wrote: > On Fri, Aug 04, 2023 at 07:44:28PM +0000, Qing Zhao wrote: > > This is the 2nd version of the patch, per our discussion based on the > > review comments for the 1st version, the major changes in this version > > I've been using Coccinelle to find and annotate[1] structures (193 so > far...), and I've encountered 2 cases of GCC internal errors. I'm working > on a minimized test case, but just in case these details are immediately > helpful, here's what I'm seeing:
Okay, I got it minimized: $ cat poc.c struct a { unsigned long c; char d[] __attribute__((__counted_by__(c))); } *b; void f(long); void e(void) { long g = __builtin_dynamic_object_size(b->d, 1); f(g); } $ gcc -O2 -c -o /dev/null poc.c poc.c: In function 'e': poc.c:8:6: error: incorrect sharing of tree nodes 8 | void e(void) { | ^ *b.0_1 _2 = &b.0_1->d; during GIMPLE pass: objsz poc.c:8:6: internal compiler error: verify_gimple failed 0xfe97fd verify_gimple_in_cfg(function*, bool, bool) ../../../../gcc/gcc/tree-cfg.cc:5646 0xe84894 execute_function_todo ../../../../gcc/gcc/passes.cc:2088 0xe84dee execute_todo ../../../../gcc/gcc/passes.cc:2142 -- Kees Cook