From patchwork Wed Jun 8 21:35:39 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: C++ PATCH for C++0x failure on template/dtor6.C Date: Wed, 08 Jun 2011 11:35:39 -0000 From: Jason Merrill X-Patchwork-Id: 99562 Message-Id: <4DEFEB2B.5080403@redhat.com> To: gcc-patches List Running the testsuite in C++0x mode caught this issue. Tested x86_64-pc-linux-gnu, applied to trunk. commit b531be395b85f7872c51e79ffb5db9a30a2a4f66 Author: Jason Merrill 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: