From a09e9e35a62b19065ba248f666cf87364ee68a1c Mon Sep 17 00:00:00 2001 From: Bernd Edlinger Date: Wed, 21 Sep 2016 20:14:44 +0000 Subject: [PATCH] c-common.c (c_common_truthvalue_conversion): Inhibit Wint-in-bool-context warning with from_macro_definition_at. 2016-09-21 Bernd Edlinger * c-common.c (c_common_truthvalue_conversion): Inhibit Wint-in-bool-context warning with from_macro_definition_at. Mention the expression will always evaluate to true. From-SVN: r240331 --- gcc/c-family/ChangeLog | 6 ++++++ gcc/c-family/c-common.c | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 7795f9c8d39..3dfb39f3631 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,9 @@ +2016-09-21 Bernd Edlinger + + * c-common.c (c_common_truthvalue_conversion): Inhibit + Wint-in-bool-context warning with from_macro_definition_at. + Mention the expression will always evaluate to true. + 2016-09-21 Martin Sebor PR bootstrap/77676 diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c index d1372a4feea..48d8b054451 100644 --- a/gcc/c-family/c-common.c +++ b/gcc/c-family/c-common.c @@ -4652,7 +4652,8 @@ c_common_truthvalue_conversion (location_t location, tree expr) TREE_OPERAND (expr, 0)); case COND_EXPR: - if (warn_int_in_bool_context) + if (warn_int_in_bool_context + && !from_macro_definition_at (EXPR_LOCATION (expr))) { tree val1 = fold_for_warn (TREE_OPERAND (expr, 1)); tree val2 = fold_for_warn (TREE_OPERAND (expr, 2)); @@ -4663,7 +4664,8 @@ c_common_truthvalue_conversion (location_t location, tree expr) && (!integer_onep (val1) || !integer_onep (val2))) warning_at (EXPR_LOCATION (expr), OPT_Wint_in_bool_context, - "?: using integer constants in boolean context"); + "?: using integer constants in boolean context, " + "the expression will always evaluate to %"); } /* Distribute the conversion into the arms of a COND_EXPR. */ if (c_dialect_cxx ()) -- 2.30.2