https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107618
Yann Droneaud <yann at droneaud dot fr> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |yann at droneaud dot fr --- Comment #1 from Yann Droneaud <yann at droneaud dot fr> --- A smallest reproducer (generated with some help from C-reduce): void a(void) __attribute__((__warning__(""))); int main(void) { unsigned long b = __builtin_object_size(0, 0); if (__builtin_expect(b < 1, 0)) a(); } Works at all level above -00, except -Og: $ gcc -Og warning.c warning.c: In function ‘main’: warning.c:5:5: warning: call to ‘a’ declared with attribute warning: [-Wattribute-warning] 5 | a(); | ^~~