https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78837
Eric Gallager <egallager at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2017-08-28 CC| |egallager at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Eric Gallager <egallager at gcc dot gnu.org> --- I get even fewer warnings; I only get the -Walloca-larger-than one, but not the -Walloc-size-larger-than one: $ /usr/local/bin/gcc -c -O2 -S -Walloca-larger-than=10 -Walloc-size-larger-than=10 78837.c 78837.c: In function ‘f1’: 78837.c:11:5: warning: argument to ‘alloca’ may be too large [-Walloca-larger-than=] p = __builtin_alloca (n); ~~^~~~~~~~~~~~~~~~~~~~~~ 78837.c:11:5: note: limit is 10 bytes, but argument may be as large as 122 $ Turns out it's due to my compiler defaulting to 32-bit; forcing 64-bit gets both of them: $ /usr/local/bin/gcc -c -O2 -S -Walloca-larger-than=10 -Walloc-size-larger-than=10 -m64 78837.c 78837.c: In function ‘f1’: 78837.c:11:5: warning: argument to ‘alloca’ may be too large [-Walloca-larger-than=] p = __builtin_alloca (n); ~~^~~~~~~~~~~~~~~~~~~~~~ 78837.c:11:5: note: limit is 10 bytes, but argument may be as large as 122 78837.c:13:5: warning: argument 1 range [32, 4294967295] exceeds maximum object size 10 [-Walloc-size-larger-than=] p = __builtin_malloc (n); ~~^~~~~~~~~~~~~~~~~~~~~~ 78837.c:13:5: note: in a call to built-in allocation function ‘__builtin_malloc’ $ But still, confirmed that there's still warnings missing for the ternary expression either way.