This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
C++ PATCH for C++0x failure on template/dtor6.C
- From: Jason Merrill <jason at redhat dot com>
- To: gcc-patches List <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 08 Jun 2011 17:35:39 -0400
- Subject: C++ PATCH for C++0x failure on template/dtor6.C
Running the testsuite in C++0x mode caught this issue.
Tested x86_64-pc-linux-gnu, applied to trunk.
commit b531be395b85f7872c51e79ffb5db9a30a2a4f66
Author: Jason Merrill <jason@redhat.com>
Date: Thu Jun 2 14:35:59 2011 -0400
* semantics.c (potential_constant_expression_1): Handle destructor
call.
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index ebca840..53e5993 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -7763,6 +7763,12 @@ potential_constant_expression_1 (tree t, bool want_rval, tsubst_flags_t flags)
want_rval = true;
goto binary;
+ case BIT_NOT_EXPR:
+ /* A destructor. */
+ if (TYPE_P (TREE_OPERAND (t, 0)))
+ return true;
+ /* else fall through. */
+
case REALPART_EXPR:
case IMAGPART_EXPR:
case CONJ_EXPR:
@@ -7771,7 +7777,6 @@ potential_constant_expression_1 (tree t, bool want_rval, tsubst_flags_t flags)
case FLOAT_EXPR:
case NEGATE_EXPR:
case ABS_EXPR:
- case BIT_NOT_EXPR:
case TRUTH_NOT_EXPR:
case FIXED_CONVERT_EXPR:
case UNARY_PLUS_EXPR: