[Bug c++/93530] [10 Regression] ICE on invalid alignas
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Feb 2 20:31:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93530
--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Marek Polacek <mpolacek@gcc.gnu.org>:
https://gcc.gnu.org/g:b817be038d94c987e02c26ed2d81b6f2ebb5f97a
commit r10-6397-gb817be038d94c987e02c26ed2d81b6f2ebb5f97a
Author: Marek Polacek <polacek@redhat.com>
Date: Fri Jan 31 19:28:10 2020 -0500
c++: Fix ICE on invalid alignas in a template [PR93530]
This fixes an ICE taking place in cp_default_conversion because we got
a SCOPE_REF that doesn't have a type and so checking
INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P (TREE_TYPE (exp)) will crash.
This happens since the recent Joseph's change in decl_attributes whereby
we don't skip C++11 attributes on types.
[dcl.align] is clear that alignas applied to a function is ill-formed.
That should be fixed, and we have PR90847 for that. But I think a more
appropriate fix at this stage would be the following: in a template we
want to splice dependent attributes and save them for later, and by
doing so avoid this crash.
PR c++/93530 - ICE on invalid alignas in a template.
* decl.c (grokdeclarator): Call cplus_decl_attributes instead of
decl_attributes.
* g++.dg/cpp0x/alignas18.C: New test.
More information about the Gcc-bugs
mailing list