diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2013-11-25 20:51:56 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2013-11-25 20:51:56 +0000 |
commit | 4fd602a1e050ca035265ae53f2dfe721505811a5 (patch) | |
tree | ed7d02bbaf71b3671b993e46241d405a17c38f1f /gcc/cp | |
parent | 807b7031711f7e7b48cabd52ef3e30e32dbcfeee (diff) | |
download | gcc-4fd602a1e050ca035265ae53f2dfe721505811a5.zip gcc-4fd602a1e050ca035265ae53f2dfe721505811a5.tar.gz gcc-4fd602a1e050ca035265ae53f2dfe721505811a5.tar.bz2 |
re PR c++/58607 ([c++11] ICE with undeclared variable in constexpr)
/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.
From-SVN: r205364
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/semantics.c | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 8118471..e567aa0 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 316834c..d871c4d 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 |