aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2013-11-25 20:51:56 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2013-11-25 20:51:56 +0000
commit4fd602a1e050ca035265ae53f2dfe721505811a5 (patch)
treeed7d02bbaf71b3671b993e46241d405a17c38f1f /gcc/cp
parent807b7031711f7e7b48cabd52ef3e30e32dbcfeee (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/cp/semantics.c5
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