https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79970
Bug ID: 79970 Summary: [7 Regression] ICE in add_stack_var, at cfgexpand.c:450 with always_inline attribute Product: gcc Version: 7.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code Severity: normal Priority: P3 Component: ipa Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: hubicka at ucw dot cz, rguenth at gcc dot gnu.org Target Milestone: --- Starting from r239273, we ICE on: $ cat ice.c typedef int c __attribute__ ((__vector_size__ (16))); __attribute__ ((__always_inline__)) void d (void); void f(c x); inline void e (c *b) { f (*b); } void a () { struct { c g[4]; } h; d (); e (h.g); } $ gcc -m32 -O2 -march=athlon-tbird ice.c ice.c:3:42: warning: always_inline function might not be inlinable [-Wattributes] __attribute__ ((__always_inline__)) void d (void); ^ ice.c: In function ‘a’: ice.c:3:42: error: inlining failed in call to always_inline ‘d’: function body not available ice.c:16:5: note: called from here d (); ^~~~ ice.c:3:42: error: inlining failed in call to always_inline ‘d’: function body not available __attribute__ ((__always_inline__)) void d (void); ^ ice.c:16:5: note: called from here d (); ^~~~ ice.c:18:1: internal compiler error: in add_stack_var, at cfgexpand.c:450 } ^ 0x7c468f add_stack_var ../../gcc/cfgexpand.c:450 0x7c4ca7 expand_one_var ../../gcc/cfgexpand.c:1650 0x7c4fa3 estimated_stack_frame_size(cgraph_node*) ../../gcc/cfgexpand.c:1928 0xa1349f compute_inline_parameters(cgraph_node*, bool) ../../gcc/ipa-inline-analysis.c:2971 0xa13678 compute_inline_parameters_for_current ../../gcc/ipa-inline-analysis.c:3076 0xa13678 execute ../../gcc/ipa-inline-analysis.c:3106