Adjust text of expected warnings to g:b825a22890740f341eae566af27e18e528cd29a7.
authorMartin Sebor <msebor@redhat.com>
Fri, 5 Jun 2020 15:34:39 +0000 (09:34 -0600)
committerMartin Sebor <msebor@redhat.com>
Fri, 5 Jun 2020 15:36:29 +0000 (09:36 -0600)
gcc/testsuite/ChangeLog:
* c-c++-common/goacc/uninit-use-device-clause.c: Adjust.
* c-c++-common/pr59223.c: Same.
* g++.dg/warn/Wnonnull5.C: Same.
* gcc.dg/pr59924.c: Same.
* gcc.dg/ubsan/pr81981.c: Same.
* gcc.dg/ubsan/pr89284.c: Same.
* gfortran.dg/goacc/uninit-use-device-clause.f95: Same.

gcc/testsuite/c-c++-common/goacc/uninit-use-device-clause.c
gcc/testsuite/c-c++-common/pr59223.c
gcc/testsuite/g++.dg/warn/Wnonnull5.C [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr59924.c
gcc/testsuite/gcc.dg/ubsan/pr81981.c
gcc/testsuite/gcc.dg/ubsan/pr89284.c
gcc/testsuite/gfortran.dg/goacc/uninit-use-device-clause.f95

index c5d327caf80813345a382fbcd98c3ca5d38b9c74..02fb99a1e24725030d0398b2808c880a6fba8eff 100644 (file)
@@ -8,7 +8,7 @@ foo (void)
 {
   int i;
 
-#pragma acc host_data use_device(i) /* { dg-warning "is used uninitialized in this function" "" { xfail *-*-* } } */
+#pragma acc host_data use_device(i) /* { dg-warning "is used uninitialized" "" { xfail *-*-* } } */
   {
   }
 }
index 471c0625df33342fcb62a9fa48d4417b949227de..f91e443005822c8f827f8fc9475223b6eecbabca 100644 (file)
@@ -9,5 +9,5 @@ int foo (int x)
     y = 1;
   else if (x == 1)
     y = 2;
-  return y; /* { dg-warning "may be used uninitialized in this function" } */
+  return y; /* { dg-warning "may be used uninitialized" } */
 }
diff --git a/gcc/testsuite/g++.dg/warn/Wnonnull5.C b/gcc/testsuite/g++.dg/warn/Wnonnull5.C
new file mode 100644 (file)
index 0000000..8b25d2d
--- /dev/null
@@ -0,0 +1,108 @@
+/* PR c++/86568 - -Wnonnull warnings should highlight the relevant argument
+   not the closing parenthesis.
+   { dg-do compile }
+   { dg-options "-O2 -Wall" } */
+
+#define NONNULL __attribute__ ((nonnull))
+
+#if __cplusplus < 201103L
+#  define nullptr __null
+#endif
+
+struct S
+{
+  void
+  f0 (const void*) const;         // { dg-message "in a call to non-static member function 'void S::f0\\(const void\\*\\) const'" }
+
+  void
+  f1 (const void*) const;         // { dg-message "in a call to non-static member function 'void S::f1\\(const void\\*\\) const'" }
+
+  void
+  f2 (const void*) const;         // { dg-message "in a call to non-static member function 'void S::f2\\(const void\\*\\) const'" }
+
+  NONNULL void
+  f3 (const void*, const void*);  // { dg-message "in a call to function 'void S::f3\\(const void\\*, const void\\*\\)' declared 'nonnull'" }
+
+  NONNULL void
+  f4 (const void*, const void*);  // { dg-message "in a call to function 'void S::f4\\(const void\\*, const void\\*\\)' declared 'nonnull'" }
+
+  NONNULL void
+  f5 (const void*, const void*);  // { dg-message "in a call to function 'void S::f5\\\(const void\\*, const void\\*\\)' declared 'nonnull'" }
+
+  NONNULL void
+  f6 (const void*, const void*);  // { dg-message "in a call to function 'void S::f6\\\(const void\\*, const void\\*\\)' declared 'nonnull'" }
+};
+
+void warn_nullptr_this ()
+{
+  ((S*)nullptr)->f0 ("");        // { dg-warning "3:'this' pointer null" "pr86568" { xfail *-*-* } }
+                                 // { dg-warning "this' pointer null" "pr86568" { target *-*-* } .-1 }
+}
+
+void warn_null_this_cst ()
+{
+  S* const null = 0;
+  null->f1 ("");                  // { dg-warning "3:'this' pointer null" }
+}
+
+void warn_null_this_var ()
+{
+  S* null = 0;
+  null->f2 (&null);               // { dg-warning "3:'this' pointer null" "pr86568" { xfail *-*-* } }
+                                  // { dg-warning "'this' pointer null" "pr86568" { target *-*-* } .-1 }
+}
+
+void warn_nullptr (S s)
+{
+  s.f3 (nullptr, &s);              // { dg-warning "9:argument 1 null where non-null expected" "pr86568" { xfail *-*-* } }
+                                   // { dg-warning "argument 1 null where non-null expected" "pr86568" { target *-*-* } .-1 }
+  s.f3 (&s, nullptr);              // { dg-warning "13:argument 2 null where non-null expected" "pr86568" { xfail *-*-* } }
+                                   // { dg-warning "argument 2 null where non-null expected" "pr86568" { target *-*-* } .-1 }
+}
+
+
+void warn_null_cst (S s)
+{
+  void* const null = 0;
+  s.f4 (null, &s);                 // { dg-warning "9:argument 1 null where non-null expected" }
+  s.f4 (&s, null);                 // { dg-warning "13:argument 2 null where non-null expected" }
+}
+
+void warn_null_var (S s)
+{
+  void* null = 0;
+  s.f5 (null, &s);                // { dg-warning "9:argument 1 null where non-null expected" "pr86568" { xfail *-*-* } }
+                                  // { dg-warning "argument 1 null where non-null expected" "pr86568" { target *-*-* } .-1 }
+  s.f5 (&s, null);                // { dg-warning "16:argument 2 null where non-null expected" "pr86568" { xfail *-*-* } }
+                                  // { dg-warning "argument 2 null where non-null expected" "pr86568" { target *-*-* } .-1 }
+}
+
+void warn_null_cond (S s, void *null)
+{
+  if (null)
+    return;
+
+  s.f6 (null, &s);                // { dg-warning "9:argument 1 null where non-null expected" "pr86568" { xfail *-*-* } }
+                                  // { dg-warning "argument 1 null where non-null expected" "pr86568" { target *-*-* } .-1 }
+  s.f6 (&s, null);                // { dg-warning "13:argument 2 null where non-null expected" "pr86568" { xfail *-*-* } }
+                                  // { dg-warning "argument 2 null where non-null expected" "pr86568" { target *-*-* } .-1 }
+}
+
+
+typedef NONNULL void Fvp (const void*, const void*);
+
+void warn_fptr_null_cst (Fvp *p)
+{
+  void* const null = 0;
+  p (null, "");                   // { dg-warning "6:argument 1 null where non-null expected" }
+  p ("", null);                   // { dg-warning "10:argument 2 null where non-null expected" }
+}
+
+typedef NONNULL void (S::*SMemFvp) (const void*, const void*);
+
+void warn_memfptr_null_cst (S *p, SMemFvp pmf)
+{
+  void* const null = 0;
+  (p->*pmf) (null, "");           // { dg-warning "14:argument 1 null where non-null expected" }
+  (p->*pmf) ("", null);           // { dg-warning "18:argument 2 null where non-null expected" }
+}
index 1d8d52fb0796e39718b39747f8ef6fc59880112a..9063a239434af8738f443d9ad6c8eff4bc8740ff 100644 (file)
@@ -21,7 +21,7 @@ foo (struct S * x, int y, int z, int w)
     }
   if (y != 0 || z != 0)
     {
-      double g = x->b + (double) e * (double) y; /* { dg-warning "may be used uninitialized in this function" } */
+      double g = x->b + (double) e * (double) y; /* { dg-warning "may be used uninitialized" } */
       bar (g * g);
     }
 }
index b2636d4c9344a919ebfa0ecbc72fee7cf4899c03..8a6597c84c8c40535f229d29f18fe0c5c01ed19b 100644 (file)
@@ -16,6 +16,6 @@ foo (int i)
       u[0] = i;
     }
 
-  v = u[0];            /* { dg-warning "may be used uninitialized in this function" } */
-  return t[0];         /* { dg-warning "may be used uninitialized in this function" } */
+  v = u[0];            /* { dg-warning "may be used uninitialized" } */
+  return t[0];         /* { dg-warning "may be used uninitialized" } */
 }
index 0d73e8fa4a1deb4b9e3d7a9d6d91bb6452286019..965225c6702e63f56aa15b913ede0e29d0fcb7bc 100644 (file)
@@ -8,7 +8,7 @@ int
 foo (void)
 {
   struct A a;
-  if (a.i)     /* { dg-warning "'a.i' is used uninitialized in this function" } */
+  if (a.i)     /* { dg-warning "'a.i' is used uninitialized" } */
     return 1;
   return 0;
 }
@@ -17,7 +17,7 @@ int
 bar (void)
 {
   struct A a;
-  if (a.a)     /* { dg-warning "'a.a' is used uninitialized in this function" } */
+  if (a.a)     /* { dg-warning "'a.a' is used uninitialized" } */
     return 1;
   return 0;
 }
index 48d08a5a55da798d39472ae9377e41b8b534dccb..35310d14c528095a6b9e10358cefa15786b14ebd 100644 (file)
@@ -4,7 +4,7 @@
 subroutine test
   integer, pointer :: p
 
-  !$acc host_data use_device(p) ! { dg-warning "is used uninitialized in this function" }
+  !$acc host_data use_device(p) ! { dg-warning "is used uninitialized" }
   !$acc end host_data
 end subroutine test