Tiny patch, just use available location instead of input_location.

Tested x86_64.  Ok?

2014-05-13  Marek Polacek  <pola...@redhat.com>

        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.

diff --git gcc/c/c-typeck.c gcc/c/c-typeck.c
index 4b1fe66..6f4bd4a 100644
--- gcc/c/c-typeck.c
+++ 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 gcc/testsuite/gcc.dg/pr61162.c gcc/testsuite/gcc.dg/pr61162.c
index e69de29..00e64b9 100644
--- gcc/testsuite/gcc.dg/pr61162.c
+++ 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" } */
+}

        Marek

Reply via email to