diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fold-const.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/decltype73.C | 4 |
4 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 582ffe09923..0994815f4a1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-12-07 Marek Polacek <polacek@redhat.com> + + PR c++/91678 - wrong error with decltype and location wrapper. + * fold-const.c (maybe_lvalue_p): Handle VIEW_CONVERT_EXPR. + 2019-12-07 Eric Botcazou <ebotcazou@adacore.com> PR middle-end/90840 diff --git a/gcc/fold-const.c b/gcc/fold-const.c index c5bd45a6e34..8e9e299926a 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -2598,6 +2598,7 @@ maybe_lvalue_p (const_tree x) case TARGET_EXPR: case COND_EXPR: case BIND_EXPR: + case VIEW_CONVERT_EXPR: break; default: diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 460cff00dd1..2d14412c7a7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-12-07 Marek Polacek <polacek@redhat.com> + + PR c++/91678 - wrong error with decltype and location wrapper. + * g++.dg/cpp0x/decltype73.C: New test. + 2019-12-07 Jakub Jelinek <jakub@redhat.com> PR c++/92831 diff --git a/gcc/testsuite/g++.dg/cpp0x/decltype73.C b/gcc/testsuite/g++.dg/cpp0x/decltype73.C new file mode 100644 index 00000000000..cbe94a898e3 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/decltype73.C @@ -0,0 +1,4 @@ +// PR c++/91678 - wrong error with decltype and location wrapper. +// { dg-do compile { target c++11 } } + +float* test(float* c) { return (decltype(c + 0))(float*)c; } |