https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102527
--- Comment #7 from Rainer Orth <ro at gcc dot gnu.org> --- (In reply to Aldy Hernandez from comment #4) > Can it be reproduced on a cross? If so, could you post the .ii file with > your include file peculiarities? I haven't tried, but expect it should work, provided you run on a 32-bit host and perhaps limit VM consumption. I expect that depending on the host OSes VM layout cc1plus may be able to use more of the 4 GB address space on one OS than the other. That said, there's a weird problem: If I run a regular build, I get the `out of memory' error reported. Just adding -save-temps to the command line produces a couple of weird warnings/errors: /var/gcc/reghunt/master/gcc/config/i386/i386.md: In function ‘rtx_insn* gen_split_495(rtx_insn*, rtx_def**)’: /var/gcc/reghunt/master/gcc/config/i386/i386.md:20130:29: error: this statement may fall through [-Werror=implicit-fallthrough=] 20130 | code = swap_condition (code); | ~~~~~~~~~~~~~~~^~~~~~ /var/gcc/reghunt/master/gcc/config/i386/i386.md:20133:5: note: here 20133 | case GE: case GEU: | ^~~~ /var/gcc/reghunt/master/gcc/config/i386/i386.md: In function ‘rtx_insn* gen_split_496(rtx_insn*, rtx_def**)’: /var/gcc/reghunt/master/gcc/config/i386/i386.md:20130:29: error: this statement may fall through [-Werror=implicit-fallthrough=] 20130 | code = swap_condition (code); | ~~~~~~~~~~~~~~~^~~~~~ /var/gcc/reghunt/master/gcc/config/i386/i386.md:20133:5: note: here 20133 | case GE: case GEU: | ^~~~ /var/gcc/reghunt/master/gcc/config/i386/i386.md: In function ‘rtx_insn* gen_split_497(rtx_insn*, rtx_def**)’: /var/gcc/reghunt/master/gcc/config/i386/i386.md:20130:29: error: this statement may fall through [-Werror=implicit-fallthrough=] 20130 | code = swap_condition (code); | ~~~~~~~~~~~~~~~^~~~~~ /var/gcc/reghunt/master/gcc/config/i386/i386.md:20133:5: note: here 20133 | case GE: case GEU: | ^~~~ /var/gcc/reghunt/master/gcc/config/i386/i386.md: In function ‘rtx_insn* gen_split_498(rtx_insn*, rtx_def**)’: /var/gcc/reghunt/master/gcc/config/i386/i386.md:20130:29: error: this statement may fall through [-Werror=implicit-fallthrough=] 20130 | code = swap_condition (code); | ~~~~~~~~~~~~~~~^~~~~~ /var/gcc/reghunt/master/gcc/config/i386/i386.md:20133:5: note: here 20133 | case GE: case GEU: | ^~~~ /var/gcc/reghunt/master/gcc/config/i386/i386.md: In function ‘rtx_insn* gen_split_499(rtx_insn*, rtx_def**)’: /var/gcc/reghunt/master/gcc/config/i386/i386.md:20130:29: error: this statement may fall through [-Werror=implicit-fallthrough=] 20130 | code = swap_condition (code); | ~~~~~~~~~~~~~~~^~~~~~ /var/gcc/reghunt/master/gcc/config/i386/i386.md:20133:5: note: here 20133 | case GE: case GEU: | ^~~~ /var/gcc/reghunt/master/gcc/config/i386/i386.md: In function ‘rtx_insn* gen_split_500(rtx_insn*, rtx_def**)’: /var/gcc/reghunt/master/gcc/config/i386/i386.md:20130:29: error: this statement may fall through [-Werror=implicit-fallthrough=] 20130 | code = swap_condition (code); | ~~~~~~~~~~~~~~~^~~~~~ /var/gcc/reghunt/master/gcc/config/i386/i386.md:20133:5: note: here 20133 | case GE: case GEU: | ^~~~ /var/gcc/reghunt/master/gcc/config/i386/i386.md: In function ‘rtx_insn* gen_split_501(rtx_insn*, rtx_def**)’: /var/gcc/reghunt/master/gcc/config/i386/i386.md:20130:29: error: this statement may fall through [-Werror=implicit-fallthrough=] 20130 | code = swap_condition (code); | ~~~~~~~~~~~~~~~^~~~~~ /var/gcc/reghunt/master/gcc/config/i386/i386.md:20133:5: note: here 20133 | case GE: case GEU: | ^~~~ /var/gcc/reghunt/master/gcc/config/i386/i386.md: In function ‘rtx_insn* gen_split_502(rtx_insn*, rtx_def**)’: /var/gcc/reghunt/master/gcc/config/i386/i386.md:20130:29: error: this statement may fall through [-Werror=implicit-fallthrough=] 20130 | code = swap_condition (code); | ~~~~~~~~~~~~~~~^~~~~~ /var/gcc/reghunt/master/gcc/config/i386/i386.md:20133:5: note: here 20133 | case GE: case GEU: | ^~~~ /var/gcc/reghunt/master/gcc/config/i386/sse.md: In function ‘rtx_insn* gen_split_2186(rtx_insn*, rtx_def**)’: /var/gcc/reghunt/master/gcc/config/i386/sse.md:18256:19: error: this statement may fall through [-Werror=implicit-fallthrough=] 18256 | operands[1] = tmp; | ~~~~~~~~~~~~^~~~~ /var/gcc/reghunt/master/gcc/config/i386/sse.md:18258:5: note: here 18258 | case 32: | ^~~~ /var/gcc/reghunt/master/gcc/config/i386/sse.md: In function ‘rtx_insn* gen_split_2187(rtx_insn*, rtx_def**)’: /var/gcc/reghunt/master/gcc/config/i386/sse.md:18256:19: error: this statement may fall through [-Werror=implicit-fallthrough=] 18256 | operands[1] = tmp; | ~~~~~~~~~~~~^~~~~ /var/gcc/reghunt/master/gcc/config/i386/sse.md:18258:5: note: here 18258 | case 32: | ^~~~ and (if adding -Wno-error to avoid that) while cc1plus still consumes in excess of 3 GB VM space, the compilation finally succeeds. I'm attaching the preprocessed output nonetheless; maybe it's still helpful.