diff options
author | Jakub Jelinek <jakub@redhat.com> | 2017-02-21 17:55:00 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2017-02-21 17:55:00 +0100 |
commit | 00bc9de3fe5a713cc074938d53dc87da3f21c6de (patch) | |
tree | afa197a5f47150a7cad9ce4e13da260ffe225d25 | |
parent | d002d099b0107491a905b6d3e574ed0436fca3a9 (diff) | |
download | gcc-00bc9de3fe5a713cc074938d53dc87da3f21c6de.zip gcc-00bc9de3fe5a713cc074938d53dc87da3f21c6de.tar.gz gcc-00bc9de3fe5a713cc074938d53dc87da3f21c6de.tar.bz2 |
re PR c++/79641 (ICE with const variable and attribute)
PR c++/79641
* c-attribs.c (handle_mode_attribute): Use build_qualified_type to
preserve quals.
* c-c++-common/pr79641.c: New test.
From-SVN: r245632
-rw-r--r-- | gcc/c-family/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/c-family/c-attribs.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/pr79641.c | 4 |
4 files changed, 14 insertions, 1 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 4bdd474..91c739d 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,9 @@ +2017-02-21 Jakub Jelinek <jakub@redhat.com> + + PR c++/79641 + * c-attribs.c (handle_mode_attribute): Use build_qualified_type to + preserve quals. + 2017-02-17 Joseph Myers <joseph@codesourcery.com> * c-cppbuiltin.c (builtin_define_float_constants): Define diff --git a/gcc/c-family/c-attribs.c b/gcc/c-family/c-attribs.c index ce7fcaa..8058a65 100644 --- a/gcc/c-family/c-attribs.c +++ b/gcc/c-family/c-attribs.c @@ -1430,7 +1430,7 @@ handle_mode_attribute (tree *node, tree name, tree args, return NULL_TREE; } - *node = typefm; + *node = build_qualified_type (typefm, TYPE_QUALS (type)); } return NULL_TREE; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e35dd7c..c432fb0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2017-02-21 Jakub Jelinek <jakub@redhat.com> + PR c++/79641 + * c-c++-common/pr79641.c: New test. + PR tree-optimization/79649 * gcc.target/i386/pr79649.c: New test. diff --git a/gcc/testsuite/c-c++-common/pr79641.c b/gcc/testsuite/c-c++-common/pr79641.c new file mode 100644 index 0000000..5d2c9b4 --- /dev/null +++ b/gcc/testsuite/c-c++-common/pr79641.c @@ -0,0 +1,4 @@ +/* PR c++/79641 */ +/* { dg-do compile } */ + +const int __attribute__((__mode__ (__QI__))) i = 0; |