re PR c/78285 (error on duplicate switch label where a note should be)
authorMarek Polacek <polacek@redhat.com>
Thu, 17 Nov 2016 01:23:19 +0000 (01:23 +0000)
committerMarek Polacek <mpolacek@gcc.gnu.org>
Thu, 17 Nov 2016 01:23:19 +0000 (01:23 +0000)
PR c/78285
* c-common.c (c_add_case_label): Turn error_at calls into inform.

* gcc.dg/switch-5.c: Turn several dg-errors into dg-messages.
* g++.dg/ext/case-range2.C: Likewise.

From-SVN: r242532

gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ext/case-range2.C
gcc/testsuite/gcc.dg/switch-5.c

index 382606fa72cffc05d95a0d2ea45c7dc587e7e512..acbe46154ec73ecec0754306322c997bea5e64cd 100644 (file)
@@ -1,3 +1,8 @@
+2016-11-16  Marek Polacek  <polacek@redhat.com>
+
+       PR c/78285
+       * c-common.c (c_add_case_label): Turn error_at calls into inform.
+
 2016-11-14  Jakub Jelinek  <jakub@redhat.com>
 
        * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_structured_bindings.
index 2997c83925f36d761ce3933ff816e0acd3ed38de..3eb7f45aba4e80d143141401b9f71c85711f0ac5 100644 (file)
@@ -4968,19 +4968,19 @@ c_add_case_label (location_t loc, splay_tree cases, tree cond, tree orig_type,
       if (high_value)
        {
          error_at (loc, "duplicate (or overlapping) case value");
-         error_at (DECL_SOURCE_LOCATION (duplicate),
-                   "this is the first entry overlapping that value");
+         inform (DECL_SOURCE_LOCATION (duplicate),
+                 "this is the first entry overlapping that value");
        }
       else if (low_value)
        {
          error_at (loc, "duplicate case value") ;
-         error_at (DECL_SOURCE_LOCATION (duplicate), "previously used here");
+         inform (DECL_SOURCE_LOCATION (duplicate), "previously used here");
        }
       else
        {
          error_at (loc, "multiple default labels in one switch");
-         error_at (DECL_SOURCE_LOCATION (duplicate),
-                   "this is the first default label");
+         inform (DECL_SOURCE_LOCATION (duplicate),
+                 "this is the first default label");
        }
       goto error_out;
     }
index 9b616e6d7a441ad47fe8cc1412b6dff08a5d86a9..4d4679418a2bfd3dfe852f9ebd9586f0312eb353 100644 (file)
@@ -1,3 +1,9 @@
+2016-11-16  Marek Polacek  <polacek@redhat.com>
+
+       PR c/78285
+       * gcc.dg/switch-5.c: Turn several dg-errors into dg-messages.
+       * g++.dg/ext/case-range2.C: Likewise.
+
 2016-11-16  Steven G. Kargl  <kargl@gcc.gnu.org>
 
        PR fortran/58001
index 985ded3362e1712063d858b0f91c3ab8c0813c4f..f1165adfad9f5b03096974927eb4bdd7d3f794a1 100644 (file)
@@ -11,7 +11,7 @@ T f2 (T i)
 {
   switch (i)
   {
-    case low ... high : return i + 1;  // { dg-error "previously" }
+    case low ... high : return i + 1;  // { dg-message "previously" }
     case 5 : return i + 2;             // { dg-error "duplicate" }
     default : return 0;
   }
@@ -20,7 +20,7 @@ T f2 (T i)
 int f (int i)
 {
   switch (i) {
-    case 1 ... 10: return i + 1;       // { dg-error "first entry" }
+    case 1 ... 10: return i + 1;       // { dg-message "first entry" }
     case 3 ... 5 : return i + 3;       // { dg-error "duplicate" }
     default: return f2 (i);            // { dg-message "required" }
   }
index 5a58490698817b7331b6c1c563baff8c811d8780..a097d446c1316393f13c457259d408acc72899bb 100644 (file)
@@ -40,13 +40,13 @@ f (int a, double d, void *p)
   switch (a)
     {
     case 0:
-    default: /* { dg-error "this is the first default label" } */
+    default: /* { dg-message "this is the first default label" } */
     case 1:
     default: ; /* { dg-error "multiple default labels in one switch" } */
     }
   switch (a)
     {
-    case 0: /* { dg-error "previously used here" } */
+    case 0: /* { dg-message "previously used here" } */
     case 1:
     case 0: ; /* { dg-error "duplicate case value" } */
     }
@@ -60,11 +60,11 @@ f (int a, double d, void *p)
      }
    switch (a)
      {
-     case 0: /* { dg-error "this is the first entry overlapping that value" } */
+     case 0: /* { dg-message "this is the first entry overlapping that value" } */
      case -1 ... 1: /* { dg-error "duplicate \\(or overlapping\\) case value" } */
-     case 2 ... 3: /* { dg-error "previously used here" } */
+     case 2 ... 3: /* { dg-message "previously used here" } */
      case 2: /* { dg-error "duplicate case value" } */
-     case 4 ... 7: /* { dg-error "this is the first entry overlapping that value" } */
+     case 4 ... 7: /* { dg-message "this is the first entry overlapping that value" } */
      case 6 ... 9: ; /* { dg-error "duplicate \\(or overlapping\\) case value" } */
      }
    switch (a)