diff options
author | Paolo Carlini <paolo@gcc.gnu.org> | 2016-06-01 09:48:05 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2016-06-01 09:48:05 +0000 |
commit | 48de570121fa393e003a11f63a85b862a0c1030e (patch) | |
tree | a8d908263b0a99d645a7269df212a099c4004caf /gcc | |
parent | e04d2a35c884f075ebe12cd6f871e35f6d0362a4 (diff) | |
download | gcc-48de570121fa393e003a11f63a85b862a0c1030e.zip gcc-48de570121fa393e003a11f63a85b862a0c1030e.tar.gz gcc-48de570121fa393e003a11f63a85b862a0c1030e.tar.bz2 |
re PR c++/66635 (g++ ICE when compiling constexpr code with comma operator)
2016-06-01 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/66635
* g++.dg/cpp0x/constexpr-ice16.C: New.
From-SVN: r236978
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/constexpr-ice16.C | 14 |
2 files changed, 22 insertions, 3 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c806fdb..c6e4a61 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-06-01 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/66635 + * g++.dg/cpp0x/constexpr-ice16.C: New. + 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org> PR tree-optimization/71314 @@ -11,9 +16,9 @@ 2016-05-31 Jan Hubicka <hubicka@ucw.cz> - * g++.d/predict-lop-exit-1.C: Update template for new predictor name. - * g++.d/predict-lop-exit-2.C: Update template for new predictor name. - * g++.d/predict-lop-exit-2.C: Update template for new predictor name. + * g++.dg/predict-lop-exit-1.C: Update template for new predictor name. + * g++.dg/predict-lop-exit-2.C: Update template for new predictor name. + * g++.dg/predict-lop-exit-2.C: Update template for new predictor name. 2016-05-31 Paolo Carlini <paolo.carlini@oracle.com> diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-ice16.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-ice16.C new file mode 100644 index 0000000..42b9226 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-ice16.C @@ -0,0 +1,14 @@ +// PR c++/66635 +// { dg-do compile { target c++11 } } + +#include <cassert> + +struct Foo { + constexpr Foo(const unsigned i) : val(i) {} + constexpr Foo operator-(const Foo &rhs) const { + return assert(val >= rhs.val), Foo(val - rhs.val); // { dg-error "call to non-constexpr" } + } + unsigned val; +}; + +constexpr Foo foo(Foo(1) - Foo(2)); |