This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug testsuite/38946] [4.4 Regression] gcc trunk 143562 - Testsuite - gfortran failing tests that worked previously
- From: "rob1weld at aol dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 29 Jan 2009 12:32:43 -0000
- Subject: [Bug testsuite/38946] [4.4 Regression] gcc trunk 143562 - Testsuite - gfortran failing tests that worked previously
- References: <bug-38946-13830@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #14 from rob1weld at aol dot com 2009-01-29 12:32 -------
(In reply to comment #5)
> ! Test XFAILed on these platforms because the system's printf() lacks
> ! proper support for denormalized long doubles. See PR24685
> Looks like this testcase should be xfailed on solaris also.
(In reply to comment #9)
> Subject: Re: [trunk regression]?gcc trunk 143562 - Testsuite - gfortran
> failing tests that worked previously
> I think adding a printf() clone to libiberty is WAY overkill just to
> silence one failing test.
I took a look around for some existing tests that could help us.
The files:
gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-printf-*
gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-scanf-*
are setup only for mingw. I added OpenSolaris and got this result:
Mod:
/* { dg-do compile { target { *-*-mingw* } } } */
/* { dg-do compile { target { *-*-mingw* *-*-solaris2.11* } } } */
Result:
FAIL: gcc.dg/format/ms_c90-printf-1.c (test for excess errors)
Excess errors:
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-printf-1.c:56:
warning: use of 'h' length modifier with 'c' type character
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-printf-1.c:57:
warning: use of 'h' length modifier with 's' type character
FAIL: gcc.dg/format/ms_c90-printf-2.c %hh is unsupported (test for warnings,
line 17)
FAIL: gcc.dg/format/ms_c90-printf-2.c %j is unsupported (test for warnings,
line 19)
FAIL: gcc.dg/format/ms_c90-printf-2.c %z is unsupported (test for warnings,
line 20)
FAIL: gcc.dg/format/ms_c90-printf-2.c %t is unsupported (test for warnings,
line 21)
FAIL: gcc.dg/format/ms_c90-printf-2.c (test for excess errors)
Excess errors:
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-printf-2.c:17:
warning: ISO C90 does not support the 'hh' gnu_printf length modifier
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-printf-2.c:18:
warning: format '%I64d' expects type 'int', but argument 2 has type 'llong'
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-printf-2.c:19:
warning: ISO C90 does not support the 'j' gnu_printf length modifier
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-printf-2.c:20:
warning: ISO C90 does not support the 'z' gnu_printf length modifier
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-printf-2.c:21:
warning: ISO C90 does not support the 't' gnu_printf length modifier
FAIL: gcc.dg/format/ms_c90-printf-2.c -DWIDE %hh is unsupported (test for
warnings, line 17)
FAIL: gcc.dg/format/ms_c90-printf-2.c -DWIDE %j is unsupported (test for
warnings, line 19)
FAIL: gcc.dg/format/ms_c90-printf-2.c -DWIDE %z is unsupported (test for
warnings, line 20)
FAIL: gcc.dg/format/ms_c90-printf-2.c -DWIDE %t is unsupported (test for
warnings, line 21)
FAIL: gcc.dg/format/ms_c90-printf-2.c -DWIDE (test for excess errors)
Excess errors:
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-printf-2.c:17:
warning: ISO C90 does not support the 'hh' gnu_printf length modifier
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-printf-2.c:18:
warning: format '%I64d' expects type 'int', but argument 2 has type 'llong'
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-printf-2.c:19:
warning: ISO C90 does not support the 'j' gnu_printf length modifier
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-printf-2.c:20:
warning: ISO C90 does not support the 'z' gnu_printf length modifier
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-printf-2.c:21:
warning: ISO C90 does not support the 't' gnu_printf length modifier
FAIL: gcc.dg/format/ms_c90-scanf-1.c %L is unsupported (test for warnings,
line 75)
FAIL: gcc.dg/format/ms_c90-scanf-1.c %L is unsupported (test for warnings,
line 76)
FAIL: gcc.dg/format/ms_c90-scanf-1.c %L is unsupported (test for warnings,
line 77)
FAIL: gcc.dg/format/ms_c90-scanf-1.c %L is unsupported (test for warnings,
line 78)
FAIL: gcc.dg/format/ms_c90-scanf-1.c %L is unsupported (test for warnings,
line 79)
FAIL: gcc.dg/format/ms_c90-scanf-1.c (test for excess errors)
Excess errors:
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-scanf-1.c:56:
warning: use of 'h' length modifier with 's' type character
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-scanf-1.c:58:
warning: use of 'h' length modifier with 'c' type character
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-scanf-1.c:75:
warning: use of 'L' length modifier with 's' type character
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-scanf-1.c:76:
warning: use of 'L' length modifier with '[' type character
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-scanf-1.c:77:
warning: use of 'L' length modifier with 'c' type character
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-scanf-1.c:78:
warning: use of 'L' length modifier with 'p' type character
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-scanf-1.c:79:
warning: use of 'L' length modifier with 'n' type character
FAIL: gcc.dg/format/ms_c90-strftime-2.c (test for excess errors)
Excess errors:
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-strftime-2.c:15:
warning: '%D' yields only last 2 digits of year
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c90-strftime-2.c:18:
warning: '%g' yields only last 2 digits of year
FAIL: gcc.dg/format/ms_c99-printf-1.c bad use of %hF (test for warnings, line
27)
FAIL: gcc.dg/format/ms_c99-printf-1.c bad use of %ha (test for warnings, line
32)
FAIL: gcc.dg/format/ms_c99-printf-1.c bad use of %hA (test for warnings, line
33)
FAIL: gcc.dg/format/ms_c99-printf-1.c (test for excess errors)
Excess errors:
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c99-printf-1.c:27:
warning: use of 'h' length modifier with 'F' type character
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c99-printf-1.c:32:
warning: use of 'h' length modifier with 'a' type character
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c99-printf-1.c:33:
warning: use of 'h' length modifier with 'A' type character
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c99-printf-1.c:34:
warning: use of 'h' length modifier with 'c' type character
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c99-printf-1.c:35:
warning: use of 'h' length modifier with 's' type character
FAIL: gcc.dg/format/ms_c99-printf-2.c %q length is unsupported (test for
warnings, line 18)
FAIL: gcc.dg/format/ms_c99-printf-2.c %Z length is unsupported (test for
warnings, line 20)
FAIL: gcc.dg/format/ms_c99-printf-2.c printf %m is unsupported (test for
warnings, line 24)
FAIL: gcc.dg/format/ms_c99-printf-2.c printf I format (test for warnings,
line 32)
FAIL: gcc.dg/format/ms_c99-printf-2.c (test for excess errors)
Excess errors:
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c99-printf-2.c:18:
warning: ISO C does not support the 'q' gnu_printf length modifier
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c99-printf-2.c:20:
warning: ISO C does not support the 'Z' gnu_printf length modifier
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c99-printf-2.c:24:
warning: ISO C does not support the '%m' gnu_printf format
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/format/ms_c99-printf-2.c:32:
warning: 'I' flag used with '%x' gnu_printf format
There are a small sample of some of the FAIL:s that I get. There are
many PASS:es also. It is true that some of the FAIL results are due
to MinGW extensions but some of them seem to indicate that we would
get different results on different OSes - not what we want.
Support for Andrew's position that "... >> lacks proper support
>> for denormalized long doubles. See PR24685
> Looks like this testcase should be xfailed on solaris also."
is provided by these gcc.log entries:
...
Running /usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/compat/compat.exp ...
Executing on host: /usr/share/src/gcc_build/gcc/xgcc
-B/usr/share/src/gcc_build/gcc/ dfprt17039.c -lm -o dfprt17039.exe
(timeout = 300)
/var/tmp//cc7eaOLo.o: In function `main':
dfprt17039.c:(.text+0x25): undefined reference to `__dpd_extendsdtd2'
dfprt17039.c:(.text+0x4f): undefined reference to `__dpd_extendddtd2'
dfprt17039.c:(.text+0x8a): undefined reference to `__dpd_addtd3'
collect2: ld returned 1 exit status
compiler exited with status 1
output is:
/var/tmp//cc7eaOLo.o: In function `main':
dfprt17039.c:(.text+0x25): undefined reference to `__dpd_extendsdtd2'
dfprt17039.c:(.text+0x4f): undefined reference to `__dpd_extendddtd2'
dfprt17039.c:(.text+0x8a): undefined reference to `__dpd_addtd3'
collect2: ld returned 1 exit status
Executing on host: /usr/share/src/gcc_build/gcc/xgcc
-B/usr/share/src/gcc_build/gcc/ -DSKIP_DECIMAL_FLOAT -c -o
c_compat_main_tst.o
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/compat/fnptr-by-value-1_main.c
(timeout = 300)
PASS: gcc.dg/compat/fnptr-by-value-1 c_compat_main_tst.o compile
...
PASS: gcc.dg/dfp/func-vararg-dfp.c (test for excess errors)
Executing on host: /usr/share/src/gcc_build/gcc/xgcc
-B/usr/share/src/gcc_build/gcc/
/usr/share/src/gcc_trunk/gcc/testsuite/gcc.dg/dfp/func-vararg-mixed-2.c
-std=gnu99 -mpreferred-stack-boundary=2 -lm -o ./func-vararg-mixed-2.exe
(timeout = 300)
/var/tmp//cclEaaXH.o: In function `vararg_d64':
func-vararg-mixed-2.c:(.text+0xaa): undefined reference to `__dpd_truncddsd2'
/var/tmp//cclEaaXH.o: In function `main':
func-vararg-mixed-2.c:(.text+0x1c1): undefined reference to `__dpd_nesd2'
func-vararg-mixed-2.c:(.text+0x215): undefined reference to `__dpd_extendsddd2'
func-vararg-mixed-2.c:(.text+0x231): undefined reference to `__dpd_nedd2'
func-vararg-mixed-2.c:(.text+0x2b8): undefined reference to `__dpd_netd2'
collect2: ld returned 1 exit status
compiler exited with status 1
output is:
/var/tmp//cclEaaXH.o: In function `vararg_d64':
func-vararg-mixed-2.c:(.text+0xaa): undefined reference to `__dpd_truncddsd2'
/var/tmp//cclEaaXH.o: In function `main':
func-vararg-mixed-2.c:(.text+0x1c1): undefined reference to `__dpd_nesd2'
func-vararg-mixed-2.c:(.text+0x215): undefined reference to `__dpd_extendsddd2'
func-vararg-mixed-2.c:(.text+0x231): undefined reference to `__dpd_nedd2'
func-vararg-mixed-2.c:(.text+0x2b8): undefined reference to `__dpd_netd2'
collect2: ld returned 1 exit status
FAIL: gcc.dg/dfp/func-vararg-mixed-2.c (test for excess errors)
Excess errors:
func-vararg-mixed-2.c:(.text+0xaa): undefined reference to `__dpd_truncddsd2'
func-vararg-mixed-2.c:(.text+0x1c1): undefined reference to `__dpd_nesd2'
func-vararg-mixed-2.c:(.text+0x215): undefined reference to `__dpd_extendsddd2'
func-vararg-mixed-2.c:(.text+0x231): undefined reference to `__dpd_nedd2'
func-vararg-mixed-2.c:(.text+0x2b8): undefined reference to `__dpd_netd2'
...(more)...
I think we would benefit from fixing the "dg-do compile" lines in
those tests to include both "*-*-solaris2.11*" and "*-*-linux*" .
If we find we get inconsistent results from different OSes then
it may well be worth using some libiberty with gcc and ensuring
that if we ./configure using "--enable-decimal-float
--with-long-double-128 --enable-largefile" that it either
works correctly _or_ is correctly excluded from testing.
Thanks
Rob
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38946