This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
asan_ignore: exclude Perl_pp_left_shift()
authorDavid Mitchell <davem@iabyn.com>
Sun, 21 Dec 2014 00:00:10 +0000 (00:00 +0000)
committerDavid Mitchell <davem@iabyn.com>
Wed, 31 Dec 2014 11:28:51 +0000 (11:28 +0000)
<< in perl maps directly to << in C, so don't warn about it when the RHS
is too big.

Fixes e.g.:

    print 1 << 64
    use integer; print 1 << 63

Typical ASan warning:

pp.c:1893:2: runtime error: left shift of 1 by 63 places cannot be represented in type 'IV' (aka 'long')

asan_ignore

index 5a8bc5c..4a1dc83 100644 (file)
@@ -17,3 +17,9 @@
 # nor =signed-integer-overflow worked.
 
 fun:Perl_pp_i_*
 # nor =signed-integer-overflow worked.
 
 fun:Perl_pp_i_*
+
+# Perl's << is defined as using the underlying C's << operator, with the
+# same undefined behaviour for shifts greater than the word size.
+# (UVs normally, IVs with 'use integer')
+
+fun:Perl_pp_left_shift