[Bug c++/61189] ICE with __builtin_return_address() in noexcept lambda on x86
ktietz at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Dec 16 16:35:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61189
Kai Tietz <ktietz at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2014-12-16
Ever confirmed|0 |1
--- Comment #2 from Kai Tietz <ktietz at gcc dot gnu.org> ---
Issue is related to the assert at line 9964 in config/i386/i386.c in
ix86_compute_frame_layout: 'gcc_assert (preferred_alignment <=
stack_alignment_needed);'.
The preferred_alignment is 16, but the stack_alignment_needed is just 4.
The preferred_alignment is by default for all x86/x64 targets always
PREFERRED_STACK_BOUNDARY_DEFAULT (means 128 bit=16 bytes).
So crtl->stack_alignment_needed is 32, and crtl->preferred_stack_boundary is
128.
A work-a-round is to use -mpreferred-stack-boundary=2 option. This prevents
that check fails.
So question is: Where stack_alignment_needed is set to something less then
preferred_stack_boundary
More information about the Gcc-bugs
mailing list