re PR c/71926 (wrong location for -Wparentheses warning)

PR c/71926
	* c-common.c (c_common_truthvalue_conversion): Use LOCATION for the
	parentheses warning.

	* semantics.c (maybe_convert_cond): Use the location of COND for the
	parentheses warning.

	* g++.dg/warn/Wparentheses-30.C: New test.
	* gcc.dg/Wparentheses-14.c: New test.

From-SVN: r238886
This commit is contained in:
Marek Polacek 2016-07-29 17:39:39 +00:00 committed by Marek Polacek
parent e00dceafd2
commit 638fc14f07
7 changed files with 41 additions and 4 deletions

View File

@ -1,5 +1,9 @@
2016-07-29 Marek Polacek <polacek@redhat.com>
PR c/71926
* c-common.c (c_common_truthvalue_conversion): Use LOCATION for the
parentheses warning.
PR c/71574
* c-common.c (handle_alloc_align_attribute): Also check FUNCTION_DECL.

View File

@ -4591,8 +4591,9 @@ c_common_truthvalue_conversion (location_t location, tree expr)
if (!TREE_NO_WARNING (expr)
&& warn_parentheses)
{
warning (OPT_Wparentheses,
"suggest parentheses around assignment used as truth value");
warning_at (location, OPT_Wparentheses,
"suggest parentheses around assignment used as "
"truth value");
TREE_NO_WARNING (expr) = 1;
}
break;

View File

@ -1,3 +1,9 @@
2016-07-29 Marek Polacek <polacek@redhat.com>
PR c/71926
* semantics.c (maybe_convert_cond): Use the location of COND for the
parentheses warning.
2016-07-29 Jason Merrill <jason@redhat.com>
* decl.c (build_enumerator): Tweak diagnostic.

View File

@ -656,8 +656,8 @@ maybe_convert_cond (tree cond)
&& !TREE_NO_WARNING (cond)
&& warn_parentheses)
{
warning (OPT_Wparentheses,
"suggest parentheses around assignment used as truth value");
warning_at (EXPR_LOC_OR_LOC (cond, input_location), OPT_Wparentheses,
"suggest parentheses around assignment used as truth value");
TREE_NO_WARNING (cond) = 1;
}

View File

@ -11,6 +11,10 @@
PR c/71573
* gcc.dg/noncompile/pr71573.c: New test.
PR c/71926
* g++.dg/warn/Wparentheses-30.C: New test.
* gcc.dg/Wparentheses-14.c: New test.
2016-07-29 Uros Bizjak <ubizjak@gmail.com>
* gcc.dg/pr59833.c: Use dg-add-options ieee.

View File

@ -0,0 +1,11 @@
/* PR c/71926 */
/* { dg-options "-Wparentheses" } */
int
f (void)
{
int a = 1, b = 2, c = 3, d = 4;
if (a = 2 || (b != 3 && c != 4 && d != 5)) /* { dg-warning "9:suggest parentheses" } */
return 1;
return 0;
}

View File

@ -0,0 +1,11 @@
/* PR c/71926 */
/* { dg-options "-Wparentheses" } */
int
f (void)
{
int a = 1, b = 2, c = 3, d = 4;
if (a = 2 || (b != 3 && c != 4 && d != 5)) /* { dg-warning "7:suggest parentheses" } */
return 1;
return 0;
}