This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
utf8.c: EBCDIC fix
[perl5.git] / ext / XS-APItest / t / lvalue.t
CommitLineData
fba8e77b
FC
1# Miscellaneous tests for XS lvalue functions
2
3use warnings;
4use strict;
5
1c70fb82 6use Test::More tests => 4;
fba8e77b
FC
7
8use XS::APItest 'lv_temp_object';
9
10
11{
12 my $w;
13 local $SIG{__WARN__} = sub { $w = shift };
14
15 # [perl #31946]
16 lv_temp_object() = 75;
17 like $w, qr/Useless assignment to a temporary at/,
18 'warning when assigning to temp returned from XS lv sub';
1c70fb82
FC
19 undef $w;
20 (lv_temp_object()) = 75;
21 like $w, qr/Useless assignment to a temporary at/,
22 'warning when list-assigning to temp returned from XS lv sub';
fba8e77b
FC
23
24 $w = undef;
25 {
26 package XS::APItest::TempObj;
27 use overload '.=' => sub { $::assigned = $_[1] };
28 }
29 lv_temp_object() .= 63;
30 is $::assigned, 63, 'overloaded .= on temp obj returned from lv sub';
31 is $w, undef, 'no warning from overloaded .= on temp obj';
32}