From: Paul Brook Date: Mon, 5 Apr 2004 23:02:22 +0000 (+0000) Subject: re PR c++/2123 (Array initializer) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=67c55b229337d388a9f583e4b1e5e95392c7f01f;p=gcc.git re PR c++/2123 (Array initializer) PR2123 * g++.gd/expr/anew1.C: XFAIL and make reproducible. Call abort on failure and exit(0) on success. * g++.gd/expr/anew2.C: Ditto. * g++.gd/expr/anew3.C: Ditto. * g++.gd/expr/anew4.C: Ditto. From-SVN: r80440 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2d088b68b5e..0fcc366c937 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2004-04-05 Paul Brook + + PR2123 + * g++.gd/expr/anew1.C: XFAIL and make reproducible. Call abort on + failure and exit(0) on success. + * g++.gd/expr/anew2.C: Ditto. + * g++.gd/expr/anew3.C: Ditto. + * g++.gd/expr/anew4.C: Ditto. + 2004-04-05 Nathan Sidwell PR c++/3518 diff --git a/gcc/testsuite/g++.dg/expr/anew1.C b/gcc/testsuite/g++.dg/expr/anew1.C index a14408ace0a..9e0d0ec601f 100644 --- a/gcc/testsuite/g++.dg/expr/anew1.C +++ b/gcc/testsuite/g++.dg/expr/anew1.C @@ -1,12 +1,20 @@ -// { dg-do run } +// { dg-do run { xfail *-*-* } } +// XFAILed until PR2123 is fixed // PR 11228: array operator new, with zero-initialization and a variable sized array. // Regression test for PR // Author: Matt Austern +#include +#include +#include + int* allocate(int n) { - return new int[n](); + void *p; + p = malloc(n * sizeof (int)); + memset (p, 0xff, n * sizeof(int)); + return new (p) int[n](); } int main() @@ -15,6 +23,6 @@ int main() int* p = allocate(n); for (int i = 0; i < n; ++i) if (p[i] != 0) - return 1; - return 0; + abort (); + exit (0); } diff --git a/gcc/testsuite/g++.dg/expr/anew2.C b/gcc/testsuite/g++.dg/expr/anew2.C index b8681897577..aa11eef149c 100644 --- a/gcc/testsuite/g++.dg/expr/anew2.C +++ b/gcc/testsuite/g++.dg/expr/anew2.C @@ -1,12 +1,20 @@ -// { dg-do run } +// { dg-do run { xfail *-*-* } } +// XFAILed until PR2123 is fixed // PR 11228: array operator new, with zero-initialization and a variable sized array. // Regression test for PR // Author: Matt Austern +#include +#include +#include + double* allocate(int n) { - return new double[n](); + void *p; + p = malloc(n * sizeof (double)); + memset (p, 0xff, n * sizeof(double)); + return new (p) double[n](); } int main() @@ -15,6 +23,6 @@ int main() double* p = allocate(n); for (int i = 0; i < n; ++i) if (p[i] != 0.0) - return 1; - return 0; + abort (); + exit (0); } diff --git a/gcc/testsuite/g++.dg/expr/anew3.C b/gcc/testsuite/g++.dg/expr/anew3.C index 3223546d4c8..c8ab44183ca 100644 --- a/gcc/testsuite/g++.dg/expr/anew3.C +++ b/gcc/testsuite/g++.dg/expr/anew3.C @@ -1,8 +1,13 @@ -// { dg-do run } +// { dg-do run { xfail *-*-* } } +// XFAILed until PR2123 is fixed // PR 11228: array operator new, with zero-initialization and a variable sized array. // Regression test for PR // Author: Matt Austern +#include +#include +#include + struct X { int a; @@ -11,7 +16,10 @@ struct X X* allocate(int n) { - return new X[n](); + void *p; + p = malloc(n * sizeof (X)); + memset (p, 0xff, n * sizeof(X)); + return new (p) X[n](); } int main() @@ -20,6 +28,6 @@ int main() X* p = allocate(n); for (int i = 0; i < n; ++i) if (p[i].a != 0 || p[i].b != 0.0) - return 1; - return 0; + abort (); + exit (0); } diff --git a/gcc/testsuite/g++.dg/expr/anew4.C b/gcc/testsuite/g++.dg/expr/anew4.C index 8999ffb53c6..d86d5251412 100644 --- a/gcc/testsuite/g++.dg/expr/anew4.C +++ b/gcc/testsuite/g++.dg/expr/anew4.C @@ -1,8 +1,13 @@ -// { dg-do run } +// { dg-do run { xfail *-*-* } } +// XFAILed until PR2123 is fixed // PR 11228: array operator new, with zero-initialization and a variable sized array. // Regression test for PR // Author: Matt Austern +#include +#include +#include + struct B { B(); @@ -23,7 +28,10 @@ struct D : public B D* allocate(int n) { - return new D[n](); + void *p; + p = malloc(n * sizeof (D)); + memset (p, 0xff, n * sizeof(D)); + return new (p) D[n](); } int main() @@ -32,6 +40,6 @@ int main() D* p = allocate(n); for (int i = 0; i < n; ++i) if (p[i].n != 137 || p[i].x != 0) - return 1; - return 0; + abort (); + exit (0); }