Bug#742818: fix test failures when built with GCC 4.9
Niko Tyni
ntyni at debian.org
Fri Mar 28 12:09:13 UTC 2014
tag 742818 confirmed upstream
thanks
On Thu, Mar 27, 2014 at 08:03:42PM +0100, Matthias Klose wrote:
> Package: perl
> Version: 5.18.2-2
> Severity: important
> Tags: sid jessie patch
>
> * Fix undefined behaviour in sv.c, resulting in test failures when
> built with GCC 4.9. Patch by Marek Polacek.
>
> patch at
> http://launchpadlibrarian.net/170687513/perl_5.18.2-2_5.18.2-2ubuntu1.diff.gz
Thanks. I've confirmed test failures with gcc-4.9 4.9-20140322-1 from
experimental on both i386 and amd64. However, the above patch doesn't
seem to fix them here. Could you verify it really works for you?
FWIW I added -Dcc=gcc-4.9 in debian/config.debian for testing.
Are you replacing /usr/bin/gcc or something like that?
(I've also tested that the bug exists on upstream blead, as of
v5.19.10-18-g61eca82, so tagging this 'upstream'.)
Test Summary Report
-------------------
op/numconvert.t (Wstat: 0 Tests: 1444 Failed: 12)
Failed tests: 104, 108, 112, 136, 140, 144, 152, 156
160, 168, 172, 176
op/range.t (Wstat: 0 Tests: 141 Failed: 25)
Failed tests: 84-95, 99-111
Files=2, Tests=1585, 0 wallclock secs ( 0.10 usr 0.00 sys + 0.16 cusr 0.00 csys = 0.26 CPU)
Result: FAIL
$ LD_LIBRARY_PATH=`pwd`; export LD_LIBRARY_PATH; cd t; ./perl harness op/numconvert.t op/range.t
op/numconvert.t .. # '-9223372036854775808' ne '-9.22337203685478e+18', -1.84467440737096e+19 => I - N P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18', -1.84467440737096e+19 => I - N P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18', -9.22337203685478e+18 => I - N P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18', -9223372036854775808 => I - N P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18', 9223372036854775808 => I - N P vs I - P
# Failed test 104 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18', -9223372036854775808 => N - N P vs N - P
# Failed test 108 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18', -9223372036854775808 => P - N P vs P - P
# Failed test 112 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18', -1.84467440737096e+19 => I - u P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18', -1.84467440737096e+19 => I - u P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18', -9.22337203685478e+18 => I - u P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18', -9223372036854775808 => I - u P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18', 9223372036854775808 => I - u P vs I - P
# Failed test 136 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18', -9223372036854775808 => N - u P vs N - P
# Failed test 140 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18', -9223372036854775808 => P - u P vs P - P
# Failed test 144 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18', -1.84467440737096e+19 => I - i P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18', -1.84467440737096e+19 => I - i P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18', -9.22337203685478e+18 => I - i P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18', -9223372036854775808 => I - i P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18', 9223372036854775808 => I - i P vs I - P
# Failed test 152 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18', -9223372036854775808 => N - i P vs N - P
# Failed test 156 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18', -9223372036854775808 => P - i P vs P - P
# Failed test 160 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18', -1.84467440737096e+19 => I - n P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18', -1.84467440737096e+19 => I - n P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18', -9.22337203685478e+18 => I - n P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18', -9223372036854775808 => I - n P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18', 9223372036854775808 => I - n P vs I - P
# Failed test 168 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18', -9223372036854775808 => N - n P vs N - P
# Failed test 172 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18', -9223372036854775808 => P - n P vs P - P
# Failed test 176 - at op/numconvert.t line 247
op/numconvert.t .. Failed 12/1444 subtests
op/range.t ....... # Failed test 84 - Lower bound accepted: -9223372036854775807 at op/range.t line 289
# Failed test 85 - Lower bound okay at op/range.t line 290
# got undef
# expected "-9223372036854775807"
# Failed test 86 - Upper bound okay at op/range.t line 291
# got undef
# expected "-9223372036854775797"
# Failed test 87 - Lower bound accepted: -9223372036854775806 at op/range.t line 289
# Failed test 88 - Lower bound okay at op/range.t line 290
# got undef
# expected "-9223372036854775806"
# Failed test 89 - Upper bound okay at op/range.t line 291
# got undef
# expected "-9223372036854775797"
# Failed test 90 - Lower bound accepted: -9223372036854775805 at op/range.t line 289
# Failed test 91 - Lower bound okay at op/range.t line 290
# got undef
# expected "-9223372036854775805"
# Failed test 92 - Upper bound okay at op/range.t line 291
# got undef
# expected "-9223372036854775797"
# Failed test 93 - Lower bound accepted: -9223372036854775804 at op/range.t line 289
# Failed test 94 - Lower bound okay at op/range.t line 290
# got undef
# expected "-9223372036854775804"
# Failed test 95 - Upper bound okay at op/range.t line 291
# got undef
# expected "-9223372036854775797"
# Failed test 99 - Upper bound accepted: -9223372036854775807 at op/range.t line 310
# Failed test 100 - Lower bound okay at op/range.t line 311
# got undef
# expected "-9223372036854775807"
# Failed test 101 - Upper bound okay at op/range.t line 312
# got undef
# expected "-9223372036854775807"
# Failed test 102 - Upper bound accepted: -9223372036854775806 at op/range.t line 310
# Failed test 103 - Lower bound okay at op/range.t line 311
# got undef
# expected "-9223372036854775807"
# Failed test 104 - Upper bound okay at op/range.t line 312
# got undef
# expected "-9223372036854775806"
# Failed test 105 - Upper bound accepted: -9223372036854775805 at op/range.t line 310
# Failed test 106 - Lower bound okay at op/range.t line 311
# got undef
# expected "-9223372036854775807"
# Failed test 107 - Upper bound okay at op/range.t line 312
# got undef
# expected "-9223372036854775805"
# Failed test 108 - Upper bound accepted: -9223372036854775804 at op/range.t line 310
# Failed test 109 - Lower bound okay at op/range.t line 311
# got undef
# expected "-9223372036854775807"
# Failed test 110 - Upper bound okay at op/range.t line 312
# got undef
# expected "-9223372036854775804"
# Failed test 111 - Range accepted at op/range.t line 330
op/range.t ....... Failed 25/141 subtests
--
Niko Tyni ntyni at debian.org
More information about the Perl-maintainers
mailing list