diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2017-03-09 11:51:29 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2017-03-09 11:51:29 +0000 |
commit | 35f77c2855c08fa329638e05d29b9b0d18caa5c1 (patch) | |
tree | fd1d5ef97835f0f930e022eafbe5aab341b25987 | |
parent | 88119b464e7407b5b455d0c36df16602a569a348 (diff) | |
download | gcc-35f77c2855c08fa329638e05d29b9b0d18caa5c1.zip gcc-35f77c2855c08fa329638e05d29b9b0d18caa5c1.tar.gz gcc-35f77c2855c08fa329638e05d29b9b0d18caa5c1.tar.bz2 |
re PR c++/71966 (ICE on invalid C++11 code (undefined constructor used in a constant expression): in cp_build_addr_expr_1, at cp/typeck.c:5671)
2017-03-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/71966
* g++.dg/cpp0x/pr71966-1.C: New.
* g++.dg/cpp0x/pr71966-2.C: Likewise.
From-SVN: r246000
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/pr71966-1.C | 13 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/pr71966-2.C | 15 |
3 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f576273..98f8733 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2017-03-09 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/71966 + * g++.dg/cpp0x/pr71966-1.C: New. + * g++.dg/cpp0x/pr71966-2.C: Likewise. + 2017-03-09 Martin Liska <mliska@suse.cz> PR tree-optimization/79631 diff --git a/gcc/testsuite/g++.dg/cpp0x/pr71966-1.C b/gcc/testsuite/g++.dg/cpp0x/pr71966-1.C new file mode 100644 index 0000000..7632720 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/pr71966-1.C @@ -0,0 +1,13 @@ +// PR c++/71966 +// { dg-do compile { target c++11 } } + +struct A +{ + constexpr A (int); // { dg-message "never defined" } + constexpr operator int () const { return 0; } +}; + +template < int > struct B {}; + +constexpr A a = 0; // { dg-error "before its definition" } +B < a > b; diff --git a/gcc/testsuite/g++.dg/cpp0x/pr71966-2.C b/gcc/testsuite/g++.dg/cpp0x/pr71966-2.C new file mode 100644 index 0000000..aedd4ce --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/pr71966-2.C @@ -0,0 +1,15 @@ +// PR c++/71966 +// { dg-do compile { target c++11 } } + +struct A +{ + constexpr A (int); // { dg-message "never defined" } + constexpr operator int () const { return 0; } + int c; +}; + +template <int> +struct B {}; + +constexpr A a = 0; // { dg-error "before its definition" } +B<a> b; |