Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Perl: porters

[perl #114180] illegalproto warnings are very incomplete

 

 

Perl porters RSS feed   Index | Next | Previous | View Threaded


perlbug-followup at perl

Jul 18, 2012, 12:10 AM

Post #1 of 2 (43 views)
Permalink
[perl #114180] illegalproto warnings are very incomplete

# New Ticket Created by l.mai [at] web
# Please include the string: [perl #114180]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=114180 >



This is a bug report for perl from l.mai [at] web,
generated with the help of perlbug 1.39 running under perl 5.16.0.


-----------------------------------------------------------------
[Please describe your issue here]

All of these should warn about illegal prototypes but don't:

% perl -we 'sub f ([)'
% perl -we 'sub f (][.[.[.[.[.[.)'
% perl -we 'sub f (\;)'
% perl -we 'sub f (\[_;@])'
% perl -we 'sub f (\+)'
% perl -we 'sub f (\\\\)'
% perl -we 'sub f ([$])'


This one warns for the wrong reason:

% perl -we 'sub f (\[_$])'
Illegal character after '_' in prototype for main::f : \\[_$] at -e line 1.


This one is semantically nonsense but "works":

% perl -we 'sub f (_;_;_)'


[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
category=core
severity=low
---
This perlbug was built using Perl 5.12.1 - Thu Jun 3 20:09:15 CEST 2010
It is being executed now by Perl 5.16.0 - Mon May 21 12:24:16 CEST 2012.

Site configuration information for perl 5.16.0:

Configured by mauke at Mon May 21 12:24:16 CEST 2012.

Summary of my perl5 (revision 5 version 16 subversion 0) configuration:

Platform:
osname=linux, osvers=2.6.38-gentoo-r6, archname=i686-linux
uname='linux nora 2.6.38-gentoo-r6 #1 preempt sat aug 6 03:05:34 cest 2011 i686 amd athlon(tm) 64 processor 3200+ authenticamd gnulinux '
config_args='-Dcc=cgcc -Dprefix=/home/mauke/usr/local -Dman1dir=none -Dman3dir=none -Dinc_version_list=none -Doptimize=-O2 -flto'
hint=recommended, useposix=true, d_sigaction=define
useithreads=undef, usemultiplicity=undef
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=undef, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cgcc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2 -flto',
cppflags='-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
ccversion='', gccversion='4.6.3', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=4, prototype=define
Linker and Libraries:
ld='cgcc', ldflags ='-fstack-protector -L/usr/local/lib -O2 -flto'
libpth=/usr/local/lib /lib/../lib /usr/lib/../lib /lib /usr/lib
libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
libc=/lib/libc-2.14.1.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version='2.14.1'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -O2 -flto -L/usr/local/lib -fstack-protector'

Locally applied patches:
SAVEARGV0 - disable magic open in <ARGV>

---
@INC for perl 5.16.0:
/home/mauke/usr/local/lib/perl5/site_perl/5.16.0/i686-linux
/home/mauke/usr/local/lib/perl5/site_perl/5.16.0
/home/mauke/usr/local/lib/perl5/5.16.0/i686-linux
/home/mauke/usr/local/lib/perl5/5.16.0
.

---
Environment for perl 5.16.0:
HOME=/home/mauke
LANG=en_US.UTF-8
LANGUAGE (unset)
LC_COLLATE=POSIX
LD_LIBRARY_PATH=/home/mauke/usr/local/lib
LOGDIR (unset)
PATH=/home/mauke/usr/perlbrew/bin:/home/mauke/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.4.5:/opt/sun-jdk-1.4.2.13/bin:/opt/sun-jdk-1.4.2.13/jre/bin:/opt/sun-jdk-1.4.2.13/jre/javaws:/opt/dmd/bin:/usr/games/bin
PERLBREW_BASHRC_VERSION=0.43
PERLBREW_HOME=/home/mauke/.perlbrew
PERLBREW_PATH=/home/mauke/usr/perlbrew/bin
PERLBREW_ROOT=/home/mauke/usr/perlbrew
PERLBREW_VERSION=0.27
PERL_BADLANG (unset)
PERL_UNICODE=SAL
SHELL=/bin/bash


perlbug-followup at perl

Jul 31, 2012, 12:22 AM

Post #2 of 2 (30 views)
Permalink
[perl #114180] illegalproto warnings are very incomplete [In reply to]

On Wed Jul 18 00:10:51 2012, l.mai [at] web wrote:
>
> This is a bug report for perl from l.mai [at] web,
> generated with the help of perlbug 1.39 running under perl 5.16.0.
>
>
> -----------------------------------------------------------------
> [Please describe your issue here]
>
> All of these should warn about illegal prototypes but don't:
>
> % perl -we 'sub f ([)'
> % perl -we 'sub f (][.[.[.[.[.[.)'
> % perl -we 'sub f (\;)'
> % perl -we 'sub f (\[_;@])'
> % perl -we 'sub f (\+)'
> % perl -we 'sub f (\\\\)'
> % perl -we 'sub f ([$])'
>
>
> This one warns for the wrong reason:
>
> % perl -we 'sub f (\[_$])'
> Illegal character after '_' in prototype for main::f : \\[_$] at -e
> line 1.
>
>
> This one is semantically nonsense but "works":
>
> % perl -we 'sub f (_;_;_)'

What I don’t understand is why we need the warning anyway, since you get
an error why applying the prototype. And perl can’t know ahead of time
whether its default call checker will be parsing the prototype.

--

Father Chrysostomos


---
via perlbug: queue: perl5 status: new
https://rt.perl.org:443/rt3/Ticket/Display.html?id=114180

Perl porters RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.