Front page | perl.perl5.porters |
Postings from August 2008
[perl #57944] Incorrect nonnull attribution on Perl_parser_dup
Thread Next
From:
perlbug-followup
Date:
August 15, 2008 18:03
Subject:
[perl #57944] Incorrect nonnull attribution on Perl_parser_dup
Message ID:
rt-3.6.HEAD-29759-1218816680-840.57944-75-0@perl.org
# New Ticket Created by richard.earnshaw@arm.com
# Please include the string: [perl #57944]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=57944 >
This is a bug report for perl from richard.earnshaw@arm.com,
generated with the help of perlbug 1.36 running under perl 5.10.0.
-----------------------------------------------------------------
[Please enter your report here]
I've been trying to build perl with a compiler that implements a number of
GNU extensions. When the tests are run from using this compiler a number
of tests fail due do a segmentation fault in Perl_parser_dup. The reason
for this seems to be an incorrect attribute((nonnull)) annotation on the
'proto' argument to this function. A backtrace shows that perl_clone (line
11297) can call this routine with a NULL proto value. The crash occurs
because the compiler has optimized away the null check at the top of the
function (since the programmer has asserted that the argument can't be null
the check must be redundant).
#0 Perl_parser_dup (my_perl=0x17c350, proto=0x0, param=0xbecbd0e0)
at sv.c:9564
#1 0x000a4b8c in perl_clone (proto_perl=0x116008, flags=2) at sv.c:11297
11297 PL_parser = parser_dup(proto_perl->Iparser, param);
(gdb) p proto_perl->Iparser
$2 = (yy_parser *) 0x0
[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
category=core
severity=medium
---
Site configuration information for perl 5.10.0:
Configured by Debian Project at Sat Jul 19 12:31:51 UTC 2008.
Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
Platform:
osname=linux, osvers=2.6.25-1-iop32x, archname=arm-linux-gnueabi-thread-multi
uname='linux muscat 2.6.25-1-iop32x #2 wed apr 30 08:20:05 utc 2008 armv5tel gnulinux '
config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=arm-linux-gnueabi -Dprefix=/usr -Dprivlib=/usr/share/perl/5.10 -Darchlib=/usr/lib/perl/5.10 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.10.0 -Dsitearch=/usr/local/lib/perl/5.10.0 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib -Dlibperl=libperl.so.5.10.0 -Dd_dosuid -des'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=undef, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2 -g',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include'
ccversion='', gccversion='4.3.1', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
perllibs=-ldl -lm -lpthread -lc -lcrypt
libc=/lib/libc-2.7.so, so=so, useshrplib=true, libperl=libperl.so.5.10.0
gnulibc_version='2.7'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -O2 -g -L/usr/local/lib'
Locally applied patches:
---
@INC for perl 5.10.0:
/etc/perl
/usr/local/lib/perl/5.10.0
/usr/local/share/perl/5.10.0
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.10
/usr/share/perl/5.10
/usr/local/lib/site_perl
.
---
Environment for perl 5.10.0:
HOME=/home/rearnsha
LANG=en_GB
LANGUAGE (unset)
LD_LIBRARY_PATH=/work/rearnsha/RVD/ARM/lib/linux-pentium:/work/rearnsha/motif/usr/X11R6/lib:/usr/X11R6/lib:/usr/local/X11/lib:/usr/openwin/lib
LOGDIR (unset)
PATH=/work/rearnsha/RVD/ARM/bin/linux-pentium:/home/rearnsha/bin/arm_linux_2.6:/home/rearnsha/bin/linux:/home/rearnsha/bin/scripts:/usr/local/bin:/usr/ucb:/bin:/usr/bin:/usr/local/gnu/bin:/usr/local/contrib/bin:/usr/X11R6/bin:/arm/sdt/scripts:/arm/sdt/bin/linux86
PERL_BADLANG (unset)
SHELL=/bin/bash
Thread Next
-
[perl #57944] Incorrect nonnull attribution on Perl_parser_dup
by perlbug-followup