From: Marek Polacek Date: Tue, 18 Apr 2017 09:34:10 +0000 (+0000) Subject: PR c++/80244 - ICE with attribute in template alias. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=be7c73ae358319c5f9541f2e2f7a5dc37ec0e116;p=gcc.git PR c++/80244 - ICE with attribute in template alias. * tree.c (strip_typedefs): Handle UNDERLYING_TYPE. * g++.dg/cpp0x/alias-decl-59.C: New test. From-SVN: r246962 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3d36c6bd690..3f87d715dd2 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2017-04-18 Marek Polacek + + PR c++/80244 - ICE with attribute in template alias. + * tree.c (strip_typedefs): Handle UNDERLYING_TYPE. + 2017-04-17 Bernd Edlinger PR c++/80287 diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index a1455c2b4b4..f1b0a57e158 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -1551,6 +1551,10 @@ strip_typedefs (tree t, bool *remove_attributes) DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P (t), tf_none)); break; + case UNDERLYING_TYPE: + type = strip_typedefs (UNDERLYING_TYPE_TYPE (t), remove_attributes); + result = finish_underlying_type (type); + break; default: break; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6f9932a3b51..ca0717ec694 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-04-18 Marek Polacek + + PR c++/80244 - ICE with attribute in template alias. + * g++.dg/cpp0x/alias-decl-59.C: New test. + 2017-04-17 Bernd Edlinger PR c++/80287 diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-59.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-59.C new file mode 100644 index 00000000000..1f5e94f6d83 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-59.C @@ -0,0 +1,11 @@ +// PR c++/80244 +// { dg-do compile { target c++11 } } + +template +struct A {}; + +template +using B = A<__underlying_type(T) [[gnu::aligned(4)]]>; // { dg-warning "ignoring attributes on template argument" } + +template +using B = A<__underlying_type(T) [[gnu::packed]]>; // { dg-warning "ignoring attributes on template argument" }