aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2016-07-04 19:31:38 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2016-07-04 19:31:38 +0200
commit2a5537c3e20ffae1e35923a063d42a3f21e47727 (patch)
tree8a8661dd415ba3837bc00e25972e45e28566850f /gcc
parent74bb9de4ea808e156fe3545bff1500bdc5515728 (diff)
downloadgcc-2a5537c3e20ffae1e35923a063d42a3f21e47727.zip
gcc-2a5537c3e20ffae1e35923a063d42a3f21e47727.tar.gz
gcc-2a5537c3e20ffae1e35923a063d42a3f21e47727.tar.bz2
re PR c++/71739 (ICE on valid C++11 code: tree check: expected identifier_node, have tree_list in private_is_attribute_p, at tree.c:6080)
PR c++/71739 * tree.c (attribute_value_equal): Use get_attribute_name instead of directly using TREE_PURPOSE. * g++.dg/cpp0x/pr71739.C: New test. From-SVN: r237991
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/pr71739.C5
-rw-r--r--gcc/tree.c2
4 files changed, 17 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index aa81753..35d27e5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-07-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/71739
+ * tree.c (attribute_value_equal): Use get_attribute_name instead of
+ directly using TREE_PURPOSE.
+
2016-07-04 Jiong Wang <jiong.wang@arm.com>
* config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9066d0f..9e819ac 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2016-07-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/71739
+ * g++.dg/cpp0x/pr71739.C: New test.
+
2016-07-04 Christophe Lyon <christophe.lyon@linaro.org>
* c-c++-common/asan/clone-test-1.c (main): Handle clone() failure.
diff --git a/gcc/testsuite/g++.dg/cpp0x/pr71739.C b/gcc/testsuite/g++.dg/cpp0x/pr71739.C
new file mode 100644
index 0000000..b31a580
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/pr71739.C
@@ -0,0 +1,5 @@
+// PR c++/71739
+// { dg-do compile { target c++11 } }
+
+template <int N> struct alignas(N) A;
+template <int N> struct alignas(N) A {};
diff --git a/gcc/tree.c b/gcc/tree.c
index bc60190..2295111 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -5009,7 +5009,7 @@ attribute_value_equal (const_tree attr1, const_tree attr2)
&& TREE_CODE (TREE_VALUE (attr2)) == TREE_LIST)
{
/* Handle attribute format. */
- if (is_attribute_p ("format", TREE_PURPOSE (attr1)))
+ if (is_attribute_p ("format", get_attribute_name (attr1)))
{
attr1 = TREE_VALUE (attr1);
attr2 = TREE_VALUE (attr2);