1*898184e3Ssthenuse warnings; 2*898184e3Ssthenuse strict; 3*898184e3Ssthen 4*898184e3Ssthenuse Test::More tests => 32; 5*898184e3Ssthen 6*898184e3SsthenBEGIN { $^H |= 0x20000; } 7*898184e3Ssthen 8*898184e3Ssthenmy $t; 9*898184e3Ssthen 10*898184e3Ssthen$t = ""; 11*898184e3Sstheneval q{ 12*898184e3Ssthen use XS::APItest (); 13*898184e3Ssthen $t .= "a"; 14*898184e3Ssthen swaptwostmts 15*898184e3Ssthen $t .= "b"; 16*898184e3Ssthen $t .= "c"; 17*898184e3Ssthen $t .= "d"; 18*898184e3Ssthen}; 19*898184e3Ssthenisnt $@, ""; 20*898184e3Ssthen 21*898184e3Ssthen$t = ""; 22*898184e3Sstheneval q{ 23*898184e3Ssthen use XS::APItest qw(swaptwostmts); 24*898184e3Ssthen $t .= "a"; 25*898184e3Ssthen swaptwostmts 26*898184e3Ssthen $t .= "b"; 27*898184e3Ssthen $t .= "c"; 28*898184e3Ssthen $t .= "d"; 29*898184e3Ssthen}; 30*898184e3Ssthenis $@, ""; 31*898184e3Ssthenis $t, "acbd"; 32*898184e3Ssthen 33*898184e3Ssthen$t = ""; 34*898184e3Sstheneval q{ 35*898184e3Ssthen use XS::APItest qw(swaptwostmts); 36*898184e3Ssthen $t .= "a"; 37*898184e3Ssthen swaptwostmts 38*898184e3Ssthen if(1) { $t .= "b"; } 39*898184e3Ssthen $t .= "c"; 40*898184e3Ssthen $t .= "d"; 41*898184e3Ssthen}; 42*898184e3Ssthenis $@, ""; 43*898184e3Ssthenis $t, "acbd"; 44*898184e3Ssthen 45*898184e3Ssthen$t = ""; 46*898184e3Sstheneval q{ 47*898184e3Ssthen use XS::APItest qw(swaptwostmts); 48*898184e3Ssthen $t .= "a"; 49*898184e3Ssthen swaptwostmts 50*898184e3Ssthen $t .= "b"; 51*898184e3Ssthen if(1) { $t .= "c"; } 52*898184e3Ssthen $t .= "d"; 53*898184e3Ssthen}; 54*898184e3Ssthenis $@, ""; 55*898184e3Ssthenis $t, "acbd"; 56*898184e3Ssthen 57*898184e3Ssthen$t = ""; 58*898184e3Sstheneval q{ 59*898184e3Ssthen use XS::APItest qw(swaptwostmts); 60*898184e3Ssthen $t .= "a"; 61*898184e3Ssthen swaptwostmts 62*898184e3Ssthen $t .= "b"; 63*898184e3Ssthen foreach(1..3) { 64*898184e3Ssthen $t .= "c"; 65*898184e3Ssthen swaptwostmts 66*898184e3Ssthen $t .= "d"; 67*898184e3Ssthen $t .= "e"; 68*898184e3Ssthen $t .= "f"; 69*898184e3Ssthen } 70*898184e3Ssthen $t .= "g"; 71*898184e3Ssthen}; 72*898184e3Ssthenis $@, ""; 73*898184e3Ssthenis $t, "acedfcedfcedfbg"; 74*898184e3Ssthen 75*898184e3Ssthen$t = ""; 76*898184e3Sstheneval q{ 77*898184e3Ssthen use XS::APItest qw(swaptwostmts); 78*898184e3Ssthen $t .= "a"; 79*898184e3Ssthen swaptwostmts 80*898184e3Ssthen $t .= "b"; 81*898184e3Ssthen $t .= "c"; 82*898184e3Ssthen}; 83*898184e3Ssthenis $@, ""; 84*898184e3Ssthenis $t, "acb"; 85*898184e3Ssthen 86*898184e3Ssthen$t = ""; 87*898184e3Sstheneval q{ 88*898184e3Ssthen use XS::APItest qw(swaptwostmts); 89*898184e3Ssthen $t .= "a"; 90*898184e3Ssthen swaptwostmts 91*898184e3Ssthen $t .= "b"; 92*898184e3Ssthen $t .= "c" 93*898184e3Ssthen}; 94*898184e3Ssthenis $@, ""; 95*898184e3Ssthenis $t, "acb"; 96*898184e3Ssthen 97*898184e3Ssthen$t = ""; 98*898184e3Sstheneval q{ 99*898184e3Ssthen use XS::APItest qw(swaptwostmts); 100*898184e3Ssthen $t .= "a"; 101*898184e3Ssthen swaptwostmts 102*898184e3Ssthen $t .= "b" 103*898184e3Ssthen}; 104*898184e3Ssthenisnt $@, ""; 105*898184e3Ssthen 106*898184e3Ssthen$t = ""; 107*898184e3Sstheneval q{ 108*898184e3Ssthen use XS::APItest qw(swaptwostmts); 109*898184e3Ssthen $_ = $t; 110*898184e3Ssthen $_ .= "a"; 111*898184e3Ssthen swaptwostmts 112*898184e3Ssthen if(1) { $_ .= "b"; } 113*898184e3Ssthen tr/a-z/A-Z/; 114*898184e3Ssthen $_ .= "d"; 115*898184e3Ssthen $t = $_; 116*898184e3Ssthen}; 117*898184e3Ssthenis $@, ""; 118*898184e3Ssthenis $t, "Abd"; 119*898184e3Ssthen 120*898184e3Ssthen$t = ""; 121*898184e3Sstheneval q{ 122*898184e3Ssthen use XS::APItest qw(swaptwostmts); 123*898184e3Ssthen sub add_to_t { $t .= $_[0]; } 124*898184e3Ssthen add_to_t "a"; 125*898184e3Ssthen swaptwostmts 126*898184e3Ssthen if(1) { add_to_t "b"; } 127*898184e3Ssthen add_to_t "c"; 128*898184e3Ssthen add_to_t "d"; 129*898184e3Ssthen}; 130*898184e3Ssthenis $@, ""; 131*898184e3Ssthenis $t, "acbd"; 132*898184e3Ssthen 133*898184e3Ssthen$t = ""; 134*898184e3Sstheneval q{ 135*898184e3Ssthen use XS::APItest qw(swaptwostmts); 136*898184e3Ssthen { $t .= "a"; } 137*898184e3Ssthen swaptwostmts 138*898184e3Ssthen if(1) { { $t .= "b"; } } 139*898184e3Ssthen { $t .= "c"; } 140*898184e3Ssthen { $t .= "d"; } 141*898184e3Ssthen}; 142*898184e3Ssthenis $@, ""; 143*898184e3Ssthenis $t, "acbd"; 144*898184e3Ssthen 145*898184e3Ssthen$t = ""; 146*898184e3Sstheneval q{ 147*898184e3Ssthen use XS::APItest qw(swaptwostmts); 148*898184e3Ssthen no warnings "void"; 149*898184e3Ssthen { $t .= "a"; } 150*898184e3Ssthen swaptwostmts 151*898184e3Ssthen if(1) { { $t .= "b"; } } 152*898184e3Ssthen {}; 153*898184e3Ssthen { $t .= "d"; } 154*898184e3Ssthen}; 155*898184e3Ssthenis $@, ""; 156*898184e3Ssthenis $t, "abd"; 157*898184e3Ssthen 158*898184e3Ssthen$t = ""; 159*898184e3Sstheneval q{ 160*898184e3Ssthen use XS::APItest qw(swaptwostmts); 161*898184e3Ssthen no warnings "void"; 162*898184e3Ssthen { $t .= "a"; } 163*898184e3Ssthen swaptwostmts 164*898184e3Ssthen if(1) { { $t .= "b"; } } 165*898184e3Ssthen []; 166*898184e3Ssthen { $t .= "d"; } 167*898184e3Ssthen}; 168*898184e3Ssthenis $@, ""; 169*898184e3Ssthenis $t, "abd"; 170*898184e3Ssthen 171*898184e3Ssthen$t = ""; 172*898184e3Sstheneval q{ 173*898184e3Ssthen use XS::APItest qw(swaptwostmts); 174*898184e3Ssthen no warnings "void"; 175*898184e3Ssthen "@{[ $t .= 'a' ]}"; 176*898184e3Ssthen swaptwostmts 177*898184e3Ssthen if(1) { "@{[ $t .= 'b' ]}"; } 178*898184e3Ssthen "@{[ $t .= 'c' ]}"; 179*898184e3Ssthen "@{[ $t .= 'd' ]}"; 180*898184e3Ssthen}; 181*898184e3Ssthenis $@, ""; 182*898184e3Ssthenis $t, "acbd"; 183*898184e3Ssthen 184*898184e3Ssthen$t = ""; 185*898184e3Sstheneval q{ 186*898184e3Ssthen use XS::APItest qw(swaptwostmts); 187*898184e3Ssthen $t .= "a"; 188*898184e3Ssthen swaptwostmts 189*898184e3Ssthen x: 190*898184e3Ssthen $t .= "b"; 191*898184e3Ssthen z: 192*898184e3Ssthen $t .= "c"; 193*898184e3Ssthen $t .= "d"; 194*898184e3Ssthen}; 195*898184e3Ssthenis $@, ""; 196*898184e3Ssthenis $t, "acbd"; 197*898184e3Ssthen 198*898184e3Ssthen$t = ""; 199*898184e3Sstheneval q{ 200*898184e3Ssthen use XS::APItest qw(swaptwostmts); 201*898184e3Ssthen $t .= "a"; 202*898184e3Ssthen goto x; 203*898184e3Ssthen $t .= "b"; 204*898184e3Ssthen swaptwostmts 205*898184e3Ssthen x: 206*898184e3Ssthen $t .= "c"; 207*898184e3Ssthen $t .= "d"; 208*898184e3Ssthen $t .= "e"; 209*898184e3Ssthen}; 210*898184e3Ssthenis $@, ""; 211*898184e3Ssthenis $t, "ace"; 212*898184e3Ssthen 213*898184e3Ssthen$t = ""; 214*898184e3Sstheneval q{ 215*898184e3Ssthen use XS::APItest qw(swaptwostmts); 216*898184e3Ssthen $t .= "a"; 217*898184e3Ssthen goto x; 218*898184e3Ssthen $t .= "b"; 219*898184e3Ssthen swaptwostmts 220*898184e3Ssthen $t .= "c"; 221*898184e3Ssthen x: 222*898184e3Ssthen $t .= "d"; 223*898184e3Ssthen $t .= "e"; 224*898184e3Ssthen}; 225*898184e3Ssthenis $@, ""; 226*898184e3Ssthenis $t, "adce"; 227*898184e3Ssthen 228*898184e3Ssthen1; 229