https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111643
Bug ID: 111643 Summary: __attribute__((flatten)) with -O1 runs out of memory (killed cc1) Product: gcc Version: 13.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: lukas.gra...@tu-darmstadt.de Target Milestone: --- Created attachment 56017 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=56017&action=edit C file When I run gcc -c -O0 runs_out_of_memory.i -o runs_out_of_memory.o (see the attached .i file) everything is fine. But when I run gcc -c -O1 runs_out_of_memory.i -o runs_out_of_memory.o then I get: gcc: fatal error: Killed signal terminated program cc1 Apparently, quickly runs out of memory. I have 16 GB ram and the program is rather simple. I tested it with gcc versions 9.4.0, 5.1 and 13.2 (target x86_64-linux-gnu) on ubuntu 20.04. I believe the problem is the __attribute__((flatten)) on several methods. How I created the source file: The code comes from busybox (file coreutils/expr.c) and musl header files. Additionally, I replaced every function 'name' with 'name_original' and added a wrapper with __attribute__((flatten)), for later instrumentation (I did this with a script). I used that attribute, because to reduce the overhead of the wrapper functions and I believe this should be fine. My reason why I introduced the wrappers in the first place was to allow a fine-grained instrumentation of these functions.