aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2003-07-11 08:13:58 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2003-07-11 08:13:58 +0000
commit7d48af3049bd6b071a0369d96cdc1d7fbe8caa40 (patch)
tree8c68f34ae44ade5ba50e168f32771fb7274dea13 /gcc
parentac8354b1da5fff96c50a9f6a1f9a441c221f3a17 (diff)
downloadgcc-7d48af3049bd6b071a0369d96cdc1d7fbe8caa40.zip
gcc-7d48af3049bd6b071a0369d96cdc1d7fbe8caa40.tar.gz
gcc-7d48af3049bd6b071a0369d96cdc1d7fbe8caa40.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog3
-rw-r--r--gcc/cp/typeck.c5
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/g++.dg/warn/Wsign-compare-1.C6
4 files changed, 17 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 1d64a22..5722e9f 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -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.
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index 58055ec..8e1e0df 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -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));
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f7b1551..968a056 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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.
diff --git a/gcc/testsuite/g++.dg/warn/Wsign-compare-1.C b/gcc/testsuite/g++.dg/warn/Wsign-compare-1.C
new file mode 100644
index 0000000..495bb99
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wsign-compare-1.C
@@ -0,0 +1,6 @@
+// { dg-options "-Wsign-compare" }
+
+extern unsigned u;
+
+template<class F>
+int f() { return u > 1; }