Patchwork C++ PATCH for C++0x failure on template/dtor6.C

login
register
mail settings
Submitter Jason Merrill
Date June 8, 2011, 9:35 p.m.
Message ID <4DEFEB2B.5080403@redhat.com>
Download mbox | patch
Permalink /patch/99562/
State New
Headers show

Comments

Jason Merrill - June 8, 2011, 9:35 p.m.
Running the testsuite in C++0x mode caught this issue.

Tested x86_64-pc-linux-gnu, applied to trunk.

Patch

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: