From: Jakub Jelinek Date: Tue, 30 May 2017 08:02:18 +0000 (+0200) Subject: backport: re PR c++/79641 (ICE with const variable and attribute) X-Git-Tag: releases/gcc-5.5.0~265 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5bf4c04fce4dbd4a0759d36607324feb65a8bc35;p=thirdparty%2Fgcc.git backport: re PR c++/79641 (ICE with const variable and attribute) Backported from mainline 2017-02-21 Jakub Jelinek PR c++/79641 * c-common.c (handle_mode_attribute): Use build_qualified_type to preserve quals. * c-c++-common/pr79641.c: New test. From-SVN: r248648 --- diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index bd8449932be8..f32254a5e037 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,12 @@ +2017-05-30 Jakub Jelinek + + Backported from mainline + 2017-02-21 Jakub Jelinek + + PR c++/79641 + * c-common.c (handle_mode_attribute): Use build_qualified_type to + preserve quals. + 2017-05-10 Richard Biener Backport from mainline diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c index aa81d1944b89..4a63c325d05a 100644 --- a/gcc/c-family/c-common.c +++ b/gcc/c-family/c-common.c @@ -7561,7 +7561,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 8452081abc5b..5344f8f39d6f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -3,6 +3,9 @@ Backported from mainline 2017-02-21 Jakub Jelinek + PR c++/79641 + * c-c++-common/pr79641.c: New test. + PR target/79494 * gcc.dg/pr79494.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 000000000000..5d2c9b4d38b1 --- /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;