https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102061
Bug ID: 102061 Summary: .constprop gets exposed in warning message Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: diagnostic Severity: enhancement Priority: P3 Component: ipa Assignee: unassigned at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org CC: marxin at gcc dot gnu.org Target Milestone: --- Take: static inline void foo (char *p) { __builtin___memcpy_chk (p, "abc", 3, __builtin_object_size (p, 0)); } static void bar (char *p) __attribute__((noinline)); static void bar (char *p) { foo (p); } void f(char*) __attribute__((noipa)); char buf[2]; void baz (void) __attribute__((noinline)); void baz (void) { bar (buf); f(buf); } void f(char*) {} int main(void) { baz(); } ---- CUT --- Compile the C program with "-O2 -Wall", we get: In function 'foo', inlined from 'bar.constprop' at <source>:12:3: <source>:5:3: warning: '__builtin___memcpy_chk' forming offset 2 is out of the bounds [0, 2] of object 'buf' with type 'char[2]' [-Warray-bounds] 5 | __builtin___memcpy_chk (p, "abc", 3, __builtin_object_size (p, 0)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <source>: In function 'bar.constprop': <source>:15:6: note: 'buf' declared here 15 | char buf[2]; | ^~~ See how bar.constprop is exposed. That is an internal details. Note compiling it with the C++ front-end we get: inlined from 'void bar(char*)' at <source>:12:7: And then compiling with -flto again we get the bar.constprop. But really we should add another note saying where the clone was created from.