develooper Front page | perl.perl5.porters | Postings from June 2013

[perl #118455] "no warnings" cannot disable "Statement unlikely to be reached"

From:
Ricardo SIGNES
Date:
June 12, 2013 18:40
Subject:
[perl #118455] "no warnings" cannot disable "Statement unlikely to be reached"
Message ID:
rt-3.6.HEAD-2552-1371062386-1780.118455-75-0@perl.org
# New Ticket Created by  Ricardo SIGNES 
# Please include the string:  [perl #118455]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=118455 >


This is a bug report for perl from rjbs@cpan.org,
generated with the help of perlbug 1.39 running under perl 5.19.0.


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

I don't have a program called "lll" in my path.

  ~$ perl -Mwarnings -E 'exec "lll"; say "oops"'
  Statement unlikely to be reached at -e line 1.
          (Maybe you meant system() when you said exec()?)
  Can't exec "lll": No such file or directory at -e line 1.
  oops

I get two warnings, both "exec" category, as expected.

I don't want these.  I will disable that category.

  perl -Mwarnings -E 'no warnings "exec"; exec "lll"; say "oops"'
  Statement unlikely to be reached at -e line 1.
          (Maybe you meant system() when you said exec()?)
  oops

I only managed to disable one of them!

The docs in perldiag make it clear how to disable this warning, and that
works.  Fine.  But why can't it also be disabled like any other lexical
warning?

More:

With only unrelated warnings turned on, no warning.  Great.

  ~$ perl -E 'use warnings "exiting"; exec "lll"; say "oops"'
  oops

Turning on the "exec" category does not *enable* the warning:

  ~$ perl -E 'use warnings "exec"; exec "lll"; say "oops"'
  Can't exec "lll": No such file or directory at -e line 1.
  oops

Turning off all warnings *does* disable the warning:

  ~$ perl -E 'use warnings; no warnings; exec "lll"; say "oops"'
  oops

Looking at the difference between the two warnings (in op.c and doio.c)
didn't make it obviously clear to me what differs.


[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
    category=core
    severity=low
---
Site configuration information for perl 5.19.0:

Configured by rjbs at Mon May 20 10:59:20 EDT 2013.

Summary of my perl5 (revision 5 version 19 subversion 0) configuration:
   
  Platform:
    osname=darwin, osvers=12.3.0, archname=darwin-2level
    uname='darwin walrus.local 12.3.0 darwin kernel version 12.3.0: sun jan 6 22:37:10 pst 2013; root:xnu-2050.22.13~1release_x86_64 x86_64 '
    config_args='-de -Dprefix=/Users/rjbs/perl5/perlbrew/perls/19.0 -Dusedevel -Aeval:scriptdir=/Users/rjbs/perl5/perlbrew/perls/19.0/bin'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include',
    optimize='-O3',
    cppflags='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include'
    ccversion='', gccversion='4.2.1 Compatible Apple Clang 4.0 ((tags/Apple/clang-421.0.57))', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -fstack-protector -L/usr/local/lib -L/opt/local/lib'
    libpth=/usr/local/lib /opt/local/lib /usr/lib
    libs=-lgdbm -ldbm -ldl -lm -lutil -lc
    perllibs=-ldl -lm -lutil -lc
    libc=, so=dylib, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -L/opt/local/lib -fstack-protector'

Locally applied patches:
    

---
@INC for perl 5.19.0:
    /Users/rjbs/.perlbrew/libs/19.0@std/lib/perl5/darwin-2level
    /Users/rjbs/.perlbrew/libs/19.0@std/lib/perl5
    /Users/rjbs/perl5/perlbrew/perls/19.0/lib/site_perl/5.19.0/darwin-2level
    /Users/rjbs/perl5/perlbrew/perls/19.0/lib/site_perl/5.19.0
    /Users/rjbs/perl5/perlbrew/perls/19.0/lib/5.19.0/darwin-2level
    /Users/rjbs/perl5/perlbrew/perls/19.0/lib/5.19.0
    .

---
Environment for perl 5.19.0:
    DYLD_LIBRARY_PATH (unset)
    HOME=/Users/rjbs
    LANG=en_US.UTF-8
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/Users/rjbs/.perlbrew/libs/19.0@std/bin:/Users/rjbs/perl5/perlbrew/bin:/Users/rjbs/perl5/perlbrew/perls/19.0/bin:/Users/rjbs/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/Users/rjbs/code/hla
    PERL5LIB=/Users/rjbs/.perlbrew/libs/19.0@std/lib/perl5
    PERLBREW_BASHRC_VERSION=0.63
    PERLBREW_HOME=/Users/rjbs/.perlbrew
    PERLBREW_LIB=std
    PERLBREW_MANPATH=/Users/rjbs/.perlbrew/libs/19.0@std/man:/Users/rjbs/perl5/perlbrew/perls/19.0/man
    PERLBREW_PATH=/Users/rjbs/.perlbrew/libs/19.0@std/bin:/Users/rjbs/perl5/perlbrew/bin:/Users/rjbs/perl5/perlbrew/perls/19.0/bin
    PERLBREW_PERL=19.0
    PERLBREW_ROOT=/Users/rjbs/perl5/perlbrew
    PERLBREW_VERSION=0.63
    PERLDOC=-n/opt/local/bin/groff
    PERL_AUTOINSTALL=--skipdeps
    PERL_BADLANG (unset)
    PERL_LOCAL_LIB_ROOT=/Users/rjbs/.perlbrew/libs/19.0@std
    PERL_MAILERS=sendmail:/Users/rjbs/bin/sendmail
    PERL_MB_OPT=--install_base /Users/rjbs/.perlbrew/libs/19.0@std
    PERL_MM_OPT=INSTALL_BASE=/Users/rjbs/.perlbrew/libs/19.0@std
    SHELL=/opt/local/bin/zsh




nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About