From: Jakub Jelinek Date: Mon, 25 Jun 2018 17:42:12 +0000 (+0200) Subject: backport: re PR c++/85140 (ICE with invalid use of alignas) X-Git-Tag: releases/gcc-6.5.0~195 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=071a4e4ee8812eceb1e79d780d9add7d23175eef;p=thirdparty%2Fgcc.git backport: re PR c++/85140 (ICE with invalid use of alignas) Backported from mainline 2018-04-03 Jakub Jelinek PR c++/85140 * name-lookup.c (handle_namespace_attrs): Return early if attributes is error_mark_node. * g++.dg/cpp0x/gen-attrs-64.C: New test. From-SVN: r262089 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index ccb09daa043e..3078b4a05c53 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,6 +1,12 @@ 2018-06-25 Jakub Jelinek Backported from mainline + 2018-04-03 Jakub Jelinek + + PR c++/85140 + * name-lookup.c (handle_namespace_attrs): Return early if attributes + is error_mark_node. + 2018-03-30 Jakub Jelinek PR c++/84791 diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c index a4a8af22db65..5359eb4ea954 100644 --- a/gcc/cp/name-lookup.c +++ b/gcc/cp/name-lookup.c @@ -3633,6 +3633,9 @@ handle_namespace_attrs (tree ns, tree attributes) tree d; bool saw_vis = false; + if (attributes == error_mark_node) + return false; + for (d = attributes; d; d = TREE_CHAIN (d)) { tree name = get_attribute_name (d); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b6083790bec0..152e04c2234b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,6 +1,11 @@ 2018-06-25 Jakub Jelinek Backported from mainline + 2018-04-03 Jakub Jelinek + + PR c++/85140 + * g++.dg/cpp0x/gen-attrs-64.C: New test. + 2018-03-30 Jakub Jelinek PR c++/84791 diff --git a/gcc/testsuite/g++.dg/cpp0x/gen-attrs-64.C b/gcc/testsuite/g++.dg/cpp0x/gen-attrs-64.C new file mode 100644 index 000000000000..c0d48fc88e96 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/gen-attrs-64.C @@ -0,0 +1,4 @@ +// PR c++/85140 +// { dg-do compile { target c++11 } } + +namespace N alignas() {} // { dg-error "expected" }