diff options
author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-11-25 20:51:56 +0000 |
---|---|---|
committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-11-25 20:51:56 +0000 |
commit | 09384a11ae412c565a41cee95ed6b158b556bb80 (patch) | |
tree | ed7d02bbaf71b3671b993e46241d405a17c38f1f | |
parent | 396c773e8fb91ee9692741dd219df85e10e1b95f (diff) | |
download | gcc-09384a11ae412c565a41cee95ed6b158b556bb80.tar.gz |
/cp
2013-11-25 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58607
* semantics.c (check_constexpr_ctor_body): Check for BIND_EXPR_VARS.
/testsuite
2013-11-25 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58607
* g++.dg/cpp0x/constexpr-ice9.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205364 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/semantics.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/constexpr-ice9.C | 7 |
4 files changed, 22 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 8118471f60f..e567aa0c9da 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,10 @@ 2013-11-25 Paolo Carlini <paolo.carlini@oracle.com> + PR c++/58607 + * semantics.c (check_constexpr_ctor_body): Check for BIND_EXPR_VARS. + +2013-11-25 Paolo Carlini <paolo.carlini@oracle.com> + PR c++/58810 * decl.c (grokdeclarator): Don't handle qualified free functions here, leave the diagnostic to grokfndecl. diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 316834c1e7c..d871c4dcea2 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -7596,6 +7596,11 @@ check_constexpr_ctor_body (tree last, tree list) break; if (TREE_CODE (t) == BIND_EXPR) { + if (BIND_EXPR_VARS (t)) + { + ok = false; + break; + } if (!check_constexpr_ctor_body (last, BIND_EXPR_BODY (t))) return false; else diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 50e72f4c880..920f8268c35 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2013-11-25 Paolo Carlini <paolo.carlini@oracle.com> + PR c++/58607 + * g++.dg/cpp0x/constexpr-ice9.C: New. + +2013-11-25 Paolo Carlini <paolo.carlini@oracle.com> + PR c++/58810 * g++.dg/other/cv_func3.C: New. * g++.dg/other/cv_func.C: Adjust. diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-ice9.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-ice9.C new file mode 100644 index 00000000000..50de3720b26 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-ice9.C @@ -0,0 +1,7 @@ +// PR c++/58607 +// { dg-do compile { target c++11 } } + +struct A +{ + constexpr A() { i; } // { dg-error "declared|empty body" } +}; |