Replace absolute line numbers in gcc.dg
authorTom de Vries <tom@codesourcery.com>
Fri, 26 May 2017 09:25:00 +0000 (09:25 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Fri, 26 May 2017 09:25:00 +0000 (09:25 +0000)
2017-05-26  Tom de Vries  <tom@codesourcery.com>

PR testsuite/80557
* gcc.dg/20011021-1.c: Replace absolute line numbers.
* gcc.dg/Wcxx-compat-8.c: Same.
* gcc.dg/Wobjsize-1.c: Same.
* gcc.dg/Wshadow-local-2.c: Same.
* gcc.dg/Wstrict-aliasing-converted-assigned.c: Same.
* gcc.dg/anon-struct-6.c: Same.
* gcc.dg/asm-wide-1.c: Same.
* gcc.dg/builtin-inf-1.c: Same.
* gcc.dg/builtin-redefine.c: Same.
* gcc.dg/c90-array-lval-6.c: Same.
* gcc.dg/c90-array-lval-7.c: Same.
* gcc.dg/c90-fordecl-1.c: Same.
* gcc.dg/c99-fordecl-2.c: Same.
* gcc.dg/cast-lvalue-1.c: Same.
* gcc.dg/cast-lvalue-2.c: Same.
* gcc.dg/compound-lvalue-1.c: Same.
* gcc.dg/cond-lvalue-1.c: Same.
* gcc.dg/cpp/20000419-1.c: Same.
* gcc.dg/cpp/backslash.c: Same.
* gcc.dg/cpp/backslash2.c: Same.
* gcc.dg/cpp/macspace1.c: Same.
* gcc.dg/cpp/macspace2.c: Same.
* gcc.dg/cpp/multiline-2.c: Same.
* gcc.dg/cpp/pr27777.c: Same.
* gcc.dg/cpp/pr30786.c: Same.
* gcc.dg/cpp/pr34602.c: Same.
* gcc.dg/cpp/redef1.c: Same.
* gcc.dg/cpp/tr-warn1.c: Same.
* gcc.dg/cpp/tr-warn3.c: Same.
* gcc.dg/cpp/tr-warn6.c: Same.
* gcc.dg/cpp/trad/hash.c: Same.
* gcc.dg/cpp/trad/redef1.c: Same.
* gcc.dg/cpp/ucs.c: Same.
* gcc.dg/declspec-10.c: Same.
* gcc.dg/declspec-11.c: Same.
* gcc.dg/declspec-18.c: Same.
* gcc.dg/format/c99-strftime-1.c: Same.
* gcc.dg/format/ext-3.c: Same.
* gcc.dg/format/pr72858.c: Same.
* gcc.dg/gomp/appendix-a/a.24.1.c: Same.
* gcc.dg/init-string-1.c: Same.
* gcc.dg/label-decl-3.c: Same.
* gcc.dg/m-un-2.c: Same.
* gcc.dg/nofixed-point-2.c: Same.
* gcc.dg/noncompile/20020213-1.c: Same.
* gcc.dg/pch/counter-2.c: Same.
* gcc.dg/plugin/diagnostic-test-string-literals-2.c: Same.
* gcc.dg/pr27528.c: Same.
* gcc.dg/pr27953.c: Same.
* gcc.dg/pr35899.c: Same.
* gcc.dg/pr37561.c: Same.
* gcc.dg/pr45461.c: Same.
* gcc.dg/pr45750.c: Same.
* gcc.dg/pr53196-2.c: Same.
* gcc.dg/pr53265.c: Same.
* gcc.dg/redecl-1.c: Same.
* gcc.dg/tls/thr-init-1.c: Same.
* gcc.dg/torture/pr51106-1.c: Same.
* gcc.dg/torture/pr51106-2.c: Same.
* gcc.dg/uninit-19.c: Same.
* gcc.dg/uninit-pr20644.c: Same.

From-SVN: r248484

62 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/20011021-1.c
gcc/testsuite/gcc.dg/Wcxx-compat-8.c
gcc/testsuite/gcc.dg/Wobjsize-1.c
gcc/testsuite/gcc.dg/Wshadow-local-2.c
gcc/testsuite/gcc.dg/Wstrict-aliasing-converted-assigned.c
gcc/testsuite/gcc.dg/anon-struct-6.c
gcc/testsuite/gcc.dg/asm-wide-1.c
gcc/testsuite/gcc.dg/builtin-inf-1.c
gcc/testsuite/gcc.dg/builtin-redefine.c
gcc/testsuite/gcc.dg/c90-array-lval-6.c
gcc/testsuite/gcc.dg/c90-array-lval-7.c
gcc/testsuite/gcc.dg/c90-fordecl-1.c
gcc/testsuite/gcc.dg/c99-fordecl-2.c
gcc/testsuite/gcc.dg/cast-lvalue-1.c
gcc/testsuite/gcc.dg/cast-lvalue-2.c
gcc/testsuite/gcc.dg/compound-lvalue-1.c
gcc/testsuite/gcc.dg/cond-lvalue-1.c
gcc/testsuite/gcc.dg/cpp/20000419-1.c
gcc/testsuite/gcc.dg/cpp/backslash.c
gcc/testsuite/gcc.dg/cpp/backslash2.c
gcc/testsuite/gcc.dg/cpp/macspace1.c
gcc/testsuite/gcc.dg/cpp/macspace2.c
gcc/testsuite/gcc.dg/cpp/multiline-2.c
gcc/testsuite/gcc.dg/cpp/pr27777.c
gcc/testsuite/gcc.dg/cpp/pr30786.c
gcc/testsuite/gcc.dg/cpp/pr34602.c
gcc/testsuite/gcc.dg/cpp/redef1.c
gcc/testsuite/gcc.dg/cpp/tr-warn1.c
gcc/testsuite/gcc.dg/cpp/tr-warn3.c
gcc/testsuite/gcc.dg/cpp/tr-warn6.c
gcc/testsuite/gcc.dg/cpp/trad/hash.c
gcc/testsuite/gcc.dg/cpp/trad/redef1.c
gcc/testsuite/gcc.dg/cpp/ucs.c
gcc/testsuite/gcc.dg/declspec-10.c
gcc/testsuite/gcc.dg/declspec-11.c
gcc/testsuite/gcc.dg/declspec-18.c
gcc/testsuite/gcc.dg/format/c99-strftime-1.c
gcc/testsuite/gcc.dg/format/ext-3.c
gcc/testsuite/gcc.dg/format/pr72858.c
gcc/testsuite/gcc.dg/gomp/appendix-a/a.24.1.c
gcc/testsuite/gcc.dg/init-string-1.c
gcc/testsuite/gcc.dg/label-decl-3.c
gcc/testsuite/gcc.dg/m-un-2.c
gcc/testsuite/gcc.dg/nofixed-point-2.c
gcc/testsuite/gcc.dg/noncompile/20020213-1.c
gcc/testsuite/gcc.dg/pch/counter-2.c
gcc/testsuite/gcc.dg/plugin/diagnostic-test-string-literals-2.c
gcc/testsuite/gcc.dg/pr27528.c
gcc/testsuite/gcc.dg/pr27953.c
gcc/testsuite/gcc.dg/pr35899.c
gcc/testsuite/gcc.dg/pr37561.c
gcc/testsuite/gcc.dg/pr45461.c
gcc/testsuite/gcc.dg/pr45750.c
gcc/testsuite/gcc.dg/pr53196-2.c
gcc/testsuite/gcc.dg/pr53265.c
gcc/testsuite/gcc.dg/redecl-1.c
gcc/testsuite/gcc.dg/tls/thr-init-1.c
gcc/testsuite/gcc.dg/torture/pr51106-1.c
gcc/testsuite/gcc.dg/torture/pr51106-2.c
gcc/testsuite/gcc.dg/uninit-19.c
gcc/testsuite/gcc.dg/uninit-pr20644.c

index 4f73955c6f621ea3ebad1f82ad110aff651b995e..b2fc5b6d8b1e87542381fb8b96e4a08e9df15c0e 100644 (file)
@@ -1,3 +1,68 @@
+2017-05-26  Tom de Vries  <tom@codesourcery.com>
+
+       PR testsuite/80557
+       * gcc.dg/20011021-1.c: Replace absolute line numbers.
+       * gcc.dg/Wcxx-compat-8.c: Same.
+       * gcc.dg/Wobjsize-1.c: Same.
+       * gcc.dg/Wshadow-local-2.c: Same.
+       * gcc.dg/Wstrict-aliasing-converted-assigned.c: Same.
+       * gcc.dg/anon-struct-6.c: Same.
+       * gcc.dg/asm-wide-1.c: Same.
+       * gcc.dg/builtin-inf-1.c: Same.
+       * gcc.dg/builtin-redefine.c: Same.
+       * gcc.dg/c90-array-lval-6.c: Same.
+       * gcc.dg/c90-array-lval-7.c: Same.
+       * gcc.dg/c90-fordecl-1.c: Same.
+       * gcc.dg/c99-fordecl-2.c: Same.
+       * gcc.dg/cast-lvalue-1.c: Same.
+       * gcc.dg/cast-lvalue-2.c: Same.
+       * gcc.dg/compound-lvalue-1.c: Same.
+       * gcc.dg/cond-lvalue-1.c: Same.
+       * gcc.dg/cpp/20000419-1.c: Same.
+       * gcc.dg/cpp/backslash.c: Same.
+       * gcc.dg/cpp/backslash2.c: Same.
+       * gcc.dg/cpp/macspace1.c: Same.
+       * gcc.dg/cpp/macspace2.c: Same.
+       * gcc.dg/cpp/multiline-2.c: Same.
+       * gcc.dg/cpp/pr27777.c: Same.
+       * gcc.dg/cpp/pr30786.c: Same.
+       * gcc.dg/cpp/pr34602.c: Same.
+       * gcc.dg/cpp/redef1.c: Same.
+       * gcc.dg/cpp/tr-warn1.c: Same.
+       * gcc.dg/cpp/tr-warn3.c: Same.
+       * gcc.dg/cpp/tr-warn6.c: Same.
+       * gcc.dg/cpp/trad/hash.c: Same.
+       * gcc.dg/cpp/trad/redef1.c: Same.
+       * gcc.dg/cpp/ucs.c: Same.
+       * gcc.dg/declspec-10.c: Same.
+       * gcc.dg/declspec-11.c: Same.
+       * gcc.dg/declspec-18.c: Same.
+       * gcc.dg/format/c99-strftime-1.c: Same.
+       * gcc.dg/format/ext-3.c: Same.
+       * gcc.dg/format/pr72858.c: Same.
+       * gcc.dg/gomp/appendix-a/a.24.1.c: Same.
+       * gcc.dg/init-string-1.c: Same.
+       * gcc.dg/label-decl-3.c: Same.
+       * gcc.dg/m-un-2.c: Same.
+       * gcc.dg/nofixed-point-2.c: Same.
+       * gcc.dg/noncompile/20020213-1.c: Same.
+       * gcc.dg/pch/counter-2.c: Same.
+       * gcc.dg/plugin/diagnostic-test-string-literals-2.c: Same.
+       * gcc.dg/pr27528.c: Same.
+       * gcc.dg/pr27953.c: Same.
+       * gcc.dg/pr35899.c: Same.
+       * gcc.dg/pr37561.c: Same.
+       * gcc.dg/pr45461.c: Same.
+       * gcc.dg/pr45750.c: Same.
+       * gcc.dg/pr53196-2.c: Same.
+       * gcc.dg/pr53265.c: Same.
+       * gcc.dg/redecl-1.c: Same.
+       * gcc.dg/tls/thr-init-1.c: Same.
+       * gcc.dg/torture/pr51106-1.c: Same.
+       * gcc.dg/torture/pr51106-2.c: Same.
+       * gcc.dg/uninit-19.c: Same.
+       * gcc.dg/uninit-pr20644.c: Same.
+
 2017-05-26  Jakub Jelinek  <jakub@redhat.com>
 
        * g++.dg/cpp1z/decomp29.C (p): New variable.
index 8893b774aa31f175cffcae8d2907d7cc8a63b841..2d567a75381915dca4cef9b900e966ca8d6c627d 100644 (file)
@@ -24,7 +24,7 @@ struct multilevel
    struct t t;
    union u u;
    union u v;
-   char *f;
+   char *f; /* { dg-line multilevel_f } */
 };
 
 struct t T0 = { 1 };           /* { dg-warning "missing init" } */
@@ -42,4 +42,4 @@ struct multilevel M =
   { .n = 9 },                  /* { dg-bogus "initialization of union" } */
   /* "string here" */
 };                             /* { dg-warning "missing init" } */
-/* { dg-message "declared here" "near init" { target *-*-* } 27 } */
+/* { dg-message "declared here" "near init" { target *-*-* } multilevel_f } */
index 85ccec7989ff74c0b0976d4d08501aa94ae800e6..9627dced3472f8de0aa454b3e1a869fd0eb50014 100644 (file)
@@ -63,6 +63,5 @@ void *
 f5 ()
 {
   return &((struct t8) { });  /* { dg-warning "invalid in C\[+\]\[+\]" } */
+  /* { dg-error "invalid use of undefined type" "" { target *-*-* } .-1 } */
 }
-
-/* { dg-error "invalid use of undefined type" "" { target *-*-* } 65 } */
index 211e0680a1d8b87d99cdcb9ab03c8137b5d45085..19c7e68e0106ab9f5a8e331f44bd3a551c04a835 100644 (file)
@@ -4,12 +4,13 @@
 #include "Wobjsize-1.h"
 
 char buf[6];
+/* { dg-warning "writing" "" { target *-*-* } .-1 } */
+
 int main(int argc, char **argv)
 {
   strcpy (buf,"hello ");
   return 0;
 }
 
-/* { dg-warning "writing" "" { target *-*-* } 6 } */
 /* { dg-message "file included" "included" { target *-*-* } 0 } */
 /* { dg-message "inlined from" "inlined" { target *-*-* } 0 } */
index 8f6b132f66db7c22c31640a705b7a9d6e6ce9d9a..55ff978a12f1ef1fb173f23f67c5f143ba99cf39 100644 (file)
@@ -40,10 +40,11 @@ int func3() {
 
 void func4() {
   struct Bar bar;     /* { dg-message "shadowed declaration" } */
+  /* { dg-bogus "shadows a global" ""  { target *-*-* } .-1 } */
+
   if (val) {
     int bar;          /* { dg-warning "shadows a previous local" } */
     func1(bar);
   }
 }
 
-/* { dg-bogus "shadows a global" ""  { target *-*-* } 42 } */
index 06a8a376b8b47dc6a36c9d9f17324b56b2170a7a..c44fc429a114e39d9f82295bcdb85417104f0a28 100644 (file)
@@ -6,10 +6,9 @@ int foo()
 {
   int i;
   *(long*)&i = 0;  /* { dg-warning "type-punn" "type-punn" } */
+  /* These messages are only expected for lp64, but fail there.  When they
+     pass for lp64, replace "xfail *-*-*" with "target lp64".  */
+  /* { dg-message "does break strict-aliasing" "break" { xfail *-*-* } .-3 } */
+  /* { dg-message "initialized" "init" { xfail *-*-* } .-4 } */
   return i;
 }
-
-/* These messages are only expected for lp64, but fail there.  When they
-   pass for lp64, replace "xfail *-*-*" with "target lp64".  */
-/* { dg-message "does break strict-aliasing" "break" { xfail *-*-* } 8 } */
-/* { dg-message "initialized" "init" { xfail *-*-* } 8 } */
index 8ce14f48474a2bc84fea8516a5c781c582df923e..792769b886860e770329c496c58714beb4ed22a1 100644 (file)
@@ -7,6 +7,6 @@
 struct s {
   int a;
   const;
+  /* { dg-warning "useless type qualifier in empty declaration" "empty" { target *-*-* } .-1 } */
+  /* { dg-warning "empty declaration" "empty 2" { target *-*-* } .-2 } */
 };
-/* { dg-warning "useless type qualifier in empty declaration" "empty" { target *-*-* } 9 } */
-/* { dg-warning "empty declaration" "empty 2" { target *-*-* } 9 } */
index c14b19d3479598a4580f9f3b297b81076601a5f6..88bbaed7f16a627bb382891ded3715346ab7ee7c 100644 (file)
@@ -14,10 +14,14 @@ f (void)
   asm (L"foo"); /* { dg-error "8:wide string literal in 'asm'" } */
   asm ("foo" :
        L"=g" (x)); /* { dg-error "8:wide string literal in 'asm'" } */
+  /* Extra errors from the substitution of "" for wide strings: */
+  /* { dg-error "output" "output" { target *-*-* } .-2 } */
   asm ("foo" : [x]
        L"=g" (x)); /* { dg-error "8:wide string literal in 'asm'" } */
+  /* { dg-error "output" "output" { target *-*-* } .-1 } */
   asm ("foo" : [x] "=g" (x),
        L"=g" (x)); /* { dg-error "8:wide string literal in 'asm'" } */
+  /* { dg-error "output" "output" { target *-*-* } .-1 } */
   asm ("foo" : :
        L"g" (x)); /* { dg-error "8:wide string literal in 'asm'" } */
   asm ("foo" : : :
@@ -25,8 +29,3 @@ f (void)
   asm ("foo" : : : "memory",
        L"memory"); /* { dg-error "8:wide string literal in 'asm'" } */
 }
-
-/* Extra errors from the substitution of "" for wide strings: */
-/* { dg-error "output" "output" { target *-*-* } 16 } */
-/* { dg-error "output" "output" { target *-*-* } 18 } */
-/* { dg-error "output" "output" { target *-*-* } 20 } */
index d96a5b6b3f506deda7ff39182ce7206a79d20fd7..1e00bdc07614c297bfc0d90aa7201f90971ad8ea 100644 (file)
@@ -1,13 +1,13 @@
 /* { dg-do compile } */
 
 float fi = __builtin_inff();
+/* { dg-error "does not support infinity" "INF unsupported" { target vax-*-* spu-*-* } .-1 } */
 double di = __builtin_inf();
+/* { dg-error "does not support infinity" "INF unsupported" { target vax-*-* } .-1 } */
 long double li = __builtin_infl();
+/* { dg-error "does not support infinity" "INF unsupported" { target vax-*-* } .-1 } */
 
 float fh = __builtin_huge_valf();
 double dh = __builtin_huge_val();
 long double lh = __builtin_huge_vall();
 
-/* { dg-error "does not support infinity" "INF unsupported" { target vax-*-* spu-*-* } 3 } */
-/* { dg-error "does not support infinity" "INF unsupported" { target vax-*-* } 4 } */
-/* { dg-error "does not support infinity" "INF unsupported" { target vax-*-* } 5 } */
index 9b21afdd6697c7960634459822ba0494f847eae0..8090015f69344ca55cf9cb91cfa73e837bc56496 100644 (file)
 #undef __TIME__              /* Undefine while already undefined.  */
 
 #define __TIME__ "X"         /* Define while undefined.  */
-#define __TIME__ "X"         /* Re-define while defined.  */
+#define __TIME__ "X"         /* Re-define while defined.  */ /* { dg-line time_prev } */
 
 #define __TIME__ "Y"         /* { dg-warning "\"__TIME__\" redefined" } */
-/* { dg-message "previous definition" "" { target *-*-* } 28 } */
+/* { dg-message "previous definition" "" { target *-*-* } time_prev } */
 
 #undef __TIME__              /* Undefine while defined.  */
 
 #undef __DATE__              /* Undefine while already undefined.  */
 
 #define __DATE__ "X"         /* Define while undefined.  */
-#define __DATE__ "X"         /* Re-define while defined.  */
+#define __DATE__ "X"         /* Re-define while defined.  */ /* { dg-line date_prev } */
 
 #define __DATE__ "Y"         /* { dg-warning "\"__DATE__\" redefined" } */
-/* { dg-message "previous definition" "" { target *-*-* } 39 } */
+/* { dg-message "previous definition" "" { target *-*-* } date_prev } */
 
 #undef __DATE__              /* Undefine while defined.  */
 
 
 #define __TIMESTAMP__ "X"    /* Define while already defined.  */
-#define __TIMESTAMP__ "X"    /* Re-define while defined.  */
+#define __TIMESTAMP__ "X"    /* Re-define while defined.  */ /* { dg-line timestamp_prev } */
 
 #define __TIMESTAMP__ "Y"    /* { dg-warning "\"__TIMESTAMP__\" redefined" } */
-/* { dg-message "previous definition" "" { target *-*-* } 48 } */
+/* { dg-message "previous definition" "" { target *-*-* } timestamp_prev } */
 
 #undef __TIMESTAMP__         /* Undefine while defined.  */
 
index f42ef52bd190167a8be3f16d6122e7e2fcb59308..dc57ed707744a903bf341c2b89cb75147dfd881f 100644 (file)
@@ -12,5 +12,5 @@ extern struct s foo(void);
 void bar(void)
 {
   char *ptr = foo().c; /* { dg-bogus "warning" "warning in place of error" } */
+  /* { dg-error "non-lvalue" "array not decaying to lvalue" { target *-*-* } .-1 } */
 }
-/* { dg-error "non-lvalue" "array not decaying to lvalue" { target *-*-* } 14 } */
index ee8da4c70fd89b8ca32094d9180a6d5de9ae7173..9b41777a15b14075b2f8ec425c5ab91ed8fa2750 100644 (file)
@@ -18,6 +18,5 @@ bar (void)
      6.3.15 does not permit conditional expressions between arrays.
      In C99, they decay to pointers.  */
   (e ? (d ? b : c).c : (e ? b : c).c); /* { dg-bogus "warning" "warning in place of error" } */
+  /* { dg-error "array" "bad conditional" { target *-*-* } .-1 } */
 }
-
-/* { dg-error "array" "bad conditional" { target *-*-* } 20 } */
index 51e82ff7e948bfa3303c1e8e15a20fcfd06cda34..0fb9b202df1267718cd8839b62eec9abd355b447 100644 (file)
@@ -8,7 +8,7 @@ foo (void)
 {
   int j = 0;
   for (int i = 1; i <= 10; i++) /* { dg-bogus "warning" "warning in place of error" } */
+    /* { dg-error "'for' loop initial declarations are only allowed in C99 or C11 mode" "declaration in for loop" { target *-*-* } .-1 } */
+    /* { dg-message "note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code" "note" { target *-*-* } .-2 }} */
     j += i;
-  /* { dg-error "'for' loop initial declarations are only allowed in C99 or C11 mode" "declaration in for loop" { target *-*-* } 10 } */
-  /* { dg-message "note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code" "note" { target *-*-* } 10 }} */
 }
index 0ef11f612252999a20ce0b85020b1016a1ec943c..aa5bc783ff801eac0192b281ba7fc5ceaab24f6c 100644 (file)
@@ -10,19 +10,23 @@ foo (void)
      behind these tests.  */
   int j = 0;
   for (int i = 1, bar (void); i <= 10; i++) /* { dg-bogus "warning" "warning in place of error" } */
+    /* { dg-error "bar" "function in for loop" { target *-*-* } .-1 } */
     j += i;
-  /* { dg-error "bar" "function in for loop" { target *-*-* } 12 } */
+
   for (static int i = 1; i <= 10; i++) /* { dg-bogus "warning" "warning in place of error" } */
+    /* { dg-error "static" "static in for loop" { target *-*-* } .-1 } */
     j += i;
-  /* { dg-error "static" "static in for loop" { target *-*-* } 15 } */
+
   for (extern int i; j <= 500; j++) /* { dg-bogus "warning" "warning in place of error" } */
+    /* { dg-error "extern" "extern in for loop" { target *-*-* } .-1 } */
     j += 5;
-  /* { dg-error "extern" "extern in for loop" { target *-*-* } 18 } */
+
   for (enum { FOO } i = FOO; i < 10; i++) /* { dg-bogus "warning" "warning in place of error" } */
+    /* { dg-error "FOO" "enum value in for loop" { target *-*-* } .-1 } */
     j += i;
-  /* { dg-error "FOO" "enum value in for loop" { target *-*-* } 21 } */
+
   for (enum BAR { FOO } i = FOO; i < 10; i++) /* { dg-bogus "warning" "warning in place of error" } */
+    /* { dg-error "FOO" "enum value in for loop" { target *-*-* } .-1 } */
+    /* { dg-error "BAR" "enum tag in for loop" { target *-*-* } .-2 } */
     j += i;
-  /* { dg-error "FOO" "enum value in for loop" { target *-*-* } 24 } */
-  /* { dg-error "BAR" "enum tag in for loop" { target *-*-* } 24 } */
 }
index 4e84804e66dcee1f34db417ec77a1d0e4e89c244..ef3ae0a4db116ad665f070f459cceb30542edca3 100644 (file)
@@ -9,5 +9,5 @@ void
 foo (void)
 {
   (char) x = 1; /* { dg-bogus "warning" "warning in place of error" } */
+  /* { dg-error "lvalue" "cast as lvalue" { target *-*-* } .-1 } */
 }
-/* { dg-error "lvalue" "cast as lvalue" { target *-*-* } 11 } */
index d4db4bd6ff3fbddfe2fe3145676ad413fd3e6ab1..0dcbedc7c23437cb74dc3444f95f1fb8624e35ef 100644 (file)
@@ -9,5 +9,5 @@ void
 foo (void)
 {
   (int) x = 1; /* { dg-bogus "warning" "warning in place of error" } */
+  /* { dg-error "lvalue" "cast as lvalue" { target *-*-* } .-1 } */
 }
-/* { dg-error "lvalue" "cast as lvalue" { target *-*-* } 11 } */
index 30ed58ff8a1ce0cc73aef694325f3e321ba5ddcc..ffff76e47a4968562bad7545731a711d063a6dae 100644 (file)
@@ -9,5 +9,5 @@ void
 foo (void)
 {
   (x, y) = 1; /* { dg-bogus "warning" "warning in place of error" } */
+  /* { dg-error "lvalue" "compound expression as lvalue" { target *-*-* } .-1 } */
 }
-/* { dg-error "lvalue" "compound expression as lvalue" { target *-*-* } 11 } */
index f2605af6ad65e859e1e8d87f8663e745fa305027..d7995c7eda55536ec879a7923ea7af29100f089f 100644 (file)
@@ -9,5 +9,5 @@ void
 foo (void)
 {
   (x ? y : z) = 1; /* { dg-bogus "warning" "warning in place of error" } */
+  /* { dg-error "lvalue" "conditional expression as lvalue" { target *-*-* } .-1 } */
 }
-/* { dg-error "lvalue" "conditional expression as lvalue" { target *-*-* } 11 } */
index c4400ee6ce28818d44be4f5d1bbf463c6bc25975..c23731639901ffc55a33e17659bdb89f4c9a5d7f 100644 (file)
@@ -10,6 +10,5 @@
 
 __REDIRECT (a, b, c)
 __ASMNAME2 (__USER_LABEL_PREFIX__, harumph)
-
-/* { dg-bogus "used without args" "no args, 1" { target *-*-* } 11 } */
-/* { dg-bogus "used without args" "no args, 1" { target *-*-* } 12 } */
+/* { dg-bogus "used without args" "no args, 1" { target *-*-* } .-2 } */
+/* { dg-bogus "used without args" "no args, 1" { target *-*-* } .-2 } */
index f1b094a0b844d0b040f2d956ad82f14ae10edd8f..3255a6a5f9de3d49abb7f2f9c691e73d5fe88a20 100644 (file)
@@ -5,16 +5,15 @@
        b, \
        c
 
-/* Note the trailing whitespace on the next three lines.  */
+/* Note the trailing whitespace on the first three lines of beta def.  */
+/* { dg-warning "separated by space" "space" { target *-*-* } .+3 } */
+/* { dg-warning "separated by space" "tab" { target *-*-* } .+3 } */
+/* { dg-warning "separated by space" "space and tab" { target *-*-* } .+3 } */
 #define beta(a, b, c) \ 
        a, \    
        b, \    
        c
 
-/* { dg-warning "separated by space" "space" { target *-*-* } 9 } */
-/* { dg-warning "separated by space" "tab" { target *-*-* } 10 } */
-/* { dg-warning "separated by space" "space and tab" { target *-*-* } 11 } */
-
 int x[] = {
    alpha(1, 2, 3),
    beta(4, 5, 6)
index 65142d9309d0547cee77b83e17766d1922dd5b56..5c10e868107e93f240c6d181f515aed523f7a51d 100644 (file)
@@ -7,8 +7,8 @@
 
 foo \  
 bar
-/* { dg-warning "separated by space" "" { target *-*-* } 8 } */
+/* { dg-warning "separated by space" "" { target *-*-* } .-2 } */
 
 /* foo \   
    bar */
-/* { dg-bogus "separated by space" "" { target *-*-* } 12 } */
+/* { dg-bogus "separated by space" "" { target *-*-* } .-2 } */
index d8578448b64e9bf877976c08d5eafaf1db0b11ac..b920f892ac5cfec64cafa14db98771e1bfd66179 100644 (file)
@@ -4,10 +4,12 @@
 
 #define a!             /* { dg-warning "missing whitespace" } */
 #define b"             /* { dg-warning "missing whitespace" } */
+/* { dg-error "missing terminating" "" { target *-*-* } .-1 } */
 #define c#             /* { dg-warning "missing whitespace" } */
 #define d%             /* { dg-warning "missing whitespace" } */
 #define e&             /* { dg-warning "missing whitespace" } */
 #define f'             /* { dg-warning "missing whitespace" } */
+/* { dg-error "missing terminating" "" { target *-*-* } .-1 } */
 #define g)             /* { dg-warning "missing whitespace" } */
 #define h*             /* { dg-warning "missing whitespace" } */
 #define i+             /* { dg-warning "missing whitespace" } */
@@ -59,5 +61,3 @@
 #define ag"abc"                /* { dg-warning "missing whitespace" } */
 
 int dummy;
-/* { dg-error "missing terminating" "" { target *-*-* } 6 } */
-/* { dg-error "missing terminating" "" { target *-*-* } 10 } */
index 6e6be96b1ff8bd2e4cb140e0a6cad856347d8872..87716d6d43c368638fe9b1766b5aac4647693c61 100644 (file)
@@ -4,10 +4,12 @@
 
 #define a!             /* { dg-error "requires whitespace" } */
 #define b"             /* { dg-error "requires whitespace" } */
+/* { dg-error "missing terminating" "missing-terminating" { target *-*-* } .-1 } */
 #define c#             /* { dg-error "requires whitespace" } */
 #define d%             /* { dg-error "requires whitespace" } */
 #define e&             /* { dg-error "requires whitespace" } */
 #define f'             /* { dg-error "requires whitespace" } */
+/* { dg-error "missing terminating" "missing-terminating" { target *-*-* } .-1 } */
 #define g)             /* { dg-error "requires whitespace" } */
 #define h*             /* { dg-error "requires whitespace" } */
 #define i+             /* { dg-error "requires whitespace" } */
@@ -59,5 +61,3 @@
 #define ag"abc"                /* { dg-error "requires whitespace" } */
 
 int dummy;
-/* { dg-error "missing terminating" "missing-terminating" { target *-*-* } 6 } */
-/* { dg-error "missing terminating" "missing-terminating" { target *-*-* } 10 } */
index 2841e00fb3b343744808188fe455a08a51d07203..6ffeb2a8f681bfd067a38eb78b33b476bb760cee 100644 (file)
@@ -8,7 +8,6 @@
 const char *p = "line 1
 "
 "";                          /* The compiler front end sees this.  */
-
-/* { dg-error "17:missing term" "multiline strings" { target *-*-* } 8 } */
-/* { dg-error "missing term" "multiline strings" { target *-*-* } 9 } */
+/* { dg-error "17:missing term" "multiline strings" { target *-*-* } .-3 } */
+/* { dg-error "missing term" "multiline strings" { target *-*-* } .-3 } */
 
index 89258b95e9f2907dee99ff7c07d96caf3462e865..50e2459591cafcf31a070f70e91269f892fdc54e 100644 (file)
@@ -3,6 +3,5 @@
 /* { dg-options { -trigraphs -Wall } } */
 
 #error "BUG??!"
-
-/* { dg-error "BUG" "" { target *-*-* } 5 } */
-/* { dg-warning "trigraph" "" { target *-*-* } 5 } */
+/* { dg-error "BUG" "" { target *-*-* } .-1 } */
+/* { dg-warning "trigraph" "" { target *-*-* } .-2 } */
index 2c3610847fd46b50e95723e107d264929517824a..5bcccda0a21bfd253d83d7f81853b7ecf2896e92 100644 (file)
@@ -1,9 +1,8 @@
 /* PR preprocessor/30786 - _Pragma at end of file should not ICE */
 /* { dg-do compile } */
 
-/* { dg-error "parenthesized" "parenthesized" { target *-*-* } 9 } */
-/* { dg-error "expected" "expected" { target *-*-* } 9 } */
-
 int x;
 
+/* { dg-error "parenthesized" "parenthesized" { target *-*-* } .+2 } */
+/* { dg-error "expected" "expected" { target *-*-* } .+1 } */
 _Pragma
index 343c0917aeed10cc4425076c86d5ecd135f6ae9e..eb24ead84221b04d26ea7f32cf089c0febd51c17 100644 (file)
@@ -1,6 +1,5 @@
 /* PR preprocessor/34602 - no internal error trying to spell EOF.  */
 /* { dg-do preprocess } */
 
-/* { dg-error "unexpected end" "" { target *-*-* } 6 } */
-
+/* { dg-error "unexpected end" "" { target *-*-* } .+1 } */
 #line
index a5fe2bacc53c5305905423fcddcd82fefa901ff3..2b5304cb8b9c5325573f6040fb401a306d72425e 100644 (file)
@@ -5,15 +5,14 @@
 
 #define foo bar
 #define /* x */ foo /* x */ bar /* x */
+/* { dg-bogus "redefined" "foo redefined"      { target *-*-* } .-1 } */
+/* { dg-bogus "previous def" "foo prev def"    { target *-*-* } .-3 } */
 
-#define quux(thud) a one and a thud and a two
-#define /**/ quux( thud ) /**/ a one and a /**/ thud /**/ and /**/ a two
-#define quux(thud) a one       and a thud and a        two /* bah */
+#define quux(thud) a one and a thud and a two /* { dg-line quux_def_1 } */
+#define /**/ quux( thud ) /**/ a one and a /**/ thud /**/ and /**/ a two /* { dg-line quux_def_2 } */
+/* { dg-bogus "redefined" "quux redefined"     { target *-*-* } quux_def_2 } */
+/* { dg-bogus "previous def" "quux prev def"   { target *-*-* } quux_def_1 } */
 
-/* { dg-bogus "redefined" "foo redefined"      { target *-*-* } 7 } */
-/* { dg-bogus "redefined" "quux redefined"     { target *-*-* } 10 } */
-/* { dg-bogus "redefined" "quux redefined"     { target *-*-* } 11 } */
-
-/* { dg-bogus "previous def" "foo prev def"    { target *-*-* } 6 } */
-/* { dg-bogus "previous def" "quux prev def"   { target *-*-* } 9 } */
-/* { dg-bogus "previous def" "quux prev def"   { target *-*-* } 10 } */
+#define quux(thud) a one       and a thud and a        two /* bah */ /* { dg-line quux_def_3 } */
+/* { dg-bogus "redefined" "quux redefined"     { target *-*-* } quux_def_3 } */
+/* { dg-bogus "previous def" "quux prev def"   { target *-*-* } quux_def_2 } */
index 37b5efe5df1c5da94709278b8b79f1609baab0cc..20fe44e857ca1909b5b46e31ff09116c3823630f 100644 (file)
    _and_ they should get a -pedantic warning. */
 
 #assert foo(bar)       /* { dg-warning "indented" "^#ext"    } */
+/* { dg-warning "GCC extension" "extension warning" { target *-*-* } .-1 } */
 # assert bar(baz)      /* { dg-warning "indented" "^# ext"   } */
+/* { dg-warning "GCC extension" "extension warning" { target *-*-* } .-1 } */
  #assert baz(quux)     /* { dg-bogus "indented" "^ #ext"     } */
+/* { dg-warning "GCC extension" "extension warning" { target *-*-* } .-1 } */
  # assert quux(weeble) /* { dg-bogus "indented" "^ # ext"    } */
+/* { dg-warning "GCC extension" "extension warning" { target *-*-* } .-1 } */
 
 /* We warn of #elif regardless of whether we're skipping or not, and
    do not warn about indentaion.  */
@@ -32,8 +36,3 @@
 #endif
 #elif 0                        /* { dg-warning "#elif" "#elif not skipping" }  */
 #endif
-
-/* { dg-warning "GCC extension" "extension warning" { target *-*-* } 22 } */
-/* { dg-warning "GCC extension" "extension warning" { target *-*-* } 23 } */
-/* { dg-warning "GCC extension" "extension warning" { target *-*-* } 24 } */
-/* { dg-warning "GCC extension" "extension warning" { target *-*-* } 25 } */
index 33517188cd8cf0acced4f3a8affd4c2ba61dba24..85b701441479ea4b28a19b3a256a41c94bae4a63 100644 (file)
    they should get a -pedantic warning. */
 
 #assert foo(bar)       /* { dg-warning "indented" "^#ext"    } */
+/* { dg-warning "GCC extension" "extension warning" { target *-*-* } .-1 } */
 # assert bar(baz)      /* { dg-warning "indented" "^# ext"   } */
+/* { dg-warning "GCC extension" "extension warning" { target *-*-* } .-1 } */
  #assert baz(quux)     /* { dg-bogus "indented" "^ #ext"     } */
+/* { dg-warning "GCC extension" "extension warning" { target *-*-* } .-1 } */
  # assert quux(weeble) /* { dg-bogus "indented" "^ # ext"    } */
+/* { dg-warning "GCC extension" "extension warning" { target *-*-* } .-1 } */
 
 #else
 
@@ -54,8 +58,3 @@
  # unassert quux(weeble)       /* { dg-bogus "indented" "^ # ext"    } */
 
 #endif
-
-/* { dg-warning "GCC extension" "extension warning" { target *-*-* } 27 } */
-/* { dg-warning "GCC extension" "extension warning" { target *-*-* } 28 } */
-/* { dg-warning "GCC extension" "extension warning" { target *-*-* } 29 } */
-/* { dg-warning "GCC extension" "extension warning" { target *-*-* } 30 } */
index d95409ef8f9012d1f224788a2f49aab0ac6da7f2..137064eba3f82cc0eb65c32369b91e3a70f27ef3 100644 (file)
@@ -11,9 +11,8 @@
 #define foo5(h2) sdf 'h2' fds 'h3' /* { dg-warning "macro argument \"h2\" would be stringified" "traditional stringification" } */
 #define foo6(h3) sdf 'h2' fds 'h3' /* { dg-warning "macro argument \"h3\" would be stringified" "traditional stringification" } */
 #define foo7(AA, hello, world, EEE) sdf "A B hello C,world,DhelloE F" fds EEE /* { dg-warning "macro argument \"hello\" would be stringified" "traditional stringification" } */
-
 /* Catch the second warning from the above line.  */
-/* { dg-warning "macro argument \"world\" would be stringified" "traditional stringification second warning" { target *-*-* } 13 } */
+/* { dg-warning "macro argument \"world\" would be stringified" "traditional stringification second warning" { target *-*-* } .-2 } */
 
 # 19 "sys-header.h" 3
 /* We are in system headers now, no -Wtraditional warnings should issue.  */
index 8108c89fbfc4143f9d17fede5e9415bc021e3d52..4ddd9654c3b4a364703b33db02c60011729ee900 100644 (file)
@@ -5,10 +5,9 @@
 #ifndef foo
 #define foo    /**/
 #endif
+/* { dg-bogus "(start|end) of macro" "paste at end" { target *-*-* } .-1 } */
 
 #ifndef foo
 #define foo    /* as nothing */
 #endif
-
-/* { dg-bogus "(start|end) of macro" "paste at end" { target *-*-* } 7 } */
-/* { dg-bogus "(start|end) of macro" "comment at end" { target *-*-* } 11 } */
+/* { dg-bogus "(start|end) of macro" "comment at end" { target *-*-* } .-1 } */
index ce5dde0bb3775160e3340b51ae133404c0dc792d..ba175698024b8f54a05f9a019b51fc88e13f955a 100644 (file)
@@ -6,31 +6,30 @@
 
 #define foo bar
 #define /* x */ foo /* x */ bar /* x */
+/* { dg-bogus "redefined" "foo redefined"      { target *-*-* } .-1 } */
+/* { dg-bogus "previous def" "foo prev def"    { target *-*-* } .-3 } */
 
-#define quux(thud) a one and a thud and a two
-#define /**/ quux( thud ) /**/ a one and a /**/ thud /**/ and /**/ a two
-#define quux(thud) a one       and a thud and a        two /* bah */
+#define quux(thud) a one and a thud and a two /* { dg-line quux_def_1 } */
+#define /**/ quux( thud ) /**/ a one and a /**/ thud /**/ and /**/ a two /* { dg-line quux_def_2 } */
+/* { dg-bogus "redefined" "quux redefined"     { target *-*-* } quux_def_2 } */
+/* { dg-bogus "previous def" "quux prev def"   { target *-*-* } quux_def_1 } */
+
+#define quux(thud) a one       and a thud and a        two /* bah */ /* { dg-line quux_def_3 } */
+/* { dg-bogus "redefined" "quux redefined"     { target *-*-* } quux_def_3 } */
+/* { dg-bogus "previous def" "quux prev def"   { target *-*-* } quux_def_2 } */
 
 #define f(x, y)x "x  y z"  y
 #define f(x, y) x  "x  y z" y
+/* { dg-bogus "redefined" "f redefined"                { target *-*-* } .-1 } */
+/* { dg-bogus "previous def" "f prev def"      { target *-*-* } .-3 } */
 
 #define baz() whiz bang
 #define baz() whiz  bang
+/* { dg-bogus "redefined" "baz redefined"      { target *-*-* } .-1 } */
+/* { dg-bogus "previous def" "baz prev def"    { target *-*-* } .-3 } */
 
 #define g foo
 #undef g
 #define g
-
-/* { dg-bogus "redefined" "foo redefined"      { target *-*-* } 8 } */
-/* { dg-bogus "redefined" "quux redefined"     { target *-*-* } 11 } */
-/* { dg-bogus "redefined" "quux redefined"     { target *-*-* } 12 } */
-/* { dg-bogus "redefined" "f redefined"                { target *-*-* } 15 } */
-/* { dg-bogus "redefined" "baz redefined"      { target *-*-* } 18 } */
-/* { dg-bogus "redefined" "g redefined"                { target *-*-* } 22 } */
-
-/* { dg-bogus "previous def" "foo prev def"    { target *-*-* } 7 } */
-/* { dg-bogus "previous def" "quux prev def"   { target *-*-* } 10 } */
-/* { dg-bogus "previous def" "quux prev def"   { target *-*-* } 11 } */
-/* { dg-bogus "previous def" "f prev def"      { target *-*-* } 14 } */
-/* { dg-bogus "previous def" "baz prev def"    { target *-*-* } 17 } */
-/* { dg-bogus "previous def" "g prev def"      { target *-*-* } 20 } */
+/* { dg-bogus "redefined" "g redefined"                { target *-*-* } .-1 } */
+/* { dg-bogus "previous def" "g prev def"      { target *-*-* } .-4 } */
index 3f3d97edfa50a4efcc3135cdd14d656ab48d77fe..4f76fa99bf5449adf88c2430805844f87cc95ab6 100644 (file)
@@ -54,7 +54,7 @@ void foo ()
   c = L'\u000x';       /* { dg-error "incomplete" "non-hex digit in UCN" } */
   /* If sizeof(HOST_WIDE_INT) > sizeof(wchar_t), we can get a multi-character
      constant warning even for wide characters.  */
-  /* { dg-warning "too long|multi-character" "" { target *-*-* } 54 } */
+  /* { dg-warning "too long|multi-character" "" { target *-*-* } .-3 } */
 
   c = '\u0024';                /* { dg-bogus "invalid" "0024 is a valid UCN" } */
   c = "\u0040"[0];     /* { dg-bogus "invalid" "0040 is a valid UCN" } */
index fa465664a059b9687aca5b1b57971ea4329c7e2c..241422bd5ee2fdab2e7319d246c1c5b4290845c4 100644 (file)
@@ -16,7 +16,10 @@ void f6 (static int); /* { dg-error "storage class specified for unnamed paramet
 void f7 (typedef int); /* { dg-error "storage class specified for unnamed parameter" } */
 
 auto int x; /* { dg-error "file-scope declaration of 'x' specifies 'auto'" } */
-register int y; /* { dg-warning "file-scope declaration of 'y' specifies 'register'" } */
+
+register int y;
+/* { dg-warning "file-scope declaration of 'y' specifies 'register'" "" { target *-*-* } .-1 } */
+/* { dg-message "error: register name not specified for 'y'" "not specified" { target *-*-* } .-2 } */
 
 void h (void) { extern void x (void) {} } /* { dg-error "nested function 'x' declared 'extern'" } */
 /* { dg-warning "ISO C forbids nested functions" "nested" { target *-*-* } .-1 } */
@@ -43,5 +46,3 @@ void i (void) { auto void y (void) {} } /* { dg-warning "ISO C forbids nested fu
 /* { dg-warning "function definition declared 'auto'" "nested" { target *-*-* } .-1 } */
 
 inline int main (void) { return 0; } /* { dg-warning "cannot inline function 'main'" } */
-
-/* { dg-message "error: register name not specified for 'y'" "not specified" { target *-*-* } 19 } */
index d9fafde77ba4761ee1251011f83e57bef71cfdd1..58f35ab7c794b88596b56c88b2edbdd7973e7762 100644 (file)
@@ -16,7 +16,10 @@ void f6 (static int); /* { dg-error "storage class specified for unnamed paramet
 void f7 (typedef int); /* { dg-error "storage class specified for unnamed parameter" } */
 
 auto int x; /* { dg-error "file-scope declaration of 'x' specifies 'auto'" } */
-register int y; /* { dg-error "file-scope declaration of 'y' specifies 'register'" } */
+
+register int y;
+/* { dg-error "file-scope declaration of 'y' specifies 'register'" "" { target *-*-* } .-1 } */
+/* { dg-message "error: register name not specified for 'y'" "" { target *-*-* } .-2 } */
 
 void h (void) { extern void x (void) {} } /* { dg-error "nested function 'x' declared 'extern'" } */
 /* { dg-error "ISO C forbids nested functions" "nested" { target *-*-* } .-1 } */
@@ -43,5 +46,3 @@ void i (void) { auto void y (void) {} } /* { dg-error "ISO C forbids nested func
 /* { dg-error "function definition declared 'auto'" "nested" { target *-*-* } .-1 } */
 
 inline int main (void) { return 0; } /* { dg-error "cannot inline function 'main'" } */
-
-/* { dg-message "error: register name not specified for 'y'" "" { target *-*-* } 19 } */
index 0a111787047944ec7dd1622ec8a606edb1e96f45..2885692e1f38fbb699828330784f30d02bd19284 100644 (file)
@@ -23,36 +23,48 @@ struct s {
 };
 
 typeof (z) c1;
-typeof (x1) c2;         /* { dg-error "undeclared" "undeclared" } */
+
+typeof (x1) c2;
+/* { dg-error "undeclared" "undeclared" { target *-*-* } .-1 } */
+/* { dg-bogus "unknown type name 'x1'" "unknown" { target *-*-* } .-2 } */
+
 typeof (const t11) c3;  /* { dg-error "unknown type name 't11'" } */
-typeof (t12 *) c3;      /* { dg-error "unknown type name 't12'" "t12" { xfail *-*-* } } */
-/* { dg-bogus "unknown type name 'x1'" unknown"" { target *-*-* } 26 } */
-/* { dg-bogus "undeclared" "undeclared" { xfail *-*-* } 28 } */
-/* { dg-bogus "expected expression before" "expected" { xfail *-*-* } 28 } */
+
+typeof (t12 *) c3;
+/* { dg-error "unknown type name 't12'" "t12" { xfail *-*-* } .-1 } */
+/* { dg-bogus "undeclared" "undeclared" { xfail *-*-* } .-2 } */
+/* { dg-bogus "expected expression before" "expected" { xfail *-*-* } .-3 } */
 
 int recover1;
 
 int s0 = sizeof (z);
-int s1 = sizeof (x2);          /* { dg-error "undeclared" "undeclared" } */
+
+int s1 = sizeof (x2);
+/* { dg-error "undeclared" "undeclared" { target *-*-* } .-1 } */
+/* { dg-bogus "unknown type name 'x2'" "unknown" { target *-*-* } .-2 } */
+
 int s2 = sizeof (const t13);   /* { dg-error "unknown type name 't13'" } */
-int s3 = sizeof (t14 *);       /* { dg-error "unknown type name 't14'" "t14" { xfail *-*-* } } */
 
-int recover2;
+int s3 = sizeof (t14 *);
+/* { dg-error "unknown type name 't14'" "t14" { xfail *-*-* } .-1 } */
+/* { dg-bogus "undeclared" "undeclared" { xfail *-*-* } .-2 } */
+/* { dg-bogus "expected expression before" "expected" { xfail *-*-* } .-3 } */
 
-/* { dg-bogus "unknown type name 'x2'" "unknown" { target *-*-* } 36 } */
-/* { dg-bogus "undeclared" "undeclared" { xfail *-*-* } 38 } */
-/* { dg-bogus "expected expression before" "expected" { xfail *-*-* } 38 } */
+int recover2;
 
 int a0 = __alignof__ (z);
+
 int a1 = __alignof__ (x3);          /* { dg-error "undeclared" } */
+/* { dg-bogus "unknown type name 'x3'" "" { target *-*-* } .-1 } */
+
 int a2 = __alignof__ (const t15);   /* { dg-error "unknown type name 't15'" } */
-int a3 = __alignof__ (t16 *);       /* { dg-error "unknown type name 't16'" "t16" { xfail *-*-* } } */
 
-int recover3;
+int a3 = __alignof__ (t16 *);
+/* { dg-error "unknown type name 't16'" "t16" { xfail *-*-* } .-1 } */
+/* { dg-bogus "undeclared" "undeclared" { xfail *-*-* } .-2 } */
+/* { dg-bogus "expected expression before" "expected" { xfail *-*-* } .-3 } */
 
-/* { dg-bogus "unknown type name 'x3'" "" { target *-*-* } 47 } */
-/* { dg-bogus "undeclared" "undeclared" { xfail *-*-* } 49 } */
-/* { dg-bogus "expected expression before" "expected" { xfail *-*-* } 49 } */
+int recover3;
 
 
 /* Cannot detect (undefd_type *) or (undefd_type (*) because it would
index 7530bbdc9449a3a0a3b3b3f282fa41d0ed7aebe0..99a2fc6836225374435d898e9cc4453b766ddb63 100644 (file)
@@ -29,10 +29,10 @@ foo (char *s, size_t m, const struct tm *tp)
   /* Bad uses of %E and %O.  */
   strftime (s, m, "%EEY", tp); /* { dg-warning "multiple|repeated" "multiple %E/%O" } */
   strftime (s, m, "%EOy", tp); /* { dg-warning "multiple|together" "multiple %E/%O" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%OEy", tp); /* { dg-warning "multiple|together" "multiple %E/%O" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%OOV", tp); /* { dg-warning "multiple|repeated" "multiple %E/%O" } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 31 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 32 } */
   strftime (s, m, "%Ea", tp); /* { dg-warning "flag|modifier" "bad %Ea" } */
   strftime (s, m, "%EA", tp); /* { dg-warning "flag|modifier" "bad %EA" } */
   strftime (s, m, "%Eb", tp); /* { dg-warning "flag|modifier" "bad %Eb" } */
index 937e11212f761aefdc3d6560f27f4b954d0e81bb..a59edb45e50189eb749c4bddbd7ff473b2c3d5f5 100644 (file)
@@ -85,31 +85,33 @@ foo (char *s, size_t m, const struct tm *tp)
   strftime (s, m, "%-Z", tp); /* { dg-warning "flag" "bad %Z" } */
   strftime (s, m, "%_Z", tp); /* { dg-warning "flag" "bad %Z" } */
   strftime (s, m, "%0Z", tp); /* { dg-warning "flag" "bad %Z" } */
+
   /* Incorrect usages with Y2K problems.  */
   strftime (s, m, "%5c", tp); /* { dg-warning "width" "bad %c" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%-c", tp); /* { dg-warning "flag" "bad %c" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%_c", tp); /* { dg-warning "flag" "bad %c" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%0c", tp); /* { dg-warning "flag" "bad %c" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%5D", tp); /* { dg-warning "width" "bad %D" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%-D", tp); /* { dg-warning "flag" "bad %D" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%_D", tp); /* { dg-warning "flag" "bad %D" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%0D", tp); /* { dg-warning "flag" "bad %D" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%5x", tp); /* { dg-warning "width" "bad %x" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%-x", tp); /* { dg-warning "flag" "bad %x" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%_x", tp); /* { dg-warning "flag" "bad %x" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%0x", tp); /* { dg-warning "flag" "bad %x" } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 89 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 90 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 91 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 92 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 93 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 94 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 95 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 96 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 97 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 98 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 99 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 100 } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
+
   /* Incorrect usages with GNU extension conversion characters.  */
   strftime (s, m, "%5P", tp); /* { dg-warning "width" "bad %P" } */
   strftime (s, m, "%-P", tp); /* { dg-warning "flag" "bad %P" } */
@@ -178,27 +180,29 @@ foo (char *s, size_t m, const struct tm *tp)
   strftime (s, m, "%#l", tp); /* { dg-warning "flag" "bad %l" } */
   strftime (s, m, "%^s", tp); /* { dg-warning "flag" "bad %s" } */
   strftime (s, m, "%#s", tp); /* { dg-warning "flag" "bad %s" } */
+
   /* Bad usages with Y2K problems.  */
   strftime (s, m, "%^c", tp); /* { dg-warning "flag" "bad %c" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%#c", tp); /* { dg-warning "flag" "bad %c" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%^D", tp); /* { dg-warning "flag" "bad %D" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%#D", tp); /* { dg-warning "flag" "bad %D" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%^g", tp); /* { dg-warning "flag" "bad %g" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%#g", tp); /* { dg-warning "flag" "bad %g" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%^x", tp); /* { dg-warning "flag" "bad %x" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%#x", tp); /* { dg-warning "flag" "bad %x" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%^y", tp); /* { dg-warning "flag" "bad %y" } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
   strftime (s, m, "%#y", tp); /* { dg-warning "flag" "bad %y" } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 182 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 183 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 184 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 185 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 186 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 187 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 188 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 189 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 190 } */
-  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 191 } */
+  /* { dg-warning "only last 2" "2-digit year" { target *-*-* } .-1 } */
+  
   /* GCC also accepts the glibc format extensions %P, %k, %l, %s.  */
   strftime (s, m, "%P%k%l%s", tp);
   /* GCC also accepts the glibc extension of the "O" modifier on some
index d8d0499b7785487fc2b114cda1c6a501b1d397d8..c142d243ddbbbfe9b87eb75cdd88235b4ddacc11 100644 (file)
@@ -389,19 +389,21 @@ test_LE (char *d, int iexpr, float fexpr, double dexpr, long double ldexpr)
 void
 test_everything (char *d, long lexpr)
 {
-  sprintf (d, "before %-+*.*lld after", lexpr, lexpr, lexpr); /* { dg-warning "26: field width specifier '\\*' expects argument of type 'int', but argument 3 has type 'long int'" } */
+  sprintf (d, "before %-+*.*lld after", lexpr, lexpr, lexpr); /* { dg-line test_everything_sprintf } */
+
+  /* { dg-warning "26: field width specifier '\\*' expects argument of type 'int', but argument 3 has type 'long int'" "" { target *-*-* } test_everything_sprintf } */
   /* { dg-begin-multiline-output "" }
    sprintf (d, "before %-+*.*lld after", lexpr, lexpr, lexpr);
                        ~~~^~~~~~
    { dg-end-multiline-output "" } */
 
-  /* { dg-warning "28: field precision specifier '\\.\\*' expects argument of type 'int', but argument 4 has type 'long int'" "" { target *-*-* } 392 } */
+  /* { dg-warning "28: field precision specifier '\\.\\*' expects argument of type 'int', but argument 4 has type 'long int'" "" { target *-*-* } test_everything_sprintf } */
   /* { dg-begin-multiline-output "" }
    sprintf (d, "before %-+*.*lld after", lexpr, lexpr, lexpr);
                        ~~~~~^~~~
    { dg-end-multiline-output "" } */
 
-  /* { dg-warning "31: format '%lld' expects argument of type 'long long int', but argument 5 has type 'long int'" "" { target *-*-* } 392 } */
+  /* { dg-warning "31: format '%lld' expects argument of type 'long long int', but argument 5 has type 'long int'" "" { target *-*-* } test_everything_sprintf } */
   /* { dg-begin-multiline-output "" }
    sprintf (d, "before %-+*.*lld after", lexpr, lexpr, lexpr);
                        ~~~~~~~~^
index 1333b70582f4ca7f70a70b0563e9a68e38bafdb8..e0f0eca2fa51e37d11c5c07429aaba5fedab0c99 100644 (file)
@@ -10,7 +10,7 @@ a24 (int a)
   const int c = 1;
   int i = 0;
   int l = 0;
-#pragma omp parallel default(none) private(a) shared(z)
+#pragma omp parallel default(none) private(a) shared(z) /* { dg-line omp_parallel } */
   {
     int j = omp_get_num_threads ();
     /* O.K. - j is declared within parallel region */
@@ -20,8 +20,8 @@ a24 (int a)
                                /*       -  c has const-qualified type */
     z[i] = y;
     /* { dg-error "'i' not specified" "" { target *-*-* } .-1 } */
-    /* { dg-error "enclosing 'parallel'" "" { target *-*-* } 13 } */
-    /* { dg-error "'y' not specified" "" { target *-*-* } 21 }  */
+    /* { dg-error "enclosing 'parallel'" "" { target *-*-* } omp_parallel } */
+    /* { dg-error "'y' not specified" "" { target *-*-* } .-3 }  */
 #pragma omp for firstprivate(y)
     for (i = 0; i < 10; i++)
       {
index 19bdf6470661b6924b474f4a01e5fa146b5fc5ff..67bd7961b75c38b0ffb763026157f92e83a2174d 100644 (file)
@@ -29,8 +29,9 @@ struct s j = {
   "j",
   1,
   (L"j")
+  /* { dg-error "parenthesized|near init" "paren array" { target *-*-* } .-1 } */
 }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "parenthesized|near init" "paren array" { target *-*-* } 31 } */
+
 struct s k = {
   (("k")), /* { dg-bogus "warning" "warning in place of error" } */
   /* { dg-error "parenthesized|near init" "paren array" { target *-*-* } .-1 } */
@@ -47,8 +48,8 @@ struct s l = {
 struct s m = {
   .c = L"m",
   .a = ("m")
+  /* { dg-error "parenthesized|near init" "paren array" { target *-*-* } .-1 } */
 }; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "parenthesized|near init" "paren array" { target *-*-* } 49 } */
 
 char *n = (char []){ "n" };
 
index 32daea87f1810ce9cf06ae3a51e8dd2c1fe85e64..2e9ea09e1fd1518e5e35efbcf1b85c60f2141d41 100644 (file)
@@ -10,8 +10,8 @@ void
 f (void)
 {
   __label__ a, b, c, d;
+  /* { dg-error "ISO C forbids label declarations" "label decls" { target *-*-* } .-1 } */
   __extension__ (void)&&d; /* { dg-error "label 'd' used but not defined" } */
-  /* { dg-error "ISO C forbids label declarations" "label decls" { target *-*-* } 12 } */
   goto c; /* { dg-error "label 'c' used but not defined" } */
  a: (void)0;
  b: (void)0;
index b12c7cb5ec9e6217059496f2644e90512db6051f..141b81bb0f19669f3cd757999035a2895bf6bce6 100644 (file)
@@ -9,14 +9,14 @@ extern void* realloc (void*, size_t);
 struct vtable {
   void* (* _malloc) (size_t);
   void (* _free) (void*);
-  void* (* _realloc) (void*, size_t);
+  void* (* _realloc) (void*, size_t); /* { dg-line vtable_realloc } */
 };
 
 struct vtable mtable = {
   malloc,
   free
 }; /* { dg-warning "missing initializer" "warning regression" } */
-   /* { dg-message "declared here" "warning regression 2" { target *-*-* } 12 } */
+   /* { dg-message "declared here" "warning regression 2" { target *-*-* } vtable_realloc } */
 
 /* With designated initializers, we assume you meant to leave out the
    initialization of any blank fields.  */
index 8442a1984cfa48d1c8b937faa67d2e3673059097..166a6bcb9e6a59df118c10c6aee67f741e41ff25 100644 (file)
@@ -20,10 +20,10 @@ f3 (void)
   return 0k;                   /* { dg-error "not supported" "reject fixed-point" } */
 }
 
-_Sat                            /* { dg-error "not supported" "reject fixed-point" } */
+_Sat
+/* { dg-error "not supported" "reject fixed-point" { target *-*-* } .-1 } */
+/* { dg-error "is used without" "" { target *-*-* } .-2 } */
 f4 (void)
 {
   return 0k;                   /* { dg-error "not supported" "reject fixed-point" } */
 }
-
-/* { dg-error "is used without" "" { target *-*-* } 23 } */
index 41480f0794da53e9cee61e25b7fb8f4665876f42..fa86e4789ff0d6bf212c609dfb8f9cc8a569ebe3 100644 (file)
@@ -2,9 +2,15 @@
    Test whether argument checking is done for fputs, bzero and bcmp.  */
 typedef struct { int i; } FILE;
 typedef __SIZE_TYPE__ size_t;
+
 int fputs (const char *, FILE *);
+/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } .-1 } */
+
 void bzero (void *, size_t);
+/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } .-1 } */
+
 int bcmp (const void *, const void *, size_t);
+/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } .-1 } */
 
 char buf[32];
 FILE *f;
@@ -12,23 +18,26 @@ FILE *f;
 int main ()
 {
   fputs ("foo");               /* { dg-error "too few" } */
+
   fputs ("foo", "bar", "baz"); /* { dg-error "too many" } */
+  /* { dg-warning "passing argument 2 of" "2nd incompatible" { target *-*-* } .-1 } */
+
   fputs (21, 43);
+  /* { dg-warning "passing argument 1 of" "1st incompatible" { target *-*-* } .-1 } */
+  /* { dg-warning "passing argument 2 of" "2nd incompatible" { target *-*-* } .-2 } */
+
   bzero (buf);                 /* { dg-error "too few" } */
+
   bzero (21);                  /* { dg-error "too few" } */
+  /* { dg-warning "passing argument 1 of" "1st incompatible" { target *-*-* } .-1 } */
+
   bcmp (buf, buf + 16);                /* { dg-error "too few" } */
+
   bcmp (21);                   /* { dg-error "too few" } */
+  /* { dg-warning "passing argument 1 of" "1st incompatible" { target *-*-* } .-1 } */
+
   fputs ("foo", f);
   bzero (buf, 32);
   bcmp (buf, buf + 16, 16);
   return 0;
 }
-
-/* { dg-warning "passing argument 2 of" "2nd incompatible" { target *-*-* } 15 } */
-/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } 5 } */
-/* { dg-warning "passing argument 1 of" "1st incompatible" { target *-*-* } 16 } */
-/* { dg-warning "passing argument 2 of" "2nd incompatible" { target *-*-* } 16 } */
-/* { dg-warning "passing argument 1 of" "1st incompatible" { target *-*-* } 18 } */
-/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } 6 } */
-/* { dg-warning "passing argument 1 of" "1st incompatible" { target *-*-* } 20 } */
-/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } 7 } */
index 14ce24909c8fa42e3e93ac4c8da2a2fed6150e3c..c0d25bf3fccaff0a238596b709123c48a6fb8689 100644 (file)
@@ -9,7 +9,7 @@
 
 #include "counter-2.h" /* { dg-warning "not used because `__COUNTER__' is invalid" } */
 /* { dg-error "counter-2.h: No such file or directory" "no such file" { target *-*-* } 0 } */
-/* { dg-error "one or more PCH files were found, but they were invalid" "invalid files" { target *-*-* } 10 } */
+/* { dg-error "one or more PCH files were found, but they were invalid" "invalid files" { target *-*-* } .-2 } */
 /* { dg-message "terminated" "" { target *-*-* } 0 } */
 
 int main(void) 
index e916b93bb5df528a00b04f634d6b2e97bc3c3205..e9d98f4d6befc90b2b179a141c2a2eb535600aa9 100644 (file)
@@ -30,7 +30,7 @@ test_stringized_token_2 (int x)
   } while (0)
 
   EXAMPLE(x > 0, 1, 1, 6);
-  /* { dg-error "unable to read substring location: cpp_interpret_string_1 failed" "" { target *-*-* } 28 } */
+  /* { dg-error "unable to read substring location: cpp_interpret_string_1 failed" "" { target *-*-* } .-5 } */
 
 #undef EXAMPLE
 }
index 4f33a31cb57cf272c05bc27ad0649f7a8d5151a6..c9bb238e96ba84bfbc9740e406c6109ef6251616 100644 (file)
@@ -1,18 +1,23 @@
 /* Check the warnings and errors generated for asm operands that aren't
    obviously constant but that are constrained to be constants.  */
 /* { dg-options "" } */
-/* { dg-error "impossible constraint" "" { target *-*-* } 13 } */
-/* { dg-error "impossible constraint" "" { target *-*-* } 14 } */
-/* { dg-error "impossible constraint" "" { target *-*-* } 15 } */
-/* { dg-error "impossible constraint" "" { target *-*-* } 16 } */
+
 int bar (int);
 void
 foo (int *x, int y)
 {
   int constant = 0;
   asm ("# %0" :: "i" (x)); /* { dg-warning "probably doesn't match" } */
+  /* { dg-error "impossible constraint" "" { target *-*-* } .-1 } */
+
   asm ("# %0" :: "i" (bar (*x))); /* { dg-warning "probably doesn't match" } */
+  /* { dg-error "impossible constraint" "" { target *-*-* } .-1 } */
+
   asm ("# %0" :: "i" (*x + 0x11)); /* { dg-warning "probably doesn't match" } */
+  /* { dg-error "impossible constraint" "" { target *-*-* } .-1 } */
+
   asm ("# %0" :: "i" (constant)); /* { dg-warning "probably doesn't match" } */
+  /* { dg-error "impossible constraint" "" { target *-*-* } .-1 } */
+
   asm ("# %0" :: "i" (y * 0)); /* folded */
 }
index 74fd5ddbe370fe4b089cc446487383f7d79528ad..99ae0a3aa839869fdfc3e3347464f73f9cbde778 100644 (file)
@@ -1,7 +1,9 @@
 /* PR c/27953 */
 
-void foo(struct A a) {}  /* { dg-warning "declared inside parameter list" "inside" } */
-/* { dg-error "incomplete type" "incomplete" { target *-*-* } .-1 } */
+void foo(struct A a) {} /* { dg-line foo_first } */
+/* { dg-warning "declared inside parameter list" "inside" { target *-*-* } .-1 } */
+/* { dg-error "incomplete type" "incomplete" { target *-*-* } .-2 } */
 
-void foo() {}            /* { dg-error "redefinition" "redef" } */
-/* { dg-message "note: previous definition" "previous" { target *-*-* } 3 } */
+void foo() {}
+/* { dg-error "redefinition" "redef" { target *-*-* } .-1 } */
+/* { dg-message "note: previous definition" "previous" { target *-*-* } foo_first } */
index 7bfb53f547706ac00f4f4fd3ad99be25056fc932..5361582d5dce899934c0444157f255d0c3f3c79c 100644 (file)
@@ -5,13 +5,14 @@
 int
 foo (void)
 {
-  int a = bar ();
+  int a = bar (); /* { dg-line bar_implicit_decl } */
   return a;
 }
 
 void
-bar (void)             /* { dg-warning "conflicting types for" } */
+bar (void)
+/* { dg-warning "conflicting types for" "" { target *-*-* } .-1 } */
+/* { dg-message "note: previous implicit declaration" "" { target *-*-* } bar_implicit_decl } */
 {
 }
 
-/* { dg-message "note: previous implicit declaration" "" { target *-*-* } 8 } */
index 3ad826329f9aa64dfee4bcbb2f0668c88641d973..e73beccfea4a3bcb8527271388fb19b8c7f28e72 100644 (file)
@@ -8,16 +8,23 @@ void
 foo ()
 {
   ((char *) p)++;      /* { dg-error "lvalue" } */
+
   ((char *) q)++;      /* { dg-error "lvalue" } */
+  /* { dg-warning "cast to pointer from integer of different size" "" { target *-*-* } .-1 } */
+
   ((char *) p)--;      /* { dg-error "lvalue" } */
+
   ((char *) q)--;      /* { dg-error "lvalue" } */
+  /* { dg-warning "cast to pointer from integer of different size" "" { target *-*-* } .-1 } */
+
   ++(char *) p;                /* { dg-error "lvalue" } */
+
   ++(char *) q;                /* { dg-error "lvalue" } */
+  /* { dg-warning "cast to pointer from integer of different size" "" { target *-*-* } .-1 } */
+
   --(char *) p;                /* { dg-error "lvalue" } */
+
   --(char *) q;                /* { dg-error "lvalue" } */
+  /* { dg-warning "cast to pointer from integer of different size" "" { target *-*-* } .-1 } */
 }
 
-/* { dg-warning "cast to pointer from integer of different size" "" { target *-*-* } 11 } */
-/* { dg-warning "cast to pointer from integer of different size" "" { target *-*-* } 13 } */
-/* { dg-warning "cast to pointer from integer of different size" "" { target *-*-* } 15 } */
-/* { dg-warning "cast to pointer from integer of different size" "" { target *-*-* } 17 } */
index 7f287bd0305471828bd454535a45e9713d2964fe..db86d86ae584b71ae0b99d38e889bd2e37aa09d1 100644 (file)
@@ -9,10 +9,12 @@ foo (int i, ...)
   short e;
   va_list ap;
   va_start (ap, i);
+
   e = va_arg (ap, short);      /* { dg-warning "is promoted" "promoted" } */
+  /* { dg-message "note: \\(so you should pass" "should pass" {target *-*-* } .-1 } */
+  /* { dg-message "note: if this code" "if this code" {target *-*-* } .-2 } */
+  
   va_end (ap);
   return e;
 }
 
-/* { dg-message "note: \\(so you should pass" "should pass" {target *-*-* } 12 } */
-/* { dg-message "note: if this code" "if this code" {target *-*-* } 12 } */
index 22c471b7070044cd488be6f81475d61b2eeef1df..0359c61c6f51dc0c08426cf66933949ee9250788 100644 (file)
@@ -11,6 +11,6 @@ int invalid[] = 0; /* { dg-error "invalid initializer" } */
 void foo (void)
 {
   if (((struct S *)undeclared)->i); /* { dg-error "undeclared" } */
+  /* { dg-message "reported only once" "" { target *-*-* } .-1 } */
 }
 
-/* { dg-message "reported only once" "" { target *-*-* } 13 } */
index efb6a82c6bb0aee5b605caec215c52fa745b8e63..1d47b86e4b49310d0818c6c65ad37beb2fd9283e 100644 (file)
@@ -8,9 +8,11 @@ struct foo { int i; };
 int
 main ()
 {
-  struct foo f = (struct foo_typo) { };        /* { dg-error "invalid use of undefined type" } */
+  struct foo f = (struct foo_typo) { };
+  /* { dg-error "invalid use of undefined type" "" { target *-*-* } .-1 } */
+  /* { dg-error "ISO C forbids empty initializer braces" "" { target *-*-* } .-2 } */
+
   printf ("%d\n", f.i);
   return 0;
 }
 
-/* { dg-error "ISO C forbids empty initializer braces" "" { target *-*-* } 11 } */
index ea39d69f8e1dc8c4fe74d7bfdfa8a6ffd9c80968..d6418228c3bc63a08931967104afced19ff9b94c 100644 (file)
@@ -86,11 +86,12 @@ fn7 (void)
 {
   int a[16], b, c;
   bar (a);
-  for (b = a[c = 0]; c < 16; b = a[++c])       /* { dg-warning "15 invokes undefined behavior" } */
+  for (b = a[c = 0]; c < 16; b = a[++c])
+    /* { dg-warning "15 invokes undefined behavior" "" { target *-*-* } .-1 } */
+    /* { dg-message "note: within this loop" "" { target *-*-* } .-2 } */
     baz (b);
 }
 
-/* { dg-message "note: within this loop" "" { target *-*-* } 89 } */
 
 const void *va, *vb, *vc, *vd, *ve;
 const void *vf[4];
index 1fb0070dd554963eb35cd159d404908e3fc7063b..a7ae0bd504fdc1fe39667a338aa9cc92044dba32 100644 (file)
@@ -52,13 +52,14 @@ void test3(void)
 
 void prime4(void)
 {
-  bar4();                      /* { dg-warning "implicit declaration of function" "implicit" } */
+  bar4(); /* { dg-line implicit_bar4 } */
+  /* { dg-warning "implicit declaration of function" "implicit" { target *-*-* } implicit_bar4 } */
 }
 
 void test4(void)
 {
   extern double bar4(double);  /* { dg-error "conflict" } */
-/* { dg-message "note: previous implicit declaration" "previous" { target *-*-* } 55 } */
+/* { dg-message "note: previous implicit declaration" "previous" { target *-*-* } implicit_bar4 } */
 }
 
 /* Implicit decl, clashing with extern at previous function scope.  */
index eb2f84695fbe89f427800c9bb6408e213fe8c8ee..a9b60612be20b675c98540fa803f0b7efe7d654d 100644 (file)
@@ -2,7 +2,8 @@
 /* { dg-require-effective-target tls } */
 
 static __thread int fstat ;
-static __thread int fstat = 1 ;
+static __thread int fstat = 1 ; /* { dg-line fstat_prev } */
 static __thread int fstat ;
-static __thread int fstat = 2; /* { dg-error "redefinition of 'fstat'" } */
-                               /* { dg-message "note: previous definition of 'fstat' was here" "" { target *-*-* } 5 } */
+static __thread int fstat = 2;
+/* { dg-error "redefinition of 'fstat'" "" { target *-*-* } .-1 } */
+/* { dg-message "note: previous definition of 'fstat' was here" "" { target *-*-* } fstat_prev } */
index 10b3b682b98b0c0b2920a98ff386b865f9ad5665..8a1227d30d661dcd8fc59b4ea76e10c212a500f5 100644 (file)
@@ -6,9 +6,9 @@ int
 foo (int x)
 {
   asm goto ("" : : "i" (x) : : lab); /* { dg-error "impossible constraint" } */
+  /* { dg-warning "probably doesn.t match constraints" "" { target *-*-* } .-1 } */
   return 1;
 lab:
   return 0;
 }
 
-/* { dg-warning "probably doesn.t match constraints" "" { target *-*-* } 8 } */
index bab0987fff77286fa070317785c9505c8cbc47cd..42095536c602d065d613c9df54ef22f4f9b27507 100644 (file)
@@ -7,9 +7,9 @@ int
 bar (int x)
 {
   asm goto ("" : : "i" (x) : : lab); /* { dg-error "impossible constraint" } */
+/* { dg-warning "probably doesn.t match constraints" "" { target *-*-* } .-1 } */
   __builtin_unreachable ();
 lab:
   return 0;
 }
 
-/* { dg-warning "probably doesn.t match constraints" "" { target *-*-* } 9 } */
index aa1b3fb6fe0b05eb82bcbfcc530649cc34fcf6dd..094dc0eb73d5a3fe3bc82fc82e82ca33982ed535 100644 (file)
@@ -11,7 +11,8 @@ fn1 (int p1, float *f1, float *f2, float *f3, unsigned char *c1, float *f4,
      unsigned char *c2, float *p10)
 {
   if (p1 & 8)
-    b[3] = p10[a];  /* 14.  */
+    b[3] = p10[a];
+  /* { dg-warning "may be used uninitialized" "" { target { { nonpic } || { hppa*64*-*-* } } } .-1 } */
 }
 
 void
@@ -20,8 +21,6 @@ fn2 ()
   float *n;
   if (l & 6)
     n = &c + m;
-  fn1 (l, &d, &e, &g, &i, &h, &k, n);  /* 23.  */
+  fn1 (l, &d, &e, &g, &i, &h, &k, n);
+  /* { dg-warning "may be used uninitialized" "" { target { ! { { nonpic } || { hppa*64*-*-* } } } } .-1 } */
 }
-
-/* { dg-warning "may be used uninitialized" "" { target { { nonpic } || { hppa*64*-*-* } } } 14 } */
-/* { dg-warning "may be used uninitialized" "" { target { ! { { nonpic } || { hppa*64*-*-* } } } } 23 } */
index e13910becd12cb45808fdb9610b9de95761a9dd7..a9a73241ef547b5409fc561a9978b2d6976d0236 100644 (file)
@@ -16,9 +16,10 @@ int bar ()
 {
   int i = 1;
   int j;
+  /* { dg-warning "uninitialized" "uninitialized" { target *-*-* } .-1 } */
 
   if (1 == i)
-    return j; /* { dg-warning "uninitialized" "uninitialized" { target *-*-* } 18 } */
+    return j;
 
   return 0;
 }