typeck.c (build_binary_op): Do not warn about signed vs.

* typeck.c (build_binary_op): Do not warn about signed
	vs. unsigned comparisons in the bodies of templates.

	* g++.dg/warn/Wsign-compare-1.C: New test.

From-SVN: r69222
This commit is contained in:
Mark Mitchell 2003-07-11 08:13:58 +00:00 committed by Mark Mitchell
parent ac8354b1da
commit 7d48af3049
4 changed files with 17 additions and 1 deletions

View File

@ -1,5 +1,8 @@
2003-07-10 Mark Mitchell <mark@codesourcery.com>
* typeck.c (build_binary_op): Do not warn about signed
vs. unsigned comparisons in the bodies of templates.
PR c++/9411
* parser.c (cp_parser_postfix_expression): Check dependency of
functions.

View File

@ -3443,7 +3443,10 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
}
if ((short_compare || code == MIN_EXPR || code == MAX_EXPR)
&& warn_sign_compare)
&& warn_sign_compare
/* Do not warn until the template is instantiated; we cannot
bound the ranges of the arguments until that point. */
&& !processing_template_decl)
{
int op0_signed = ! TREE_UNSIGNED (TREE_TYPE (orig_op0));
int op1_signed = ! TREE_UNSIGNED (TREE_TYPE (orig_op1));

View File

@ -1,3 +1,7 @@
2003-07-11 Mark Mitchell <mark@codesourcery.com>
* g++.dg/warn/Wsign-compare-1.C: New test.
2003-07-10 Kazu Hirata <kazu@cs.umass.edu>
* gcc.dg/20021018-1.c: Disable if the sizeof (int) < 4.

View File

@ -0,0 +1,6 @@
// { dg-options "-Wsign-compare" }
extern unsigned u;
template<class F>
int f() { return u > 1; }