diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2017-03-05 17:13:16 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2017-03-05 17:13:16 +0000 |
commit | d8b4baeb45c2727156e6d14e1dee16e078c0a727 (patch) | |
tree | d591bbf3880cbf38688f87eef1554baae652052a /gcc/cp/except.c | |
parent | ef78bc3c0b9d23b3decd8b6439c99a025ebc8f28 (diff) | |
download | gcc-d8b4baeb45c2727156e6d14e1dee16e078c0a727.zip gcc-d8b4baeb45c2727156e6d14e1dee16e078c0a727.tar.gz gcc-d8b4baeb45c2727156e6d14e1dee16e078c0a727.tar.bz2 |
re PR c++/70266 (ICE on invalid code on x86_64-linux-gnu: unexpected expression ‘foo’ of kind overload)
/cp
2017-03-05 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/70266
* except.c (build_must_not_throw_expr): Perform the implicit
conversions on the condition.
/testsuite
2017-03-05 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/70266
* g++.dg/tm/pr70266.C: New.
From-SVN: r245901
Diffstat (limited to 'gcc/cp/except.c')
-rw-r--r-- | gcc/cp/except.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/cp/except.c b/gcc/cp/except.c index bfc3290..45d00cc 100644 --- a/gcc/cp/except.c +++ b/gcc/cp/except.c @@ -268,6 +268,9 @@ build_must_not_throw_expr (tree body, tree cond) if (cond && !value_dependent_expression_p (cond)) { + cond = perform_implicit_conversion_flags (boolean_type_node, cond, + tf_warning_or_error, + LOOKUP_NORMAL); cond = cxx_constant_value (cond); if (integer_zerop (cond)) return body; |