https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83356
Bug ID: 83356 Summary: [7 regression] excessive stack usage compiling with -O2 -fsanitize=bounds -fsanitize=object-size Product: gcc Version: 7.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: arnd at linaro dot org CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org, jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at gcc dot gnu.org Target Milestone: --- Created attachment 42826 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42826&action=edit The AES crypto implementation from linux, preprocessed After upgrading from gcc-7.1.1 (20170717) to 7.2.1 (20171130), I observed a warning when building the kernel in configurations with UBSAN: x86_64-linux-gcc-7.2.1 -Wframe-larger-than=1024 -fsanitize=bounds -fsanitize=object-size -fno-strict-aliasing -O2 -Wall -c aes_generic.i /git/arm-soc/crypto/aes_generic.c: In function 'aes_encrypt': /git/arm-soc/crypto/aes_generic.c:1371:1: warning: the frame size of 3840 bytes is larger than 1024 bytes [-Wframe-larger-than=] /git/arm-soc/crypto/aes_generic.c: In function 'aes_decrypt': /git/arm-soc/crypto/aes_generic.c:1441:1: warning: the frame size of 3840 bytes is larger than 1024 bytes [-Wframe-larger-than=] With gcc-7.1.1, the stack frames were 304 bytes each, gcc-8.0.0 uses 512 bytes, and with "gcc-7.2.1 -Os -fsanitize=bounds -fsanitize=object-size", it's even smaller at 56 bytes. I have only noticed this regression with one file in the kernel so far, crypto/aes_generic.c, all other files apparently stay below the stack frame warning limit.