aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/except.c
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2017-03-05 17:13:16 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2017-03-05 17:13:16 +0000
commitd8b4baeb45c2727156e6d14e1dee16e078c0a727 (patch)
treed591bbf3880cbf38688f87eef1554baae652052a /gcc/cp/except.c
parentef78bc3c0b9d23b3decd8b6439c99a025ebc8f28 (diff)
downloadgcc-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.c3
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;