freebsd-ports/lang/gcc-aux/files/diff-cxx-testsuite
John Marino 10f6790534 lang/gcc-aux: significantly reduce c++ testsuite diff file size
The majority of the 234k c++ testsuite patch can be eliminated with
REINPLACE_CMD at the post-extract phase.  Now it's 1/100th the size
at 2.3k.  No revbump necessary; the testsuite isn't even a default
option.  The same treatment can be done to lang/gcc47-aux later.
2014-04-10 13:35:53 +00:00

50 lines
2.3 KiB
Text

--- gcc/testsuite/c-c++-common/Wconversion-real.c.orig
+++ gcc/testsuite/c-c++-common/Wconversion-real.c
@@ -5,6 +5,12 @@
/* { dg-options "-std=c99 -Wconversion" { target c } } */
/* { dg-options "-Wconversion" { target c++ } } */
/* { dg-require-effective-target large_double } */
+/* Due to i386 rounding of long doubles on FreeBSD and DragonFly, the tests
+ should be set to "xfail" for those platforms, but it's not possible to
+ set both "target" and "xfail" together. An attempt to mark it
+ UNSUPPORTED for large_long_double and not (i386 FreeBSD i386 DragonFly)
+ failed. All the supported platforms of gcc-aux have large long double
+ so we'll just assume it for these two tests and use xfail instead. */
float vfloat;
double vdouble;
@@ -24,8 +30,8 @@
vfloat = 3.1; /* { dg-warning "conversion" } */
ffloat (3.1L); /* { dg-warning "conversion" } */
vfloat = 3.1L; /* { dg-warning "conversion" } */
- fdouble (3.1L); /* { dg-warning "conversion" "" { target large_long_double } } */
- vdouble = 3.1L; /* { dg-warning "conversion" "" { target large_long_double } } */
+ fdouble (3.1L); /* { dg-warning "conversion" "" { xfail { i?86-*-freebsd* i?86-*-dragonfly* } } } */
+ vdouble = 3.1L; /* { dg-warning "conversion" "" { xfail { i?86-*-freebsd* i?86-*-dragonfly* } } } */
ffloat (vdouble); /* { dg-warning "conversion" } */
vfloat = vdouble; /* { dg-warning "conversion" } */
ffloat (vlongdouble); /* { dg-warning "conversion" } */
--- libstdc++-v3/testsuite/lib/libstdc++.exp.orig
+++ libstdc++-v3/testsuite/lib/libstdc++.exp
@@ -877,17 +877,18 @@
set f [open $src "w"]
puts $f "#include <locale>"
puts $f "#include <cstdio>"
- puts $f "using namespace std;"
+ puts $f "using namespace std;"
puts $f "int main (int argc, char** argv)"
puts $f "{"
+ puts $f " const char* mlx = *(argv + 1);"
puts $f " try"
puts $f " {"
- puts $f " locale(*(argv + 1));"
+ puts $f " locale((char*)(mlx));"
puts $f " return 0;"
puts $f " }"
puts $f " catch(...)"
puts $f " {"
- puts $f " printf(\"locale '%s' not supported\\n\", *(argv + 1));"
+ puts $f " printf(\"locale '%s' not supported\\n\", mlx);"
puts $f " return 1;"
puts $f " }"
puts $f "}"