diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-07-04 19:31:38 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-07-04 19:31:38 +0200 |
commit | 2a5537c3e20ffae1e35923a063d42a3f21e47727 (patch) | |
tree | 8a8661dd415ba3837bc00e25972e45e28566850f /gcc | |
parent | 74bb9de4ea808e156fe3545bff1500bdc5515728 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/pr71739.C | 5 | ||||
-rw-r--r-- | gcc/tree.c | 2 |
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 {}; @@ -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); |