1 2 utf8.c AOK 3 4 [utf8_to_uv] 5 Malformed UTF-8 character 6 my $a = ord "\x80" ; 7 8 Malformed UTF-8 character 9 my $a = ord "\xf080" ; 10 <<<<<< this warning can't be easily triggered from perl anymore 11 12 [utf16_to_utf8] 13 Malformed UTF-16 surrogate 14 <<<<<< Add a test when somethig actually calls utf16_to_utf8 15 16__END__ 17# utf8.c [utf8_to_uv] -W 18BEGIN { 19 if (ord('A') == 193) { 20 print "SKIPPED\n# ebcdic platforms do not generate Malformed UTF-8 warnings."; 21 exit 0; 22 } 23} 24use utf8 ; 25my $a = "sn�storm" ; 26{ 27 no warnings 'utf8' ; 28 my $a = "sn�storm"; 29 use warnings 'utf8' ; 30 my $a = "sn�storm"; 31} 32EXPECT 33Malformed UTF-8 character (unexpected non-continuation byte 0x73, immediately after start byte 0xf8) at - line 9. 34Malformed UTF-8 character (unexpected non-continuation byte 0x73, immediately after start byte 0xf8) at - line 14. 35######## 36use warnings 'utf8'; 37my $d7ff = chr(0xD7FF); 38my $d800 = chr(0xD800); 39my $dfff = chr(0xDFFF); 40my $e000 = chr(0xE000); 41my $feff = chr(0xFEFF); 42my $fffd = chr(0xFFFD); 43my $fffe = chr(0xFFFE); 44my $ffff = chr(0xFFFF); 45my $hex4 = chr(0x10000); 46my $hex5 = chr(0x100000); 47my $maxm1 = chr(0x10FFFE); 48my $max = chr(0x10FFFF); 49no warnings 'utf8'; 50my $d7ff = chr(0xD7FF); 51my $d800 = chr(0xD800); 52my $dfff = chr(0xDFFF); 53my $e000 = chr(0xE000); 54my $feff = chr(0xFEFF); 55my $fffd = chr(0xFFFD); 56my $fffe = chr(0xFFFE); 57my $ffff = chr(0xFFFF); 58my $hex4 = chr(0x10000); 59my $hex5 = chr(0x100000); 60my $maxm1 = chr(0x10FFFE); 61my $max = chr(0x10FFFF); 62EXPECT 63UTF-16 surrogate 0xd800 at - line 3. 64UTF-16 surrogate 0xdfff at - line 4. 65Unicode non-character 0xfffe is illegal for interchange at - line 8. 66Unicode non-character 0xffff is illegal for interchange at - line 9. 67Unicode non-character 0x10fffe is illegal for interchange at - line 12. 68Unicode non-character 0x10ffff is illegal for interchange at - line 13. 69######## 70use warnings 'utf8'; 71my $d7ff = pack("U", 0xD7FF); 72my $d800 = pack("U", 0xD800); 73my $dfff = pack("U", 0xDFFF); 74my $e000 = pack("U", 0xE000); 75my $feff = pack("U", 0xFEFF); 76my $fffd = pack("U", 0xFFFD); 77my $fffe = pack("U", 0xFFFE); 78my $ffff = pack("U", 0xFFFF); 79my $hex4 = pack("U", 0x10000); 80my $hex5 = pack("U", 0x100000); 81my $maxm1 = pack("U", 0x10FFFE); 82my $max = pack("U", 0x10FFFF); 83no warnings 'utf8'; 84my $d7ff = pack("U", 0xD7FF); 85my $d800 = pack("U", 0xD800); 86my $dfff = pack("U", 0xDFFF); 87my $e000 = pack("U", 0xE000); 88my $feff = pack("U", 0xFEFF); 89my $fffd = pack("U", 0xFFFD); 90my $fffe = pack("U", 0xFFFE); 91my $ffff = pack("U", 0xFFFF); 92my $hex4 = pack("U", 0x10000); 93my $hex5 = pack("U", 0x100000); 94my $maxm1 = pack("U", 0x10FFFE); 95my $max = pack("U", 0x10FFFF); 96EXPECT 97UTF-16 surrogate 0xd800 at - line 3. 98UTF-16 surrogate 0xdfff at - line 4. 99Unicode non-character 0xfffe is illegal for interchange at - line 8. 100Unicode non-character 0xffff is illegal for interchange at - line 9. 101Unicode non-character 0x10fffe is illegal for interchange at - line 12. 102Unicode non-character 0x10ffff is illegal for interchange at - line 13. 103######## 104use warnings 'utf8'; 105my $d7ff = "\x{D7FF}"; 106my $d800 = "\x{D800}"; 107my $dfff = "\x{DFFF}"; 108my $e000 = "\x{E000}"; 109my $feff = "\x{FEFF}"; 110my $fffd = "\x{FFFD}"; 111my $fffe = "\x{FFFE}"; 112my $ffff = "\x{FFFF}"; 113my $hex4 = "\x{10000}"; 114my $hex5 = "\x{100000}"; 115my $maxm1 = "\x{10FFFE}"; 116my $max = "\x{10FFFF}"; 117uc($ffff); 118no warnings 'utf8'; 119my $d7ff = "\x{D7FF}"; 120my $d800 = "\x{D800}"; 121my $dfff = "\x{DFFF}"; 122my $e000 = "\x{E000}"; 123my $feff = "\x{FEFF}"; 124my $fffd = "\x{FFFD}"; 125my $fffe = "\x{FFFE}"; 126my $ffff = "\x{FFFF}"; 127my $hex4 = "\x{10000}"; 128my $hex5 = "\x{100000}"; 129my $maxm1 = "\x{10FFFE}"; 130my $max = "\x{10FFFF}"; 131uc($ffff); 132EXPECT 133UTF-16 surrogate 0xd800 at - line 3. 134UTF-16 surrogate 0xdfff at - line 4. 135Unicode non-character 0xfffe is illegal for interchange at - line 8. 136Unicode non-character 0xffff is illegal for interchange at - line 9. 137Unicode non-character 0x10fffe is illegal for interchange at - line 12. 138Unicode non-character 0x10ffff is illegal for interchange at - line 13. 139Unicode non-character 0xffff is illegal for interchange in uc at - line 14. 140