https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100432
Bug ID: 100432 Summary: gcc arm compilation binary output is bigger with -Os than -O2 Product: gcc Version: 11.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: xicojovor at dropjar dot com Target Milestone: --- example: https://godbolt.org/z/rYxTPdTcd while compiling for ARM, gcc versions after 4 (>= 5) generate a redundant stack frame as can be seen in the attached example, while gcc version 4 generates correct code that is also minimal in size as requested (-Os). The code generation in newer gcc versions is strange even without thinking about the -Os flag, since the generated stack frame is not even used, and the whole 3 instructions (sub sp, str, add sp) are totally not needed (the variable on the stack is not used). also reported in https://bugs.launchpad.net/gcc-arm-embedded/+bug/1927055 (not sure where this should be reported)