diff mbox series

[C++] Some check-c++-all fixes

Message ID 20170919130358.GO1701@tucnak
State New
Headers show
Series [C++] Some check-c++-all fixes | expand

Commit Message

Jakub Jelinek Sept. 19, 2017, 1:03 p.m. UTC
Hi!

In make check-c++-all I've noticed some UNSUPPORTED tests and some
failures, the following patch attempts to fix those.
The failures are due to new not emitting operator new (...) != NULL
comparison with -std=c++17 anymore, so there is nothing to fold away
(first 2 hunks).  The rest is about tests which are dg-do run, but
for -std=c++17 and above contain dg-error and thus the execution test
part is UNSUPPORTED.

Regtested with make check-c++-all on x86_64-linux and i686-linux, ok for
trunk?

2017-09-19  Jakub Jelinek  <jakub@redhat.com>

	* g++.dg/tree-ssa/pr31146-2.C: Only do scan-tree-dump for c++14_down.
	* g++.dg/tree-ssa/pr41428.C: Likewise.
	* g++.dg/expr/bool1.C: Only do dg-do compile instead of dg-do run for
	c++17 and up.
	* g++.dg/expr/bool3.C: Likewise.
	* g++.dg/expr/bitfield5.C: Likewise.
	* g++.old-deja/g++.jason/bool5.C: Likewise.


	Jakub

Comments

Jason Merrill Sept. 19, 2017, 7:46 p.m. UTC | #1
OK, thanks.

On Tue, Sep 19, 2017 at 9:03 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> Hi!
>
> In make check-c++-all I've noticed some UNSUPPORTED tests and some
> failures, the following patch attempts to fix those.
> The failures are due to new not emitting operator new (...) != NULL
> comparison with -std=c++17 anymore, so there is nothing to fold away
> (first 2 hunks).  The rest is about tests which are dg-do run, but
> for -std=c++17 and above contain dg-error and thus the execution test
> part is UNSUPPORTED.
>
> Regtested with make check-c++-all on x86_64-linux and i686-linux, ok for
> trunk?
>
> 2017-09-19  Jakub Jelinek  <jakub@redhat.com>
>
>         * g++.dg/tree-ssa/pr31146-2.C: Only do scan-tree-dump for c++14_down.
>         * g++.dg/tree-ssa/pr41428.C: Likewise.
>         * g++.dg/expr/bool1.C: Only do dg-do compile instead of dg-do run for
>         c++17 and up.
>         * g++.dg/expr/bool3.C: Likewise.
>         * g++.dg/expr/bitfield5.C: Likewise.
>         * g++.old-deja/g++.jason/bool5.C: Likewise.
>
> --- gcc/testsuite/g++.dg/tree-ssa/pr41428.C.jj  2015-05-29 15:04:33.000000000 +0200
> +++ gcc/testsuite/g++.dg/tree-ssa/pr41428.C     2017-09-19 14:23:13.366127516 +0200
> @@ -11,4 +11,6 @@ int foo(void)
>    return *(int *)&f;
>  }
>
> -/* { dg-final { scan-tree-dump "Folded into: if \\\(1 != 0\\\)" "ccp1" } } */
> +/* -std=c++17 and above doesn't emit operator new () != NULL, so there is
> +   nothing to fold anymore.  */
> +/* { dg-final { scan-tree-dump "Folded into: if \\\(1 != 0\\\)" "ccp1" { target c++14_down } } } */
> --- gcc/testsuite/g++.dg/tree-ssa/pr31146-2.C.jj        2016-09-21 08:54:09.000000000 +0200
> +++ gcc/testsuite/g++.dg/tree-ssa/pr31146-2.C   2017-09-19 14:23:41.675773292 +0200
> @@ -20,4 +20,6 @@ double foo (void)
>    return v.a[2];
>  }
>
> -/* { dg-final { scan-tree-dump "Replaced .* != 0B. with .1" "forwprop1" } } */
> +/* -std=c++17 and above doesn't emit operator new () != NULL, so there is
> +   nothing to fold anymore.  */
> +/* { dg-final { scan-tree-dump "Replaced .* != 0B. with .1" "forwprop1" { target c++14_down } } } */
> --- gcc/testsuite/g++.dg/expr/bool1.C.jj        2017-09-15 18:11:05.000000000 +0200
> +++ gcc/testsuite/g++.dg/expr/bool1.C   2017-09-19 14:16:46.139972669 +0200
> @@ -1,5 +1,6 @@
> -// { dg-do run }
> -// PR C++/29295
> +// PR c++/29295
> +// { dg-do run { target c++14_down } }
> +// { dg-do compile { target c++17 } }
>  // make sure that a typedef for a bool will have the
>  //  the same results as a bool itself.
>
> --- gcc/testsuite/g++.dg/expr/bool3.C.jj        2017-09-15 18:11:05.000000000 +0200
> +++ gcc/testsuite/g++.dg/expr/bool3.C   2017-09-19 14:16:40.439044001 +0200
> @@ -1,5 +1,6 @@
> -// { dg-do run }
> -// PR C++/29295
> +// PR c++/29295
> +// { dg-do run { target c++14_down } }
> +// { dg-do compile { target c++17 } }
>  // make sure that a typedef for a bool will have the
>  //  the same results as a bool itself.
>
> --- gcc/testsuite/g++.dg/expr/bitfield5.C.jj    2017-09-15 18:11:05.000000000 +0200
> +++ gcc/testsuite/g++.dg/expr/bitfield5.C       2017-09-19 14:12:40.087051397 +0200
> @@ -1,5 +1,6 @@
>  // PR c++/30274
> -// { dg-do run }
> +// { dg-do run { target c++14_down } }
> +// { dg-do compile { target c++17 } }
>
>  struct S {
>    bool x : 4;
> --- gcc/testsuite/g++.old-deja/g++.jason/bool5.C.jj     2017-09-15 18:11:08.000000000 +0200
> +++ gcc/testsuite/g++.old-deja/g++.jason/bool5.C        2017-09-19 14:17:19.708552643 +0200
> @@ -1,4 +1,5 @@
> -// { dg-do run  }
> +// { dg-do run { target c++14_down } }
> +// { dg-do compile { target c++17 } }
>  int main ()
>  {
>    bool b = false;
>
>         Jakub
diff mbox series

Patch

--- gcc/testsuite/g++.dg/tree-ssa/pr41428.C.jj	2015-05-29 15:04:33.000000000 +0200
+++ gcc/testsuite/g++.dg/tree-ssa/pr41428.C	2017-09-19 14:23:13.366127516 +0200
@@ -11,4 +11,6 @@  int foo(void)
   return *(int *)&f;
 }
 
-/* { dg-final { scan-tree-dump "Folded into: if \\\(1 != 0\\\)" "ccp1" } } */
+/* -std=c++17 and above doesn't emit operator new () != NULL, so there is
+   nothing to fold anymore.  */
+/* { dg-final { scan-tree-dump "Folded into: if \\\(1 != 0\\\)" "ccp1" { target c++14_down } } } */
--- gcc/testsuite/g++.dg/tree-ssa/pr31146-2.C.jj	2016-09-21 08:54:09.000000000 +0200
+++ gcc/testsuite/g++.dg/tree-ssa/pr31146-2.C	2017-09-19 14:23:41.675773292 +0200
@@ -20,4 +20,6 @@  double foo (void)
   return v.a[2];
 }
 
-/* { dg-final { scan-tree-dump "Replaced .* != 0B. with .1" "forwprop1" } } */
+/* -std=c++17 and above doesn't emit operator new () != NULL, so there is
+   nothing to fold anymore.  */
+/* { dg-final { scan-tree-dump "Replaced .* != 0B. with .1" "forwprop1" { target c++14_down } } } */
--- gcc/testsuite/g++.dg/expr/bool1.C.jj	2017-09-15 18:11:05.000000000 +0200
+++ gcc/testsuite/g++.dg/expr/bool1.C	2017-09-19 14:16:46.139972669 +0200
@@ -1,5 +1,6 @@ 
-// { dg-do run }
-// PR C++/29295
+// PR c++/29295
+// { dg-do run { target c++14_down } }
+// { dg-do compile { target c++17 } }
 // make sure that a typedef for a bool will have the
 //  the same results as a bool itself.
 
--- gcc/testsuite/g++.dg/expr/bool3.C.jj	2017-09-15 18:11:05.000000000 +0200
+++ gcc/testsuite/g++.dg/expr/bool3.C	2017-09-19 14:16:40.439044001 +0200
@@ -1,5 +1,6 @@ 
-// { dg-do run }
-// PR C++/29295
+// PR c++/29295
+// { dg-do run { target c++14_down } }
+// { dg-do compile { target c++17 } }
 // make sure that a typedef for a bool will have the
 //  the same results as a bool itself.
 
--- gcc/testsuite/g++.dg/expr/bitfield5.C.jj	2017-09-15 18:11:05.000000000 +0200
+++ gcc/testsuite/g++.dg/expr/bitfield5.C	2017-09-19 14:12:40.087051397 +0200
@@ -1,5 +1,6 @@ 
 // PR c++/30274
-// { dg-do run }
+// { dg-do run { target c++14_down } }
+// { dg-do compile { target c++17 } }
 
 struct S {
   bool x : 4;
--- gcc/testsuite/g++.old-deja/g++.jason/bool5.C.jj	2017-09-15 18:11:08.000000000 +0200
+++ gcc/testsuite/g++.old-deja/g++.jason/bool5.C	2017-09-19 14:17:19.708552643 +0200
@@ -1,4 +1,5 @@ 
-// { dg-do run  }
+// { dg-do run { target c++14_down } }
+// { dg-do compile { target c++17 } }
 int main ()
 {
   bool b = false;