diff options
author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-12-21 16:28:08 +0000 |
---|---|---|
committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-12-21 16:28:08 +0000 |
commit | 8471bd391bbd1ab57d5b0f74fc3f6c3543f2b2a9 (patch) | |
tree | ab6d2fda508e6c45c1c0afad908931e4436906b4 /gcc/cp/semantics.c | |
parent | 6032e228d4d98dc6a50cbbcda837356bc6e829c6 (diff) | |
download | gcc-8471bd391bbd1ab57d5b0f74fc3f6c3543f2b2a9.tar.gz |
/cp
2011-12-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51305
* semantics.c (massage_constexpr_body): Reorder conditionals, make
sure a BIND_EXPR embedded in a MUST_NOT_THROW_EXPR is handled.
/testsuite
2011-12-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51305
* g++.dg/cpp0x/constexpr-noexcept6.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182594 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/semantics.c')
-rw-r--r-- | gcc/cp/semantics.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 0cb7ae860d5..bad418f97ca 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -5998,12 +5998,12 @@ massage_constexpr_body (tree fun, tree body) (DECL_CONTEXT (fun), body); else { - if (TREE_CODE (body) == BIND_EXPR) - body = BIND_EXPR_BODY (body); if (TREE_CODE (body) == EH_SPEC_BLOCK) body = EH_SPEC_STMTS (body); if (TREE_CODE (body) == MUST_NOT_THROW_EXPR) body = TREE_OPERAND (body, 0); + if (TREE_CODE (body) == BIND_EXPR) + body = BIND_EXPR_BODY (body); body = constexpr_fn_retval (body); } return body; |