From 4cde512c84dfc20a95a01cca838f288e3015cab5 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 22 Mar 2016 09:11:14 +0100 Subject: re PR c++/70295 (bogus -Wnonnull-compare for "dynamic_cast(this) != nullptr") PR c++/70295 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning on assign if (*from_p) is a comparison, set it to TREE_NO_WARNING (*from_p). * c-c++-common/nonnull-1.c (func): Remove parens around cp4 != 0. (func2): New function for cond with parens, xfail warning for c++. * g++.dg/warn/Wnonnull-compare-8.C: New test. From-SVN: r234392 --- gcc/gimplify.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gcc/gimplify.c') diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 3687e7a..5d03435 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -4850,6 +4850,8 @@ gimplify_modify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p, { assign = gimple_build_assign (*to_p, *from_p); gimple_set_location (assign, EXPR_LOCATION (*expr_p)); + if (COMPARISON_CLASS_P (*from_p)) + gimple_set_no_warning (assign, TREE_NO_WARNING (*from_p)); } if (gimplify_ctxp->into_ssa && is_gimple_reg (*to_p)) -- cgit v1.1