aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2014-05-13 17:41:12 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2014-05-13 17:41:12 +0000
commit2b107f6b91d1b44ec60bd5ce8b51218a84aac98a (patch)
tree71a054b65773de4a41bafae1593739847a1bbd73
parent6052140cec44f7605a43a968af90797c36e47992 (diff)
downloadgcc-2b107f6b91d1b44ec60bd5ce8b51218a84aac98a.zip
gcc-2b107f6b91d1b44ec60bd5ce8b51218a84aac98a.tar.gz
gcc-2b107f6b91d1b44ec60bd5ce8b51218a84aac98a.tar.bz2
re PR c/61162 (possibly bad error location with -Wc++-compat)
PR c/61162 * c-typeck.c (convert_for_assignment): Pass location to WARN_FOR_ASSIGNMENT instead of input_location. * gcc.dg/pr61162.c: New test. From-SVN: r210393
-rw-r--r--gcc/c/ChangeLog6
-rw-r--r--gcc/c/c-typeck.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr61162.c12
4 files changed, 24 insertions, 1 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index 919b4ff..7b7d665 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,9 @@
+2014-05-13 Marek Polacek <polacek@redhat.com>
+
+ PR c/61162
+ * c-typeck.c (convert_for_assignment): Pass location to
+ WARN_FOR_ASSIGNMENT instead of input_location.
+
2014-05-10 Marek Polacek <polacek@redhat.com>
* c-parser.c (c_parser_declaration_or_fndef): Pass init_loc to
diff --git a/gcc/c/c-typeck.c b/gcc/c/c-typeck.c
index 4b1fe66..6f4bd4a 100644
--- a/gcc/c/c-typeck.c
+++ b/gcc/c/c-typeck.c
@@ -5754,7 +5754,7 @@ convert_for_assignment (location_t location, location_t expr_loc, tree type,
&& TREE_CODE (type) == ENUMERAL_TYPE
&& TYPE_MAIN_VARIANT (checktype) != TYPE_MAIN_VARIANT (type))
{
- WARN_FOR_ASSIGNMENT (input_location, OPT_Wc___compat,
+ WARN_FOR_ASSIGNMENT (location, OPT_Wc___compat,
G_("enum conversion when passing argument "
"%d of %qE is invalid in C++"),
G_("enum conversion in assignment is "
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 98a6505..54d483f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2014-05-13 Marek Polacek <polacek@redhat.com>
+ PR c/61162
+ * gcc.dg/pr61162.c: New test.
+
+2014-05-13 Marek Polacek <polacek@redhat.com>
+
* c-c++-common/pr50459.c: Move cdtor tests to a separate testcase.
* c-c++-common/pr50459-2.c: New test.
diff --git a/gcc/testsuite/gcc.dg/pr61162.c b/gcc/testsuite/gcc.dg/pr61162.c
new file mode 100644
index 0000000..00e64b9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr61162.c
@@ -0,0 +1,12 @@
+/* PR c/61162 */
+/* { dg-do compile } */
+/* { dg-options "-Wc++-compat" } */
+
+enum e { A };
+enum e
+fn1 (void)
+{
+ enum e e, q = 0; /* { dg-warning "17:enum conversion in initialization is invalid" } */
+ e = 0; /* { dg-warning "5:enum conversion in assignment is invalid" } */
+ 1; return 0; /* { dg-warning "6:enum conversion in return is invalid" } */
+}