If Pmode is smaller than the HOST_BITS_PER_WIDE_INT (ie for i686 as host all targets, which use HImode or QImode as Pmode), a stack overflow produce the following internal compiler error:
$./cc1 t4.c check1972 /homes/mkoegler/m68hc05/src/host-i686-pc-linux-gnu/gcc/test/t4.c: In function 'check1972': /homes/mkoegler/m68hc05/src/host-i686-pc-linux-gnu/gcc/test/t4.c:7: internal compiler error: in expand_one_stack_var_at, at cfgexpand.c:476 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. $cat t4.c union S1972 { char b[24000]; }; void check1972 () { union S1972 ret; union S1972 b1; union S1972 b2; } $./cc1 --version GNU C version 4.1.0 20050416 (experimental) (avr) compiled by GNU C version 4.1.0 20050302 (experimental). GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 -- Summary: internal compiler error: in expand_one_stack_var_at, at cfgexpand.c:476 Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: e9925248 at stud4 dot tuwien dot ac dot at CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: avr-unknown-none http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21107