Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.98k stars 559 forks source link

t/op/sprintf2.t fails three tests on Windows with VC12 (x64) #16923

Open p5pRT opened 5 years ago

p5pRT commented 5 years ago

Migrated from rt.perl.org#133982 (status was 'open')

Searchable as RT133982$

p5pRT commented 5 years ago

From @steve-m-hay

Created by @steve-m-hay

Blead is currently failing three tests in t/op/sprintf2.t on Windows (this is Windows 10) with VC12 (x64)​:

  Failed tests​: 1512\, 1517\, 1522

VC14\, VC14.1 and MinGW-w64 GCC 7.1.0 all work fine\, all x64.

See attached verbose output.

Perl Info ``` Flags: category=core severity=medium Site configuration information for perl 5.29.10: Configured by shay at Wed Apr 3 08:46:38 2019. Summary of my perl5 (revision 5 version 29 subversion 10) configuration: Platform: osname=MSWin32 osvers=10.0.17763.379 archname=MSWin32-x64-multi-thread uname='' config_args='undef' hint=recommended useposix=true d_sigaction=undef useithreads=define usemultiplicity=define use64bitint=define use64bitall=undef uselongdouble=undef usemymalloc=n default_inc_excludes_dot=define bincompat5005=undef Compiler: cc='cl' ccflags ='-nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -GL -fp:precise -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS' optimize='-O1 -MD -Zi -DNDEBUG -GL -fp:precise' cppflags='-DWIN32' ccversion='18.00.40629' gccversion='' gccosandvers='' intsize=4 longsize=4 ptrsize=8 doublesize=8 byteorder=12345678 doublekind=3 d_longlong=undef longlongsize=8 d_longdbl=define longdblsize=8 longdblkind=0 ivtype='__int64' ivsize=8 nvtype='double' nvsize=8 Off_t='__int64' lseeksize=8 alignbytes=8 prototype=define Linker and Libraries: ld='link' ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf -ltcg -libpath:"c:\perl\lib\CORE" -machine:AMD64 -subsystem:console,"5.02"' libpth="C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\\lib\amd64" libs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib libc=msvcrt.lib so=dll useshrplib=true libperl=perl529.lib gnulibc_version='' Dynamic Linking: dlsrc=dl_win32.xs dlext=dll d_dlsymun=undef ccdlflags=' ' cccdlflags=' ' lddlflags='-dll -nologo -nodefaultlib -debug -opt:ref,icf -ltcg -libpath:"c:\perl\lib\CORE" -machine:AMD64 -subsystem:console,"5.02"' @INC for perl 5.29.10: C:/perl/site/lib C:/perl/lib Environment for perl 5.29.10: HOME (unset) LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\perl\bin PERL_BADLANG (unset) SHELL (unset) ```
p5pRT commented 5 years ago

From @steve-m-hay

op/sprintf2.t .. # uvsize = 8 # nvsize = 8 # nv_preserves_uv_bits = 53 # d_quad = define # uselongdouble = undef ok 1 - the sprintf "%.\g" optimization ok 2 - the sprintf "%.\f" optimization ok 3 - width calculation under utf8 upgrade\, length=1 ok 4 - width calculation under utf8 upgrade\, length=5 ok 5 - width calculation under utf8 upgrade\, length=10 ok 6 - width calculation under utf8 upgrade\, length=20 ok 7 - width calculation under utf8 upgrade\, length=50 ok 8 - width calculation under utf8 upgrade\, length=100 ok 9 - width & precision interplay with utf8 strings\, length=1 ok 10 - width & precision interplay with utf8 strings\, length=3 ok 11 - width & precision interplay with utf8 strings\, length=5 ok 12 - width & precision interplay with utf8 strings\, length=10 ok 13 - no sprintf result expected %9223372036854775808d ok 14 - overflow in sprintf ok 15 - no printf result expected %9223372036854775808d ok 16 - overflow in printf ok 17 - no sprintf result expected %18446744073709551615d ok 18 - overflow in sprintf ok 19 - no printf result expected %18446744073709551615d ok 20 - overflow in printf ok 21 - no sprintf result expected %9999999999999999999d ok 22 - overflow in sprintf ok 23 - no printf result expected %9999999999999999999d ok 24 - overflow in printf ok 25 - %NNN$s where NNN=1 ok 26 - %NNN$s where NNN=~1 ok 27 - %NNN$s where NNN=2 ok 28 - %NNN$s where NNN=~2 ok 29 - %NNN$s where NNN=3 ok 30 - %NNN$s where NNN=~3 ok 31 - %NNN$s where NNN=4 ok 32 - %NNN$s where NNN=~4 ok 33 - %NNN$s where NNN=5 ok 34 - %NNN$s where NNN=~5 ok 35 - %NNN$s where NNN=6 ok 36 - %NNN$s where NNN=~6 ok 37 - %NNN$s where NNN=7 ok 38 - %NNN$s where NNN=~7 ok 39 - %NNN$s where NNN=8 ok 40 - %NNN$s where NNN=~8 ok 41 - %NNN$s where NNN=9 ok 42 - %NNN$s where NNN=~9 ok 43 - %NNN$s where NNN=10 ok 44 - %NNN$s where NNN=~10 ok 45 - %NNN$s where NNN=11 ok 46 - %NNN$s where NNN=~11 ok 47 - %NNN$s where NNN=12 ok 48 - %NNN$s where NNN=~12 ok 49 - %NNN$s where NNN=13 ok 50 - %NNN$s where NNN=~13 ok 51 - %NNN$s where NNN=14 ok 52 - %NNN$s where NNN=~14 ok 53 - %NNN$s where NNN=15 ok 54 - %NNN$s where NNN=~15 ok 55 - %NNN$s where NNN=16 ok 56 - %NNN$s where NNN=~16 ok 57 - %NNN$s where NNN=17 ok 58 - %NNN$s where NNN=~17 ok 59 - %NNN$s where NNN=18 ok 60 - %NNN$s where NNN=~18 ok 61 - %NNN$s where NNN=19 ok 62 - %NNN$s where NNN=~19 ok 63 - %NNN$s where NNN=20 ok 64 - %NNN$s where NNN=~20 ok 65 - expected warnings ok 66 - unexpected warnings ok 67 - For format '' and arguments/result 'x'/'' got the right result ok 68 - For format '' and arguments/result 'x'/'' got '0' 'missing argument' warnings ok 69 - For format '' and arguments/result 'x'/'' got '1' 'redundant argument' warnings ok 70 - For format '' and arguments/result 'x'/'' No unknown warnings ok 71 - For format '%s' and arguments/result 'x y'/'x' got the right result ok 72 - For format '%s' and arguments/result 'x y'/'x' got '0' 'missing argument' warnings ok 73 - For format '%s' and arguments/result 'x y'/'x' got '1' 'redundant argument' warnings ok 74 - For format '%s' and arguments/result 'x y'/'x' No unknown warnings ok 75 - For format '%-p' and arguments/result 'x y'/'2544cb77cc8' got the right result ok 76 - For format '%-p' and arguments/result 'x y'/'2544cb77cc8' got '0' 'missing argument' warnings ok 77 - For format '%-p' and arguments/result 'x y'/'2544cb77cc8' got '1' 'redundant argument' warnings ok 78 - For format '%-p' and arguments/result 'x y'/'2544cb77cc8' No unknown warnings ok 79 - For format '%s : %s' and arguments/result 'a b c'/'a : b' got the right result ok 80 - For format '%s : %s' and arguments/result 'a b c'/'a : b' got '0' 'missing argument' warnings ok 81 - For format '%s : %s' and arguments/result 'a b c'/'a : b' got '1' 'redundant argument' warnings ok 82 - For format '%s : %s' and arguments/result 'a b c'/'a : b' No unknown warnings ok 83 - For format '%s : %s : %s' and arguments/result 'a b c d e'/'a : b : c' got the right result ok 84 - For format '%s : %s : %s' and arguments/result 'a b c d e'/'a : b : c' got '0' 'missing argument' warnings ok 85 - For format '%s : %s : %s' and arguments/result 'a b c d e'/'a : b : c' got '1' 'redundant argument' warnings ok 86 - For format '%s : %s : %s' and arguments/result 'a b c d e'/'a : b : c' No unknown warnings ok 87 - For format '%s : %s : %s' and arguments/result ''/' : : ' got the right result ok 88 - For format '%s : %s : %s' and arguments/result ''/' : : ' got '3' 'missing argument' warnings ok 89 - For format '%s : %s : %s' and arguments/result ''/' : : ' got '0' 'redundant argument' warnings ok 90 - For format '%s : %s : %s' and arguments/result ''/' : : ' No unknown warnings ok 91 - For format '%1$s : %2$s' and arguments/result 'x y z'/'x : y' got the right result ok 92 - For format '%1$s : %2$s' and arguments/result 'x y z'/'x : y' got '0' 'missing argument' warnings ok 93 - For format '%1$s : %2$s' and arguments/result 'x y z'/'x : y' got '0' 'redundant argument' warnings ok 94 - For format '%1$s : %2$s' and arguments/result 'x y z'/'x : y' No unknown warnings ok 95 - For format '%2$s : %4$s : %5$s' and arguments/result 'a b c d'/'b : d : ' got the right result ok 96 - For format '%2$s : %4$s : %5$s' and arguments/result 'a b c d'/'b : d : ' got '1' 'missing argument' warnings ok 97 - For format '%2$s : %4$s : %5$s' and arguments/result 'a b c d'/'b : d : ' got '0' 'redundant argument' warnings ok 98 - For format '%2$s : %4$s : %5$s' and arguments/result 'a b c d'/'b : d : ' No unknown warnings ok 99 - For format '%s : %1$s : %s' and arguments/result 'x y z'/'x : x : y' got the right result ok 100 - For format '%s : %1$s : %s' and arguments/result 'x y z'/'x : x : y' got '0' 'missing argument' warnings ok 101 - For format '%s : %1$s : %s' and arguments/result 'x y z'/'x : x : y' got '0' 'redundant argument' warnings ok 102 - For format '%s : %1$s : %s' and arguments/result 'x y z'/'x : x : y' No unknown warnings ok 103 - pattern '%v' . chr 0 ok 104 - pattern '%v' . chr 1 ok 105 - pattern '%v' . chr 2 ok 106 - pattern '%v' . chr 3 ok 107 - pattern '%v' . chr 4 ok 108 - pattern '%v' . chr 5 ok 109 - pattern '%v' . chr 6 ok 110 - pattern '%v' . chr 7 ok 111 - pattern '%v' . chr 8 ok 112 - pattern '%v' . chr 9 ok 113 - pattern '%v' . chr 10 ok 114 - pattern '%v' . chr 11 ok 115 - pattern '%v' . chr 12 ok 116 - pattern '%v' . chr 13 ok 117 - pattern '%v' . chr 14 ok 118 - pattern '%v' . chr 15 ok 119 - pattern '%v' . chr 16 ok 120 - pattern '%v' . chr 17 ok 121 - pattern '%v' . chr 18 ok 122 - pattern '%v' . chr 19 ok 123 - pattern '%v' . chr 20 ok 124 - pattern '%v' . chr 21 ok 125 - pattern '%v' . chr 22 ok 126 - pattern '%v' . chr 23 ok 127 - pattern '%v' . chr 24 ok 128 - pattern '%v' . chr 25 ok 129 - pattern '%v' . chr 26 ok 130 - pattern '%v' . chr 27 ok 131 - pattern '%v' . chr 28 ok 132 - pattern '%v' . chr 29 ok 133 - pattern '%v' . chr 30 ok 134 - pattern '%v' . chr 31 ok 135 - pattern '%v' . chr 32 ok 136 - pattern '%v' . chr 33 ok 137 - pattern '%v' . chr 34 ok 138 - pattern '%v' . chr 35 ok 139 - pattern '%v' . chr 36 ok 140 - pattern '%v' . chr 37 ok 141 - pattern '%v' . chr 38 ok 142 - pattern '%v' . chr 39 ok 143 - pattern '%v' . chr 40 ok 144 - pattern '%v' . chr 41 ok 145 - pattern '%v' . chr 42 ok 146 - pattern '%v' . chr 43 ok 147 - pattern '%v' . chr 44 ok 148 - pattern '%v' . chr 45 ok 149 - pattern '%v' . chr 46 ok 150 - pattern '%v' . chr 47 ok 151 - pattern '%v' . chr 48 ok 152 - pattern '%v' . chr 49 ok 153 - pattern '%v' . chr 50 ok 154 - pattern '%v' . chr 51 ok 155 - pattern '%v' . chr 52 ok 156 - pattern '%v' . chr 53 ok 157 - pattern '%v' . chr 54 ok 158 - pattern '%v' . chr 55 ok 159 - pattern '%v' . chr 56 ok 160 - pattern '%v' . chr 57 ok 161 - pattern '%v' . chr 58 ok 162 - pattern '%v' . chr 59 ok 163 - pattern '%v' . chr 60 ok 164 - pattern '%v' . chr 61 ok 165 - pattern '%v' . chr 62 ok 166 - pattern '%v' . chr 63 ok 167 - pattern '%v' . chr 64 ok 168 - pattern '%v' . chr 65 ok 169 - pattern '%v' . chr 66 ok 170 - pattern '%v' . chr 67 ok 171 - pattern '%v' . chr 68 ok 172 - pattern '%v' . chr 69 ok 173 - pattern '%v' . chr 70 ok 174 - pattern '%v' . chr 71 ok 175 - pattern '%v' . chr 72 ok 176 - pattern '%v' . chr 73 ok 177 - pattern '%v' . chr 74 ok 178 - pattern '%v' . chr 75 ok 179 - pattern '%v' . chr 76 ok 180 - pattern '%v' . chr 77 ok 181 - pattern '%v' . chr 78 ok 182 - pattern '%v' . chr 79 ok 183 - pattern '%v' . chr 80 ok 184 - pattern '%v' . chr 81 ok 185 - pattern '%v' . chr 82 ok 186 - pattern '%v' . chr 83 ok 187 - pattern '%v' . chr 84 ok 188 - pattern '%v' . chr 85 ok 189 - pattern '%v' . chr 86 ok 190 - pattern '%v' . chr 87 ok 191 - pattern '%v' . chr 88 ok 192 - pattern '%v' . chr 89 ok 193 - pattern '%v' . chr 90 ok 194 - pattern '%v' . chr 91 ok 195 - pattern '%v' . chr 92 ok 196 - pattern '%v' . chr 93 ok 197 - pattern '%v' . chr 94 ok 198 - pattern '%v' . chr 95 ok 199 - pattern '%v' . chr 96 ok 200 - pattern '%v' . chr 97 ok 201 - pattern '%v' . chr 98 ok 202 - pattern '%v' . chr 99 ok 203 - pattern '%v' . chr 100 ok 204 - pattern '%v' . chr 101 ok 205 - pattern '%v' . chr 102 ok 206 - pattern '%v' . chr 103 ok 207 - pattern '%v' . chr 104 ok 208 - pattern '%v' . chr 105 ok 209 - pattern '%v' . chr 106 ok 210 - pattern '%v' . chr 107 ok 211 - pattern '%v' . chr 108 ok 212 - pattern '%v' . chr 109 ok 213 - pattern '%v' . chr 110 ok 214 - pattern '%v' . chr 111 ok 215 - pattern '%v' . chr 112 ok 216 - pattern '%v' . chr 113 ok 217 - pattern '%v' . chr 114 ok 218 - pattern '%v' . chr 115 ok 219 - pattern '%v' . chr 116 ok 220 - pattern '%v' . chr 117 ok 221 - pattern '%v' . chr 118 ok 222 - pattern '%v' . chr 119 ok 223 - pattern '%v' . chr 120 ok 224 - pattern '%v' . chr 121 ok 225 - pattern '%v' . chr 122 ok 226 - pattern '%v' . chr 123 ok 227 - pattern '%v' . chr 124 ok 228 - pattern '%v' . chr 125 ok 229 - pattern '%v' . chr 126 ok 230 - pattern '%v' . chr 127 ok 231 - pattern '%v' . chr 128 ok 232 - pattern '%v' . chr 129 ok 233 - pattern '%v' . chr 130 ok 234 - pattern '%v' . chr 131 ok 235 - pattern '%v' . chr 132 ok 236 - pattern '%v' . chr 133 ok 237 - pattern '%v' . chr 134 ok 238 - pattern '%v' . chr 135 ok 239 - pattern '%v' . chr 136 ok 240 - pattern '%v' . chr 137 ok 241 - pattern '%v' . chr 138 ok 242 - pattern '%v' . chr 139 ok 243 - pattern '%v' . chr 140 ok 244 - pattern '%v' . chr 141 ok 245 - pattern '%v' . chr 142 ok 246 - pattern '%v' . chr 143 ok 247 - pattern '%v' . chr 144 ok 248 - pattern '%v' . chr 145 ok 249 - pattern '%v' . chr 146 ok 250 - pattern '%v' . chr 147 ok 251 - pattern '%v' . chr 148 ok 252 - pattern '%v' . chr 149 ok 253 - pattern '%v' . chr 150 ok 254 - pattern '%v' . chr 151 ok 255 - pattern '%v' . chr 152 ok 256 - pattern '%v' . chr 153 ok 257 - pattern '%v' . chr 154 ok 258 - pattern '%v' . chr 155 ok 259 - pattern '%v' . chr 156 ok 260 - pattern '%v' . chr 157 ok 261 - pattern '%v' . chr 158 ok 262 - pattern '%v' . chr 159 ok 263 - pattern '%v' . chr 160 ok 264 - pattern '%v' . chr 161 ok 265 - pattern '%v' . chr 162 ok 266 - pattern '%v' . chr 163 ok 267 - pattern '%v' . chr 164 ok 268 - pattern '%v' . chr 165 ok 269 - pattern '%v' . chr 166 ok 270 - pattern '%v' . chr 167 ok 271 - pattern '%v' . chr 168 ok 272 - pattern '%v' . chr 169 ok 273 - pattern '%v' . chr 170 ok 274 - pattern '%v' . chr 171 ok 275 - pattern '%v' . chr 172 ok 276 - pattern '%v' . chr 173 ok 277 - pattern '%v' . chr 174 ok 278 - pattern '%v' . chr 175 ok 279 - pattern '%v' . chr 176 ok 280 - pattern '%v' . chr 177 ok 281 - pattern '%v' . chr 178 ok 282 - pattern '%v' . chr 179 ok 283 - pattern '%v' . chr 180 ok 284 - pattern '%v' . chr 181 ok 285 - pattern '%v' . chr 182 ok 286 - pattern '%v' . chr 183 ok 287 - pattern '%v' . chr 184 ok 288 - pattern '%v' . chr 185 ok 289 - pattern '%v' . chr 186 ok 290 - pattern '%v' . chr 187 ok 291 - pattern '%v' . chr 188 ok 292 - pattern '%v' . chr 189 ok 293 - pattern '%v' . chr 190 ok 294 - pattern '%v' . chr 191 ok 295 - pattern '%v' . chr 192 ok 296 - pattern '%v' . chr 193 ok 297 - pattern '%v' . chr 194 ok 298 - pattern '%v' . chr 195 ok 299 - pattern '%v' . chr 196 ok 300 - pattern '%v' . chr 197 ok 301 - pattern '%v' . chr 198 ok 302 - pattern '%v' . chr 199 ok 303 - pattern '%v' . chr 200 ok 304 - pattern '%v' . chr 201 ok 305 - pattern '%v' . chr 202 ok 306 - pattern '%v' . chr 203 ok 307 - pattern '%v' . chr 204 ok 308 - pattern '%v' . chr 205 ok 309 - pattern '%v' . chr 206 ok 310 - pattern '%v' . chr 207 ok 311 - pattern '%v' . chr 208 ok 312 - pattern '%v' . chr 209 ok 313 - pattern '%v' . chr 210 ok 314 - pattern '%v' . chr 211 ok 315 - pattern '%v' . chr 212 ok 316 - pattern '%v' . chr 213 ok 317 - pattern '%v' . chr 214 ok 318 - pattern '%v' . chr 215 ok 319 - pattern '%v' . chr 216 ok 320 - pattern '%v' . chr 217 ok 321 - pattern '%v' . chr 218 ok 322 - pattern '%v' . chr 219 ok 323 - pattern '%v' . chr 220 ok 324 - pattern '%v' . chr 221 ok 325 - pattern '%v' . chr 222 ok 326 - pattern '%v' . chr 223 ok 327 - pattern '%v' . chr 224 ok 328 - pattern '%v' . chr 225 ok 329 - pattern '%v' . chr 226 ok 330 - pattern '%v' . chr 227 ok 331 - pattern '%v' . chr 228 ok 332 - pattern '%v' . chr 229 ok 333 - pattern '%v' . chr 230 ok 334 - pattern '%v' . chr 231 ok 335 - pattern '%v' . chr 232 ok 336 - pattern '%v' . chr 233 ok 337 - pattern '%v' . chr 234 ok 338 - pattern '%v' . chr 235 ok 339 - pattern '%v' . chr 236 ok 340 - pattern '%v' . chr 237 ok 341 - pattern '%v' . chr 238 ok 342 - pattern '%v' . chr 239 ok 343 - pattern '%v' . chr 240 ok 344 - pattern '%v' . chr 241 ok 345 - pattern '%v' . chr 242 ok 346 - pattern '%v' . chr 243 ok 347 - pattern '%v' . chr 244 ok 348 - pattern '%v' . chr 245 ok 349 - pattern '%v' . chr 246 ok 350 - pattern '%v' . chr 247 ok 351 - pattern '%v' . chr 248 ok 352 - pattern '%v' . chr 249 ok 353 - pattern '%v' . chr 250 ok 354 - pattern '%v' . chr 251 ok 355 - pattern '%v' . chr 252 ok 356 - pattern '%v' . chr 253 ok 357 - pattern '%v' . chr 254 ok 358 - pattern '%v' . chr 255 ok 359 - sprintf("%--4d"\,0) ok 360 - sprintf("%---4d"\,0) ok 361 - sprintf("%----4d"\,0) ok 362 - sprintf("%---+4d"\,0) ok 363 - sprintf("%--- 4d"\,0) ok 364 - sprintf("%---04d"\,0) ok 365 - sprintf("%--+4d"\,0) ok 366 - sprintf("%--+-4d"\,0) ok 367 - sprintf("%--++4d"\,0) ok 368 - sprintf("%--+ 4d"\,0) ok 369 - sprintf("%--+04d"\,0) ok 370 - sprintf("%-- 4d"\,0) ok 371 - sprintf("%-- -4d"\,0) ok 372 - sprintf("%-- +4d"\,0) ok 373 - sprintf("%-- 4d"\,0) ok 374 - sprintf("%-- 04d"\,0) ok 375 - sprintf("%--04d"\,0) ok 376 - sprintf("%--0-4d"\,0) ok 377 - sprintf("%--0+4d"\,0) ok 378 - sprintf("%--0 4d"\,0) ok 379 - sprintf("%--004d"\,0) ok 380 - sprintf("%-+4d"\,0) ok 381 - sprintf("%-+-4d"\,0) ok 382 - sprintf("%-+--4d"\,0) ok 383 - sprintf("%-+-+4d"\,0) ok 384 - sprintf("%-+- 4d"\,0) ok 385 - sprintf("%-+-04d"\,0) ok 386 - sprintf("%-++4d"\,0) ok 387 - sprintf("%-++-4d"\,0) ok 388 - sprintf("%-+++4d"\,0) ok 389 - sprintf("%-++ 4d"\,0) ok 390 - sprintf("%-++04d"\,0) ok 391 - sprintf("%-+ 4d"\,0) ok 392 - sprintf("%-+ -4d"\,0) ok 393 - sprintf("%-+ +4d"\,0) ok 394 - sprintf("%-+ 4d"\,0) ok 395 - sprintf("%-+ 04d"\,0) ok 396 - sprintf("%-+04d"\,0) ok 397 - sprintf("%-+0-4d"\,0) ok 398 - sprintf("%-+0+4d"\,0) ok 399 - sprintf("%-+0 4d"\,0) ok 400 - sprintf("%-+004d"\,0) ok 401 - sprintf("%- 4d"\,0) ok 402 - sprintf("%- -4d"\,0) ok 403 - sprintf("%- --4d"\,0) ok 404 - sprintf("%- -+4d"\,0) ok 405 - sprintf("%- - 4d"\,0) ok 406 - sprintf("%- -04d"\,0) ok 407 - sprintf("%- +4d"\,0) ok 408 - sprintf("%- +-4d"\,0) ok 409 - sprintf("%- ++4d"\,0) ok 410 - sprintf("%- + 4d"\,0) ok 411 - sprintf("%- +04d"\,0) ok 412 - sprintf("%- 4d"\,0) ok 413 - sprintf("%- -4d"\,0) ok 414 - sprintf("%- +4d"\,0) ok 415 - sprintf("%- 4d"\,0) ok 416 - sprintf("%- 04d"\,0) ok 417 - sprintf("%- 04d"\,0) ok 418 - sprintf("%- 0-4d"\,0) ok 419 - sprintf("%- 0+4d"\,0) ok 420 - sprintf("%- 0 4d"\,0) ok 421 - sprintf("%- 004d"\,0) ok 422 - sprintf("%-04d"\,0) ok 423 - sprintf("%-0-4d"\,0) ok 424 - sprintf("%-0--4d"\,0) ok 425 - sprintf("%-0-+4d"\,0) ok 426 - sprintf("%-0- 4d"\,0) ok 427 - sprintf("%-0-04d"\,0) ok 428 - sprintf("%-0+4d"\,0) ok 429 - sprintf("%-0+-4d"\,0) ok 430 - sprintf("%-0++4d"\,0) ok 431 - sprintf("%-0+ 4d"\,0) ok 432 - sprintf("%-0+04d"\,0) ok 433 - sprintf("%-0 4d"\,0) ok 434 - sprintf("%-0 -4d"\,0) ok 435 - sprintf("%-0 +4d"\,0) ok 436 - sprintf("%-0 4d"\,0) ok 437 - sprintf("%-0 04d"\,0) ok 438 - sprintf("%-004d"\,0) ok 439 - sprintf("%-00-4d"\,0) ok 440 - sprintf("%-00+4d"\,0) ok 441 - sprintf("%-00 4d"\,0) ok 442 - sprintf("%-0004d"\,0) ok 443 - sprintf("%+-4d"\,0) ok 444 - sprintf("%+--4d"\,0) ok 445 - sprintf("%+---4d"\,0) ok 446 - sprintf("%+--+4d"\,0) ok 447 - sprintf("%+-- 4d"\,0) ok 448 - sprintf("%+--04d"\,0) ok 449 - sprintf("%+-+4d"\,0) ok 450 - sprintf("%+-+-4d"\,0) ok 451 - sprintf("%+-++4d"\,0) ok 452 - sprintf("%+-+ 4d"\,0) ok 453 - sprintf("%+-+04d"\,0) ok 454 - sprintf("%+- 4d"\,0) ok 455 - sprintf("%+- -4d"\,0) ok 456 - sprintf("%+- +4d"\,0) ok 457 - sprintf("%+- 4d"\,0) ok 458 - sprintf("%+- 04d"\,0) ok 459 - sprintf("%+-04d"\,0) ok 460 - sprintf("%+-0-4d"\,0) ok 461 - sprintf("%+-0+4d"\,0) ok 462 - sprintf("%+-0 4d"\,0) ok 463 - sprintf("%+-004d"\,0) ok 464 - sprintf("%++4d"\,0) ok 465 - sprintf("%++-4d"\,0) ok 466 - sprintf("%++--4d"\,0) ok 467 - sprintf("%++-+4d"\,0) ok 468 - sprintf("%++- 4d"\,0) ok 469 - sprintf("%++-04d"\,0) ok 470 - sprintf("%+++4d"\,0) ok 471 - sprintf("%+++-4d"\,0) ok 472 - sprintf("%++++4d"\,0) ok 473 - sprintf("%+++ 4d"\,0) ok 474 - sprintf("%+++04d"\,0) ok 475 - sprintf("%++ 4d"\,0) ok 476 - sprintf("%++ -4d"\,0) ok 477 - sprintf("%++ +4d"\,0) ok 478 - sprintf("%++ 4d"\,0) ok 479 - sprintf("%++ 04d"\,0) ok 480 - sprintf("%++04d"\,0) ok 481 - sprintf("%++0-4d"\,0) ok 482 - sprintf("%++0+4d"\,0) ok 483 - sprintf("%++0 4d"\,0) ok 484 - sprintf("%++004d"\,0) ok 485 - sprintf("%+ 4d"\,0) ok 486 - sprintf("%+ -4d"\,0) ok 487 - sprintf("%+ --4d"\,0) ok 488 - sprintf("%+ -+4d"\,0) ok 489 - sprintf("%+ - 4d"\,0) ok 490 - sprintf("%+ -04d"\,0) ok 491 - sprintf("%+ +4d"\,0) ok 492 - sprintf("%+ +-4d"\,0) ok 493 - sprintf("%+ ++4d"\,0) ok 494 - sprintf("%+ + 4d"\,0) ok 495 - sprintf("%+ +04d"\,0) ok 496 - sprintf("%+ 4d"\,0) ok 497 - sprintf("%+ -4d"\,0) ok 498 - sprintf("%+ +4d"\,0) ok 499 - sprintf("%+ 4d"\,0) ok 500 - sprintf("%+ 04d"\,0) ok 501 - sprintf("%+ 04d"\,0) ok 502 - sprintf("%+ 0-4d"\,0) ok 503 - sprintf("%+ 0+4d"\,0) ok 504 - sprintf("%+ 0 4d"\,0) ok 505 - sprintf("%+ 004d"\,0) ok 506 - sprintf("%+04d"\,0) ok 507 - sprintf("%+0-4d"\,0) ok 508 - sprintf("%+0--4d"\,0) ok 509 - sprintf("%+0-+4d"\,0) ok 510 - sprintf("%+0- 4d"\,0) ok 511 - sprintf("%+0-04d"\,0) ok 512 - sprintf("%+0+4d"\,0) ok 513 - sprintf("%+0+-4d"\,0) ok 514 - sprintf("%+0++4d"\,0) ok 515 - sprintf("%+0+ 4d"\,0) ok 516 - sprintf("%+0+04d"\,0) ok 517 - sprintf("%+0 4d"\,0) ok 518 - sprintf("%+0 -4d"\,0) ok 519 - sprintf("%+0 +4d"\,0) ok 520 - sprintf("%+0 4d"\,0) ok 521 - sprintf("%+0 04d"\,0) ok 522 - sprintf("%+004d"\,0) ok 523 - sprintf("%+00-4d"\,0) ok 524 - sprintf("%+00+4d"\,0) ok 525 - sprintf("%+00 4d"\,0) ok 526 - sprintf("%+0004d"\,0) ok 527 - sprintf("% -4d"\,0) ok 528 - sprintf("% --4d"\,0) ok 529 - sprintf("% ---4d"\,0) ok 530 - sprintf("% --+4d"\,0) ok 531 - sprintf("% -- 4d"\,0) ok 532 - sprintf("% --04d"\,0) ok 533 - sprintf("% -+4d"\,0) ok 534 - sprintf("% -+-4d"\,0) ok 535 - sprintf("% -++4d"\,0) ok 536 - sprintf("% -+ 4d"\,0) ok 537 - sprintf("% -+04d"\,0) ok 538 - sprintf("% - 4d"\,0) ok 539 - sprintf("% - -4d"\,0) ok 540 - sprintf("% - +4d"\,0) ok 541 - sprintf("% - 4d"\,0) ok 542 - sprintf("% - 04d"\,0) ok 543 - sprintf("% -04d"\,0) ok 544 - sprintf("% -0-4d"\,0) ok 545 - sprintf("% -0+4d"\,0) ok 546 - sprintf("% -0 4d"\,0) ok 547 - sprintf("% -004d"\,0) ok 548 - sprintf("% +4d"\,0) ok 549 - sprintf("% +-4d"\,0) ok 550 - sprintf("% +--4d"\,0) ok 551 - sprintf("% +-+4d"\,0) ok 552 - sprintf("% +- 4d"\,0) ok 553 - sprintf("% +-04d"\,0) ok 554 - sprintf("% ++4d"\,0) ok 555 - sprintf("% ++-4d"\,0) ok 556 - sprintf("% +++4d"\,0) ok 557 - sprintf("% ++ 4d"\,0) ok 558 - sprintf("% ++04d"\,0) ok 559 - sprintf("% + 4d"\,0) ok 560 - sprintf("% + -4d"\,0) ok 561 - sprintf("% + +4d"\,0) ok 562 - sprintf("% + 4d"\,0) ok 563 - sprintf("% + 04d"\,0) ok 564 - sprintf("% +04d"\,0) ok 565 - sprintf("% +0-4d"\,0) ok 566 - sprintf("% +0+4d"\,0) ok 567 - sprintf("% +0 4d"\,0) ok 568 - sprintf("% +004d"\,0) ok 569 - sprintf("% 4d"\,0) ok 570 - sprintf("% -4d"\,0) ok 571 - sprintf("% --4d"\,0) ok 572 - sprintf("% -+4d"\,0) ok 573 - sprintf("% - 4d"\,0) ok 574 - sprintf("% -04d"\,0) ok 575 - sprintf("% +4d"\,0) ok 576 - sprintf("% +-4d"\,0) ok 577 - sprintf("% ++4d"\,0) ok 578 - sprintf("% + 4d"\,0) ok 579 - sprintf("% +04d"\,0) ok 580 - sprintf("% 4d"\,0) ok 581 - sprintf("% -4d"\,0) ok 582 - sprintf("% +4d"\,0) ok 583 - sprintf("% 4d"\,0) ok 584 - sprintf("% 04d"\,0) ok 585 - sprintf("% 04d"\,0) ok 586 - sprintf("% 0-4d"\,0) ok 587 - sprintf("% 0+4d"\,0) ok 588 - sprintf("% 0 4d"\,0) ok 589 - sprintf("% 004d"\,0) ok 590 - sprintf("% 04d"\,0) ok 591 - sprintf("% 0-4d"\,0) ok 592 - sprintf("% 0--4d"\,0) ok 593 - sprintf("% 0-+4d"\,0) ok 594 - sprintf("% 0- 4d"\,0) ok 595 - sprintf("% 0-04d"\,0) ok 596 - sprintf("% 0+4d"\,0) ok 597 - sprintf("% 0+-4d"\,0) ok 598 - sprintf("% 0++4d"\,0) ok 599 - sprintf("% 0+ 4d"\,0) ok 600 - sprintf("% 0+04d"\,0) ok 601 - sprintf("% 0 4d"\,0) ok 602 - sprintf("% 0 -4d"\,0) ok 603 - sprintf("% 0 +4d"\,0) ok 604 - sprintf("% 0 4d"\,0) ok 605 - sprintf("% 0 04d"\,0) ok 606 - sprintf("% 004d"\,0) ok 607 - sprintf("% 00-4d"\,0) ok 608 - sprintf("% 00+4d"\,0) ok 609 - sprintf("% 00 4d"\,0) ok 610 - sprintf("% 0004d"\,0) ok 611 - sprintf("%0-4d"\,0) ok 612 - sprintf("%0--4d"\,0) ok 613 - sprintf("%0---4d"\,0) ok 614 - sprintf("%0--+4d"\,0) ok 615 - sprintf("%0-- 4d"\,0) ok 616 - sprintf("%0--04d"\,0) ok 617 - sprintf("%0-+4d"\,0) ok 618 - sprintf("%0-+-4d"\,0) ok 619 - sprintf("%0-++4d"\,0) ok 620 - sprintf("%0-+ 4d"\,0) ok 621 - sprintf("%0-+04d"\,0) ok 622 - sprintf("%0- 4d"\,0) ok 623 - sprintf("%0- -4d"\,0) ok 624 - sprintf("%0- +4d"\,0) ok 625 - sprintf("%0- 4d"\,0) ok 626 - sprintf("%0- 04d"\,0) ok 627 - sprintf("%0-04d"\,0) ok 628 - sprintf("%0-0-4d"\,0) ok 629 - sprintf("%0-0+4d"\,0) ok 630 - sprintf("%0-0 4d"\,0) ok 631 - sprintf("%0-004d"\,0) ok 632 - sprintf("%0+4d"\,0) ok 633 - sprintf("%0+-4d"\,0) ok 634 - sprintf("%0+--4d"\,0) ok 635 - sprintf("%0+-+4d"\,0) ok 636 - sprintf("%0+- 4d"\,0) ok 637 - sprintf("%0+-04d"\,0) ok 638 - sprintf("%0++4d"\,0) ok 639 - sprintf("%0++-4d"\,0) ok 640 - sprintf("%0+++4d"\,0) ok 641 - sprintf("%0++ 4d"\,0) ok 642 - sprintf("%0++04d"\,0) ok 643 - sprintf("%0+ 4d"\,0) ok 644 - sprintf("%0+ -4d"\,0) ok 645 - sprintf("%0+ +4d"\,0) ok 646 - sprintf("%0+ 4d"\,0) ok 647 - sprintf("%0+ 04d"\,0) ok 648 - sprintf("%0+04d"\,0) ok 649 - sprintf("%0+0-4d"\,0) ok 650 - sprintf("%0+0+4d"\,0) ok 651 - sprintf("%0+0 4d"\,0) ok 652 - sprintf("%0+004d"\,0) ok 653 - sprintf("%0 4d"\,0) ok 654 - sprintf("%0 -4d"\,0) ok 655 - sprintf("%0 --4d"\,0) ok 656 - sprintf("%0 -+4d"\,0) ok 657 - sprintf("%0 - 4d"\,0) ok 658 - sprintf("%0 -04d"\,0) ok 659 - sprintf("%0 +4d"\,0) ok 660 - sprintf("%0 +-4d"\,0) ok 661 - sprintf("%0 ++4d"\,0) ok 662 - sprintf("%0 + 4d"\,0) ok 663 - sprintf("%0 +04d"\,0) ok 664 - sprintf("%0 4d"\,0) ok 665 - sprintf("%0 -4d"\,0) ok 666 - sprintf("%0 +4d"\,0) ok 667 - sprintf("%0 4d"\,0) ok 668 - sprintf("%0 04d"\,0) ok 669 - sprintf("%0 04d"\,0) ok 670 - sprintf("%0 0-4d"\,0) ok 671 - sprintf("%0 0+4d"\,0) ok 672 - sprintf("%0 0 4d"\,0) ok 673 - sprintf("%0 004d"\,0) ok 674 - sprintf("%004d"\,0) ok 675 - sprintf("%00-4d"\,0) ok 676 - sprintf("%00--4d"\,0) ok 677 - sprintf("%00-+4d"\,0) ok 678 - sprintf("%00- 4d"\,0) ok 679 - sprintf("%00-04d"\,0) ok 680 - sprintf("%00+4d"\,0) ok 681 - sprintf("%00+-4d"\,0) ok 682 - sprintf("%00++4d"\,0) ok 683 - sprintf("%00+ 4d"\,0) ok 684 - sprintf("%00+04d"\,0) ok 685 - sprintf("%00 4d"\,0) ok 686 - sprintf("%00 -4d"\,0) ok 687 - sprintf("%00 +4d"\,0) ok 688 - sprintf("%00 4d"\,0) ok 689 - sprintf("%00 04d"\,0) ok 690 - sprintf("%0004d"\,0) ok 691 - sprintf("%000-4d"\,0) ok 692 - sprintf("%000+4d"\,0) ok 693 - sprintf("%000 4d"\,0) ok 694 - sprintf("%00004d"\,0) ok 695 - sprintf("%--4d"\,-1) ok 696 - sprintf("%---4d"\,-1) ok 697 - sprintf("%----4d"\,-1) ok 698 - sprintf("%---+4d"\,-1) ok 699 - sprintf("%--- 4d"\,-1) ok 700 - sprintf("%---04d"\,-1) ok 701 - sprintf("%--+4d"\,-1) ok 702 - sprintf("%--+-4d"\,-1) ok 703 - sprintf("%--++4d"\,-1) ok 704 - sprintf("%--+ 4d"\,-1) ok 705 - sprintf("%--+04d"\,-1) ok 706 - sprintf("%-- 4d"\,-1) ok 707 - sprintf("%-- -4d"\,-1) ok 708 - sprintf("%-- +4d"\,-1) ok 709 - sprintf("%-- 4d"\,-1) ok 710 - sprintf("%-- 04d"\,-1) ok 711 - sprintf("%--04d"\,-1) ok 712 - sprintf("%--0-4d"\,-1) ok 713 - sprintf("%--0+4d"\,-1) ok 714 - sprintf("%--0 4d"\,-1) ok 715 - sprintf("%--004d"\,-1) ok 716 - sprintf("%-+4d"\,-1) ok 717 - sprintf("%-+-4d"\,-1) ok 718 - sprintf("%-+--4d"\,-1) ok 719 - sprintf("%-+-+4d"\,-1) ok 720 - sprintf("%-+- 4d"\,-1) ok 721 - sprintf("%-+-04d"\,-1) ok 722 - sprintf("%-++4d"\,-1) ok 723 - sprintf("%-++-4d"\,-1) ok 724 - sprintf("%-+++4d"\,-1) ok 725 - sprintf("%-++ 4d"\,-1) ok 726 - sprintf("%-++04d"\,-1) ok 727 - sprintf("%-+ 4d"\,-1) ok 728 - sprintf("%-+ -4d"\,-1) ok 729 - sprintf("%-+ +4d"\,-1) ok 730 - sprintf("%-+ 4d"\,-1) ok 731 - sprintf("%-+ 04d"\,-1) ok 732 - sprintf("%-+04d"\,-1) ok 733 - sprintf("%-+0-4d"\,-1) ok 734 - sprintf("%-+0+4d"\,-1) ok 735 - sprintf("%-+0 4d"\,-1) ok 736 - sprintf("%-+004d"\,-1) ok 737 - sprintf("%- 4d"\,-1) ok 738 - sprintf("%- -4d"\,-1) ok 739 - sprintf("%- --4d"\,-1) ok 740 - sprintf("%- -+4d"\,-1) ok 741 - sprintf("%- - 4d"\,-1) ok 742 - sprintf("%- -04d"\,-1) ok 743 - sprintf("%- +4d"\,-1) ok 744 - sprintf("%- +-4d"\,-1) ok 745 - sprintf("%- ++4d"\,-1) ok 746 - sprintf("%- + 4d"\,-1) ok 747 - sprintf("%- +04d"\,-1) ok 748 - sprintf("%- 4d"\,-1) ok 749 - sprintf("%- -4d"\,-1) ok 750 - sprintf("%- +4d"\,-1) ok 751 - sprintf("%- 4d"\,-1) ok 752 - sprintf("%- 04d"\,-1) ok 753 - sprintf("%- 04d"\,-1) ok 754 - sprintf("%- 0-4d"\,-1) ok 755 - sprintf("%- 0+4d"\,-1) ok 756 - sprintf("%- 0 4d"\,-1) ok 757 - sprintf("%- 004d"\,-1) ok 758 - sprintf("%-04d"\,-1) ok 759 - sprintf("%-0-4d"\,-1) ok 760 - sprintf("%-0--4d"\,-1) ok 761 - sprintf("%-0-+4d"\,-1) ok 762 - sprintf("%-0- 4d"\,-1) ok 763 - sprintf("%-0-04d"\,-1) ok 764 - sprintf("%-0+4d"\,-1) ok 765 - sprintf("%-0+-4d"\,-1) ok 766 - sprintf("%-0++4d"\,-1) ok 767 - sprintf("%-0+ 4d"\,-1) ok 768 - sprintf("%-0+04d"\,-1) ok 769 - sprintf("%-0 4d"\,-1) ok 770 - sprintf("%-0 -4d"\,-1) ok 771 - sprintf("%-0 +4d"\,-1) ok 772 - sprintf("%-0 4d"\,-1) ok 773 - sprintf("%-0 04d"\,-1) ok 774 - sprintf("%-004d"\,-1) ok 775 - sprintf("%-00-4d"\,-1) ok 776 - sprintf("%-00+4d"\,-1) ok 777 - sprintf("%-00 4d"\,-1) ok 778 - sprintf("%-0004d"\,-1) ok 779 - sprintf("%+-4d"\,-1) ok 780 - sprintf("%+--4d"\,-1) ok 781 - sprintf("%+---4d"\,-1) ok 782 - sprintf("%+--+4d"\,-1) ok 783 - sprintf("%+-- 4d"\,-1) ok 784 - sprintf("%+--04d"\,-1) ok 785 - sprintf("%+-+4d"\,-1) ok 786 - sprintf("%+-+-4d"\,-1) ok 787 - sprintf("%+-++4d"\,-1) ok 788 - sprintf("%+-+ 4d"\,-1) ok 789 - sprintf("%+-+04d"\,-1) ok 790 - sprintf("%+- 4d"\,-1) ok 791 - sprintf("%+- -4d"\,-1) ok 792 - sprintf("%+- +4d"\,-1) ok 793 - sprintf("%+- 4d"\,-1) ok 794 - sprintf("%+- 04d"\,-1) ok 795 - sprintf("%+-04d"\,-1) ok 796 - sprintf("%+-0-4d"\,-1) ok 797 - sprintf("%+-0+4d"\,-1) ok 798 - sprintf("%+-0 4d"\,-1) ok 799 - sprintf("%+-004d"\,-1) ok 800 - sprintf("%++4d"\,-1) ok 801 - sprintf("%++-4d"\,-1) ok 802 - sprintf("%++--4d"\,-1) ok 803 - sprintf("%++-+4d"\,-1) ok 804 - sprintf("%++- 4d"\,-1) ok 805 - sprintf("%++-04d"\,-1) ok 806 - sprintf("%+++4d"\,-1) ok 807 - sprintf("%+++-4d"\,-1) ok 808 - sprintf("%++++4d"\,-1) ok 809 - sprintf("%+++ 4d"\,-1) ok 810 - sprintf("%+++04d"\,-1) ok 811 - sprintf("%++ 4d"\,-1) ok 812 - sprintf("%++ -4d"\,-1) ok 813 - sprintf("%++ +4d"\,-1) ok 814 - sprintf("%++ 4d"\,-1) ok 815 - sprintf("%++ 04d"\,-1) ok 816 - sprintf("%++04d"\,-1) ok 817 - sprintf("%++0-4d"\,-1) ok 818 - sprintf("%++0+4d"\,-1) ok 819 - sprintf("%++0 4d"\,-1) ok 820 - sprintf("%++004d"\,-1) ok 821 - sprintf("%+ 4d"\,-1) ok 822 - sprintf("%+ -4d"\,-1) ok 823 - sprintf("%+ --4d"\,-1) ok 824 - sprintf("%+ -+4d"\,-1) ok 825 - sprintf("%+ - 4d"\,-1) ok 826 - sprintf("%+ -04d"\,-1) ok 827 - sprintf("%+ +4d"\,-1) ok 828 - sprintf("%+ +-4d"\,-1) ok 829 - sprintf("%+ ++4d"\,-1) ok 830 - sprintf("%+ + 4d"\,-1) ok 831 - sprintf("%+ +04d"\,-1) ok 832 - sprintf("%+ 4d"\,-1) ok 833 - sprintf("%+ -4d"\,-1) ok 834 - sprintf("%+ +4d"\,-1) ok 835 - sprintf("%+ 4d"\,-1) ok 836 - sprintf("%+ 04d"\,-1) ok 837 - sprintf("%+ 04d"\,-1) ok 838 - sprintf("%+ 0-4d"\,-1) ok 839 - sprintf("%+ 0+4d"\,-1) ok 840 - sprintf("%+ 0 4d"\,-1) ok 841 - sprintf("%+ 004d"\,-1) ok 842 - sprintf("%+04d"\,-1) ok 843 - sprintf("%+0-4d"\,-1) ok 844 - sprintf("%+0--4d"\,-1) ok 845 - sprintf("%+0-+4d"\,-1) ok 846 - sprintf("%+0- 4d"\,-1) ok 847 - sprintf("%+0-04d"\,-1) ok 848 - sprintf("%+0+4d"\,-1) ok 849 - sprintf("%+0+-4d"\,-1) ok 850 - sprintf("%+0++4d"\,-1) ok 851 - sprintf("%+0+ 4d"\,-1) ok 852 - sprintf("%+0+04d"\,-1) ok 853 - sprintf("%+0 4d"\,-1) ok 854 - sprintf("%+0 -4d"\,-1) ok 855 - sprintf("%+0 +4d"\,-1) ok 856 - sprintf("%+0 4d"\,-1) ok 857 - sprintf("%+0 04d"\,-1) ok 858 - sprintf("%+004d"\,-1) ok 859 - sprintf("%+00-4d"\,-1) ok 860 - sprintf("%+00+4d"\,-1) ok 861 - sprintf("%+00 4d"\,-1) ok 862 - sprintf("%+0004d"\,-1) ok 863 - sprintf("% -4d"\,-1) ok 864 - sprintf("% --4d"\,-1) ok 865 - sprintf("% ---4d"\,-1) ok 866 - sprintf("% --+4d"\,-1) ok 867 - sprintf("% -- 4d"\,-1) ok 868 - sprintf("% --04d"\,-1) ok 869 - sprintf("% -+4d"\,-1) ok 870 - sprintf("% -+-4d"\,-1) ok 871 - sprintf("% -++4d"\,-1) ok 872 - sprintf("% -+ 4d"\,-1) ok 873 - sprintf("% -+04d"\,-1) ok 874 - sprintf("% - 4d"\,-1) ok 875 - sprintf("% - -4d"\,-1) ok 876 - sprintf("% - +4d"\,-1) ok 877 - sprintf("% - 4d"\,-1) ok 878 - sprintf("% - 04d"\,-1) ok 879 - sprintf("% -04d"\,-1) ok 880 - sprintf("% -0-4d"\,-1) ok 881 - sprintf("% -0+4d"\,-1) ok 882 - sprintf("% -0 4d"\,-1) ok 883 - sprintf("% -004d"\,-1) ok 884 - sprintf("% +4d"\,-1) ok 885 - sprintf("% +-4d"\,-1) ok 886 - sprintf("% +--4d"\,-1) ok 887 - sprintf("% +-+4d"\,-1) ok 888 - sprintf("% +- 4d"\,-1) ok 889 - sprintf("% +-04d"\,-1) ok 890 - sprintf("% ++4d"\,-1) ok 891 - sprintf("% ++-4d"\,-1) ok 892 - sprintf("% +++4d"\,-1) ok 893 - sprintf("% ++ 4d"\,-1) ok 894 - sprintf("% ++04d"\,-1) ok 895 - sprintf("% + 4d"\,-1) ok 896 - sprintf("% + -4d"\,-1) ok 897 - sprintf("% + +4d"\,-1) ok 898 - sprintf("% + 4d"\,-1) ok 899 - sprintf("% + 04d"\,-1) ok 900 - sprintf("% +04d"\,-1) ok 901 - sprintf("% +0-4d"\,-1) ok 902 - sprintf("% +0+4d"\,-1) ok 903 - sprintf("% +0 4d"\,-1) ok 904 - sprintf("% +004d"\,-1) ok 905 - sprintf("% 4d"\,-1) ok 906 - sprintf("% -4d"\,-1) ok 907 - sprintf("% --4d"\,-1) ok 908 - sprintf("% -+4d"\,-1) ok 909 - sprintf("% - 4d"\,-1) ok 910 - sprintf("% -04d"\,-1) ok 911 - sprintf("% +4d"\,-1) ok 912 - sprintf("% +-4d"\,-1) ok 913 - sprintf("% ++4d"\,-1) ok 914 - sprintf("% + 4d"\,-1) ok 915 - sprintf("% +04d"\,-1) ok 916 - sprintf("% 4d"\,-1) ok 917 - sprintf("% -4d"\,-1) ok 918 - sprintf("% +4d"\,-1) ok 919 - sprintf("% 4d"\,-1) ok 920 - sprintf("% 04d"\,-1) ok 921 - sprintf("% 04d"\,-1) ok 922 - sprintf("% 0-4d"\,-1) ok 923 - sprintf("% 0+4d"\,-1) ok 924 - sprintf("% 0 4d"\,-1) ok 925 - sprintf("% 004d"\,-1) ok 926 - sprintf("% 04d"\,-1) ok 927 - sprintf("% 0-4d"\,-1) ok 928 - sprintf("% 0--4d"\,-1) ok 929 - sprintf("% 0-+4d"\,-1) ok 930 - sprintf("% 0- 4d"\,-1) ok 931 - sprintf("% 0-04d"\,-1) ok 932 - sprintf("% 0+4d"\,-1) ok 933 - sprintf("% 0+-4d"\,-1) ok 934 - sprintf("% 0++4d"\,-1) ok 935 - sprintf("% 0+ 4d"\,-1) ok 936 - sprintf("% 0+04d"\,-1) ok 937 - sprintf("% 0 4d"\,-1) ok 938 - sprintf("% 0 -4d"\,-1) ok 939 - sprintf("% 0 +4d"\,-1) ok 940 - sprintf("% 0 4d"\,-1) ok 941 - sprintf("% 0 04d"\,-1) ok 942 - sprintf("% 004d"\,-1) ok 943 - sprintf("% 00-4d"\,-1) ok 944 - sprintf("% 00+4d"\,-1) ok 945 - sprintf("% 00 4d"\,-1) ok 946 - sprintf("% 0004d"\,-1) ok 947 - sprintf("%0-4d"\,-1) ok 948 - sprintf("%0--4d"\,-1) ok 949 - sprintf("%0---4d"\,-1) ok 950 - sprintf("%0--+4d"\,-1) ok 951 - sprintf("%0-- 4d"\,-1) ok 952 - sprintf("%0--04d"\,-1) ok 953 - sprintf("%0-+4d"\,-1) ok 954 - sprintf("%0-+-4d"\,-1) ok 955 - sprintf("%0-++4d"\,-1) ok 956 - sprintf("%0-+ 4d"\,-1) ok 957 - sprintf("%0-+04d"\,-1) ok 958 - sprintf("%0- 4d"\,-1) ok 959 - sprintf("%0- -4d"\,-1) ok 960 - sprintf("%0- +4d"\,-1) ok 961 - sprintf("%0- 4d"\,-1) ok 962 - sprintf("%0- 04d"\,-1) ok 963 - sprintf("%0-04d"\,-1) ok 964 - sprintf("%0-0-4d"\,-1) ok 965 - sprintf("%0-0+4d"\,-1) ok 966 - sprintf("%0-0 4d"\,-1) ok 967 - sprintf("%0-004d"\,-1) ok 968 - sprintf("%0+4d"\,-1) ok 969 - sprintf("%0+-4d"\,-1) ok 970 - sprintf("%0+--4d"\,-1) ok 971 - sprintf("%0+-+4d"\,-1) ok 972 - sprintf("%0+- 4d"\,-1) ok 973 - sprintf("%0+-04d"\,-1) ok 974 - sprintf("%0++4d"\,-1) ok 975 - sprintf("%0++-4d"\,-1) ok 976 - sprintf("%0+++4d"\,-1) ok 977 - sprintf("%0++ 4d"\,-1) ok 978 - sprintf("%0++04d"\,-1) ok 979 - sprintf("%0+ 4d"\,-1) ok 980 - sprintf("%0+ -4d"\,-1) ok 981 - sprintf("%0+ +4d"\,-1) ok 982 - sprintf("%0+ 4d"\,-1) ok 983 - sprintf("%0+ 04d"\,-1) ok 984 - sprintf("%0+04d"\,-1) ok 985 - sprintf("%0+0-4d"\,-1) ok 986 - sprintf("%0+0+4d"\,-1) ok 987 - sprintf("%0+0 4d"\,-1) ok 988 - sprintf("%0+004d"\,-1) ok 989 - sprintf("%0 4d"\,-1) ok 990 - sprintf("%0 -4d"\,-1) ok 991 - sprintf("%0 --4d"\,-1) ok 992 - sprintf("%0 -+4d"\,-1) ok 993 - sprintf("%0 - 4d"\,-1) ok 994 - sprintf("%0 -04d"\,-1) ok 995 - sprintf("%0 +4d"\,-1) ok 996 - sprintf("%0 +-4d"\,-1) ok 997 - sprintf("%0 ++4d"\,-1) ok 998 - sprintf("%0 + 4d"\,-1) ok 999 - sprintf("%0 +04d"\,-1) ok 1000 - sprintf("%0 4d"\,-1) ok 1001 - sprintf("%0 -4d"\,-1) ok 1002 - sprintf("%0 +4d"\,-1) ok 1003 - sprintf("%0 4d"\,-1) ok 1004 - sprintf("%0 04d"\,-1) ok 1005 - sprintf("%0 04d"\,-1) ok 1006 - sprintf("%0 0-4d"\,-1) ok 1007 - sprintf("%0 0+4d"\,-1) ok 1008 - sprintf("%0 0 4d"\,-1) ok 1009 - sprintf("%0 004d"\,-1) ok 1010 - sprintf("%004d"\,-1) ok 1011 - sprintf("%00-4d"\,-1) ok 1012 - sprintf("%00--4d"\,-1) ok 1013 - sprintf("%00-+4d"\,-1) ok 1014 - sprintf("%00- 4d"\,-1) ok 1015 - sprintf("%00-04d"\,-1) ok 1016 - sprintf("%00+4d"\,-1) ok 1017 - sprintf("%00+-4d"\,-1) ok 1018 - sprintf("%00++4d"\,-1) ok 1019 - sprintf("%00+ 4d"\,-1) ok 1020 - sprintf("%00+04d"\,-1) ok 1021 - sprintf("%00 4d"\,-1) ok 1022 - sprintf("%00 -4d"\,-1) ok 1023 - sprintf("%00 +4d"\,-1) ok 1024 - sprintf("%00 4d"\,-1) ok 1025 - sprintf("%00 04d"\,-1) ok 1026 - sprintf("%0004d"\,-1) ok 1027 - sprintf("%000-4d"\,-1) ok 1028 - sprintf("%000+4d"\,-1) ok 1029 - sprintf("%000 4d"\,-1) ok 1030 - sprintf("%00004d"\,-1) ok 1031 - sprintf("%--4d"\,1) ok 1032 - sprintf("%---4d"\,1) ok 1033 - sprintf("%----4d"\,1) ok 1034 - sprintf("%---+4d"\,1) ok 1035 - sprintf("%--- 4d"\,1) ok 1036 - sprintf("%---04d"\,1) ok 1037 - sprintf("%--+4d"\,1) ok 1038 - sprintf("%--+-4d"\,1) ok 1039 - sprintf("%--++4d"\,1) ok 1040 - sprintf("%--+ 4d"\,1) ok 1041 - sprintf("%--+04d"\,1) ok 1042 - sprintf("%-- 4d"\,1) ok 1043 - sprintf("%-- -4d"\,1) ok 1044 - sprintf("%-- +4d"\,1) ok 1045 - sprintf("%-- 4d"\,1) ok 1046 - sprintf("%-- 04d"\,1) ok 1047 - sprintf("%--04d"\,1) ok 1048 - sprintf("%--0-4d"\,1) ok 1049 - sprintf("%--0+4d"\,1) ok 1050 - sprintf("%--0 4d"\,1) ok 1051 - sprintf("%--004d"\,1) ok 1052 - sprintf("%-+4d"\,1) ok 1053 - sprintf("%-+-4d"\,1) ok 1054 - sprintf("%-+--4d"\,1) ok 1055 - sprintf("%-+-+4d"\,1) ok 1056 - sprintf("%-+- 4d"\,1) ok 1057 - sprintf("%-+-04d"\,1) ok 1058 - sprintf("%-++4d"\,1) ok 1059 - sprintf("%-++-4d"\,1) ok 1060 - sprintf("%-+++4d"\,1) ok 1061 - sprintf("%-++ 4d"\,1) ok 1062 - sprintf("%-++04d"\,1) ok 1063 - sprintf("%-+ 4d"\,1) ok 1064 - sprintf("%-+ -4d"\,1) ok 1065 - sprintf("%-+ +4d"\,1) ok 1066 - sprintf("%-+ 4d"\,1) ok 1067 - sprintf("%-+ 04d"\,1) ok 1068 - sprintf("%-+04d"\,1) ok 1069 - sprintf("%-+0-4d"\,1) ok 1070 - sprintf("%-+0+4d"\,1) ok 1071 - sprintf("%-+0 4d"\,1) ok 1072 - sprintf("%-+004d"\,1) ok 1073 - sprintf("%- 4d"\,1) ok 1074 - sprintf("%- -4d"\,1) ok 1075 - sprintf("%- --4d"\,1) ok 1076 - sprintf("%- -+4d"\,1) ok 1077 - sprintf("%- - 4d"\,1) ok 1078 - sprintf("%- -04d"\,1) ok 1079 - sprintf("%- +4d"\,1) ok 1080 - sprintf("%- +-4d"\,1) ok 1081 - sprintf("%- ++4d"\,1) ok 1082 - sprintf("%- + 4d"\,1) ok 1083 - sprintf("%- +04d"\,1) ok 1084 - sprintf("%- 4d"\,1) ok 1085 - sprintf("%- -4d"\,1) ok 1086 - sprintf("%- +4d"\,1) ok 1087 - sprintf("%- 4d"\,1) ok 1088 - sprintf("%- 04d"\,1) ok 1089 - sprintf("%- 04d"\,1) ok 1090 - sprintf("%- 0-4d"\,1) ok 1091 - sprintf("%- 0+4d"\,1) ok 1092 - sprintf("%- 0 4d"\,1) ok 1093 - sprintf("%- 004d"\,1) ok 1094 - sprintf("%-04d"\,1) ok 1095 - sprintf("%-0-4d"\,1) ok 1096 - sprintf("%-0--4d"\,1) ok 1097 - sprintf("%-0-+4d"\,1) ok 1098 - sprintf("%-0- 4d"\,1) ok 1099 - sprintf("%-0-04d"\,1) ok 1100 - sprintf("%-0+4d"\,1) ok 1101 - sprintf("%-0+-4d"\,1) ok 1102 - sprintf("%-0++4d"\,1) ok 1103 - sprintf("%-0+ 4d"\,1) ok 1104 - sprintf("%-0+04d"\,1) ok 1105 - sprintf("%-0 4d"\,1) ok 1106 - sprintf("%-0 -4d"\,1) ok 1107 - sprintf("%-0 +4d"\,1) ok 1108 - sprintf("%-0 4d"\,1) ok 1109 - sprintf("%-0 04d"\,1) ok 1110 - sprintf("%-004d"\,1) ok 1111 - sprintf("%-00-4d"\,1) ok 1112 - sprintf("%-00+4d"\,1) ok 1113 - sprintf("%-00 4d"\,1) ok 1114 - sprintf("%-0004d"\,1) ok 1115 - sprintf("%+-4d"\,1) ok 1116 - sprintf("%+--4d"\,1) ok 1117 - sprintf("%+---4d"\,1) ok 1118 - sprintf("%+--+4d"\,1) ok 1119 - sprintf("%+-- 4d"\,1) ok 1120 - sprintf("%+--04d"\,1) ok 1121 - sprintf("%+-+4d"\,1) ok 1122 - sprintf("%+-+-4d"\,1) ok 1123 - sprintf("%+-++4d"\,1) ok 1124 - sprintf("%+-+ 4d"\,1) ok 1125 - sprintf("%+-+04d"\,1) ok 1126 - sprintf("%+- 4d"\,1) ok 1127 - sprintf("%+- -4d"\,1) ok 1128 - sprintf("%+- +4d"\,1) ok 1129 - sprintf("%+- 4d"\,1) ok 1130 - sprintf("%+- 04d"\,1) ok 1131 - sprintf("%+-04d"\,1) ok 1132 - sprintf("%+-0-4d"\,1) ok 1133 - sprintf("%+-0+4d"\,1) ok 1134 - sprintf("%+-0 4d"\,1) ok 1135 - sprintf("%+-004d"\,1) ok 1136 - sprintf("%++4d"\,1) ok 1137 - sprintf("%++-4d"\,1) ok 1138 - sprintf("%++--4d"\,1) ok 1139 - sprintf("%++-+4d"\,1) ok 1140 - sprintf("%++- 4d"\,1) ok 1141 - sprintf("%++-04d"\,1) ok 1142 - sprintf("%+++4d"\,1) ok 1143 - sprintf("%+++-4d"\,1) ok 1144 - sprintf("%++++4d"\,1) ok 1145 - sprintf("%+++ 4d"\,1) ok 1146 - sprintf("%+++04d"\,1) ok 1147 - sprintf("%++ 4d"\,1) ok 1148 - sprintf("%++ -4d"\,1) ok 1149 - sprintf("%++ +4d"\,1) ok 1150 - sprintf("%++ 4d"\,1) ok 1151 - sprintf("%++ 04d"\,1) ok 1152 - sprintf("%++04d"\,1) ok 1153 - sprintf("%++0-4d"\,1) ok 1154 - sprintf("%++0+4d"\,1) ok 1155 - sprintf("%++0 4d"\,1) ok 1156 - sprintf("%++004d"\,1) ok 1157 - sprintf("%+ 4d"\,1) ok 1158 - sprintf("%+ -4d"\,1) ok 1159 - sprintf("%+ --4d"\,1) ok 1160 - sprintf("%+ -+4d"\,1) ok 1161 - sprintf("%+ - 4d"\,1) ok 1162 - sprintf("%+ -04d"\,1) ok 1163 - sprintf("%+ +4d"\,1) ok 1164 - sprintf("%+ +-4d"\,1) ok 1165 - sprintf("%+ ++4d"\,1) ok 1166 - sprintf("%+ + 4d"\,1) ok 1167 - sprintf("%+ +04d"\,1) ok 1168 - sprintf("%+ 4d"\,1) ok 1169 - sprintf("%+ -4d"\,1) ok 1170 - sprintf("%+ +4d"\,1) ok 1171 - sprintf("%+ 4d"\,1) ok 1172 - sprintf("%+ 04d"\,1) ok 1173 - sprintf("%+ 04d"\,1) ok 1174 - sprintf("%+ 0-4d"\,1) ok 1175 - sprintf("%+ 0+4d"\,1) ok 1176 - sprintf("%+ 0 4d"\,1) ok 1177 - sprintf("%+ 004d"\,1) ok 1178 - sprintf("%+04d"\,1) ok 1179 - sprintf("%+0-4d"\,1) ok 1180 - sprintf("%+0--4d"\,1) ok 1181 - sprintf("%+0-+4d"\,1) ok 1182 - sprintf("%+0- 4d"\,1) ok 1183 - sprintf("%+0-04d"\,1) ok 1184 - sprintf("%+0+4d"\,1) ok 1185 - sprintf("%+0+-4d"\,1) ok 1186 - sprintf("%+0++4d"\,1) ok 1187 - sprintf("%+0+ 4d"\,1) ok 1188 - sprintf("%+0+04d"\,1) ok 1189 - sprintf("%+0 4d"\,1) ok 1190 - sprintf("%+0 -4d"\,1) ok 1191 - sprintf("%+0 +4d"\,1) ok 1192 - sprintf("%+0 4d"\,1) ok 1193 - sprintf("%+0 04d"\,1) ok 1194 - sprintf("%+004d"\,1) ok 1195 - sprintf("%+00-4d"\,1) ok 1196 - sprintf("%+00+4d"\,1) ok 1197 - sprintf("%+00 4d"\,1) ok 1198 - sprintf("%+0004d"\,1) ok 1199 - sprintf("% -4d"\,1) ok 1200 - sprintf("% --4d"\,1) ok 1201 - sprintf("% ---4d"\,1) ok 1202 - sprintf("% --+4d"\,1) ok 1203 - sprintf("% -- 4d"\,1) ok 1204 - sprintf("% --04d"\,1) ok 1205 - sprintf("% -+4d"\,1) ok 1206 - sprintf("% -+-4d"\,1) ok 1207 - sprintf("% -++4d"\,1) ok 1208 - sprintf("% -+ 4d"\,1) ok 1209 - sprintf("% -+04d"\,1) ok 1210 - sprintf("% - 4d"\,1) ok 1211 - sprintf("% - -4d"\,1) ok 1212 - sprintf("% - +4d"\,1) ok 1213 - sprintf("% - 4d"\,1) ok 1214 - sprintf("% - 04d"\,1) ok 1215 - sprintf("% -04d"\,1) ok 1216 - sprintf("% -0-4d"\,1) ok 1217 - sprintf("% -0+4d"\,1) ok 1218 - sprintf("% -0 4d"\,1) ok 1219 - sprintf("% -004d"\,1) ok 1220 - sprintf("% +4d"\,1) ok 1221 - sprintf("% +-4d"\,1) ok 1222 - sprintf("% +--4d"\,1) ok 1223 - sprintf("% +-+4d"\,1) ok 1224 - sprintf("% +- 4d"\,1) ok 1225 - sprintf("% +-04d"\,1) ok 1226 - sprintf("% ++4d"\,1) ok 1227 - sprintf("% ++-4d"\,1) ok 1228 - sprintf("% +++4d"\,1) ok 1229 - sprintf("% ++ 4d"\,1) ok 1230 - sprintf("% ++04d"\,1) ok 1231 - sprintf("% + 4d"\,1) ok 1232 - sprintf("% + -4d"\,1) ok 1233 - sprintf("% + +4d"\,1) ok 1234 - sprintf("% + 4d"\,1) ok 1235 - sprintf("% + 04d"\,1) ok 1236 - sprintf("% +04d"\,1) ok 1237 - sprintf("% +0-4d"\,1) ok 1238 - sprintf("% +0+4d"\,1) ok 1239 - sprintf("% +0 4d"\,1) ok 1240 - sprintf("% +004d"\,1) ok 1241 - sprintf("% 4d"\,1) ok 1242 - sprintf("% -4d"\,1) ok 1243 - sprintf("% --4d"\,1) ok 1244 - sprintf("% -+4d"\,1) ok 1245 - sprintf("% - 4d"\,1) ok 1246 - sprintf("% -04d"\,1) ok 1247 - sprintf("% +4d"\,1) ok 1248 - sprintf("% +-4d"\,1) ok 1249 - sprintf("% ++4d"\,1) ok 1250 - sprintf("% + 4d"\,1) ok 1251 - sprintf("% +04d"\,1) ok 1252 - sprintf("% 4d"\,1) ok 1253 - sprintf("% -4d"\,1) ok 1254 - sprintf("% +4d"\,1) ok 1255 - sprintf("% 4d"\,1) ok 1256 - sprintf("% 04d"\,1) ok 1257 - sprintf("% 04d"\,1) ok 1258 - sprintf("% 0-4d"\,1) ok 1259 - sprintf("% 0+4d"\,1) ok 1260 - sprintf("% 0 4d"\,1) ok 1261 - sprintf("% 004d"\,1) ok 1262 - sprintf("% 04d"\,1) ok 1263 - sprintf("% 0-4d"\,1) ok 1264 - sprintf("% 0--4d"\,1) ok 1265 - sprintf("% 0-+4d"\,1) ok 1266 - sprintf("% 0- 4d"\,1) ok 1267 - sprintf("% 0-04d"\,1) ok 1268 - sprintf("% 0+4d"\,1) ok 1269 - sprintf("% 0+-4d"\,1) ok 1270 - sprintf("% 0++4d"\,1) ok 1271 - sprintf("% 0+ 4d"\,1) ok 1272 - sprintf("% 0+04d"\,1) ok 1273 - sprintf("% 0 4d"\,1) ok 1274 - sprintf("% 0 -4d"\,1) ok 1275 - sprintf("% 0 +4d"\,1) ok 1276 - sprintf("% 0 4d"\,1) ok 1277 - sprintf("% 0 04d"\,1) ok 1278 - sprintf("% 004d"\,1) ok 1279 - sprintf("% 00-4d"\,1) ok 1280 - sprintf("% 00+4d"\,1) ok 1281 - sprintf("% 00 4d"\,1) ok 1282 - sprintf("% 0004d"\,1) ok 1283 - sprintf("%0-4d"\,1) ok 1284 - sprintf("%0--4d"\,1) ok 1285 - sprintf("%0---4d"\,1) ok 1286 - sprintf("%0--+4d"\,1) ok 1287 - sprintf("%0-- 4d"\,1) ok 1288 - sprintf("%0--04d"\,1) ok 1289 - sprintf("%0-+4d"\,1) ok 1290 - sprintf("%0-+-4d"\,1) ok 1291 - sprintf("%0-++4d"\,1) ok 1292 - sprintf("%0-+ 4d"\,1) ok 1293 - sprintf("%0-+04d"\,1) ok 1294 - sprintf("%0- 4d"\,1) ok 1295 - sprintf("%0- -4d"\,1) ok 1296 - sprintf("%0- +4d"\,1) ok 1297 - sprintf("%0- 4d"\,1) ok 1298 - sprintf("%0- 04d"\,1) ok 1299 - sprintf("%0-04d"\,1) ok 1300 - sprintf("%0-0-4d"\,1) ok 1301 - sprintf("%0-0+4d"\,1) ok 1302 - sprintf("%0-0 4d"\,1) ok 1303 - sprintf("%0-004d"\,1) ok 1304 - sprintf("%0+4d"\,1) ok 1305 - sprintf("%0+-4d"\,1) ok 1306 - sprintf("%0+--4d"\,1) ok 1307 - sprintf("%0+-+4d"\,1) ok 1308 - sprintf("%0+- 4d"\,1) ok 1309 - sprintf("%0+-04d"\,1) ok 1310 - sprintf("%0++4d"\,1) ok 1311 - sprintf("%0++-4d"\,1) ok 1312 - sprintf("%0+++4d"\,1) ok 1313 - sprintf("%0++ 4d"\,1) ok 1314 - sprintf("%0++04d"\,1) ok 1315 - sprintf("%0+ 4d"\,1) ok 1316 - sprintf("%0+ -4d"\,1) ok 1317 - sprintf("%0+ +4d"\,1) ok 1318 - sprintf("%0+ 4d"\,1) ok 1319 - sprintf("%0+ 04d"\,1) ok 1320 - sprintf("%0+04d"\,1) ok 1321 - sprintf("%0+0-4d"\,1) ok 1322 - sprintf("%0+0+4d"\,1) ok 1323 - sprintf("%0+0 4d"\,1) ok 1324 - sprintf("%0+004d"\,1) ok 1325 - sprintf("%0 4d"\,1) ok 1326 - sprintf("%0 -4d"\,1) ok 1327 - sprintf("%0 --4d"\,1) ok 1328 - sprintf("%0 -+4d"\,1) ok 1329 - sprintf("%0 - 4d"\,1) ok 1330 - sprintf("%0 -04d"\,1) ok 1331 - sprintf("%0 +4d"\,1) ok 1332 - sprintf("%0 +-4d"\,1) ok 1333 - sprintf("%0 ++4d"\,1) ok 1334 - sprintf("%0 + 4d"\,1) ok 1335 - sprintf("%0 +04d"\,1) ok 1336 - sprintf("%0 4d"\,1) ok 1337 - sprintf("%0 -4d"\,1) ok 1338 - sprintf("%0 +4d"\,1) ok 1339 - sprintf("%0 4d"\,1) ok 1340 - sprintf("%0 04d"\,1) ok 1341 - sprintf("%0 04d"\,1) ok 1342 - sprintf("%0 0-4d"\,1) ok 1343 - sprintf("%0 0+4d"\,1) ok 1344 - sprintf("%0 0 4d"\,1) ok 1345 - sprintf("%0 004d"\,1) ok 1346 - sprintf("%004d"\,1) ok 1347 - sprintf("%00-4d"\,1) ok 1348 - sprintf("%00--4d"\,1) ok 1349 - sprintf("%00-+4d"\,1) ok 1350 - sprintf("%00- 4d"\,1) ok 1351 - sprintf("%00-04d"\,1) ok 1352 - sprintf("%00+4d"\,1) ok 1353 - sprintf("%00+-4d"\,1) ok 1354 - sprintf("%00++4d"\,1) ok 1355 - sprintf("%00+ 4d"\,1) ok 1356 - sprintf("%00+04d"\,1) ok 1357 - sprintf("%00 4d"\,1) ok 1358 - sprintf("%00 -4d"\,1) ok 1359 - sprintf("%00 +4d"\,1) ok 1360 - sprintf("%00 4d"\,1) ok 1361 - sprintf("%00 04d"\,1) ok 1362 - sprintf("%0004d"\,1) ok 1363 - sprintf("%000-4d"\,1) ok 1364 - sprintf("%000+4d"\,1) ok 1365 - sprintf("%000 4d"\,1) ok 1366 - sprintf("%00004d"\,1) ok 1367 - sprintf("%f"\, 2**1e100) ok 1368 - sprintf("%f"\, -2**1e100) ok 1369 - sprintf("%f"\, 2**1e100/2**1e100) ok 1370 - quad​: %lld -> 4294967296 ok 1371 - no warnings for​: %lld -> 4294967296 ok 1372 - quad​: %lld -> -100000000000000 ok 1373 - no warnings for​: %lld -> -100000000000000 ok 1374 - quad​: %lli -> 4294967296 ok 1375 - no warnings for​: %lli -> 4294967296 ok 1376 - quad​: %lli -> -100000000000000 ok 1377 - no warnings for​: %lli -> -100000000000000 ok 1378 - quad​: %llu -> 4294967296 ok 1379 - no warnings for​: %llu -> 4294967296 ok 1380 - quad​: %llu -> 100000000000000 ok 1381 - no warnings for​: %llu -> 100000000000000 ok 1382 - quad​: %Ld -> 4294967296 ok 1383 - no warnings for​: %Ld -> 4294967296 ok 1384 - quad​: %Ld -> -100000000000000 ok 1385 - no warnings for​: %Ld -> -100000000000000 ok 1386 - quad​: %Li -> 4294967296 ok 1387 - no warnings for​: %Li -> 4294967296 ok 1388 - quad​: %Li -> -100000000000000 ok 1389 - no warnings for​: %Li -> -100000000000000 ok 1390 - quad​: %Lu -> 4294967296 ok 1391 - no warnings for​: %Lu -> 4294967296 ok 1392 - quad​: %Lu -> 100000000000000 ok 1393 - no warnings for​: %Lu -> 100000000000000 ok 1394 - sprintf "%1.1s"\, "\x{20ac}\x{20ac}" ok 1395 - sprintf "%1.2s"\, "\x{20ac}\x{20ac}" ok 1396 - sprintf "%1.3s"\, "\x{20ac}\x{20ac}" ok 1397 - sprintf "%1.4s"\, "\x{20ac}\x{20ac}" ok 1398 - sprintf "%1.5s"\, "\x{20ac}\x{20ac}" ok 1399 - sprintf "%1.6s"\, "\x{20ac}\x{20ac}" ok 1400 - sprintf "%1.7s"\, "\x{20ac}\x{20ac}" ok 1401 - sprintf "%2.1s"\, "\x{20ac}\x{20ac}" ok 1402 - sprintf "%2.2s"\, "\x{20ac}\x{20ac}" ok 1403 - sprintf "%2.3s"\, "\x{20ac}\x{20ac}" ok 1404 - sprintf "%2.4s"\, "\x{20ac}\x{20ac}" ok 1405 - sprintf "%2.5s"\, "\x{20ac}\x{20ac}" ok 1406 - sprintf "%2.6s"\, "\x{20ac}\x{20ac}" ok 1407 - sprintf "%2.7s"\, "\x{20ac}\x{20ac}" ok 1408 - sprintf "%3.1s"\, "\x{20ac}\x{20ac}" ok 1409 - sprintf "%3.2s"\, "\x{20ac}\x{20ac}" ok 1410 - sprintf "%3.3s"\, "\x{20ac}\x{20ac}" ok 1411 - sprintf "%3.4s"\, "\x{20ac}\x{20ac}" ok 1412 - sprintf "%3.5s"\, "\x{20ac}\x{20ac}" ok 1413 - sprintf "%3.6s"\, "\x{20ac}\x{20ac}" ok 1414 - sprintf "%3.7s"\, "\x{20ac}\x{20ac}" ok 1415 - sprintf "%4.1s"\, "\x{20ac}\x{20ac}" ok 1416 - sprintf "%4.2s"\, "\x{20ac}\x{20ac}" ok 1417 - sprintf "%4.3s"\, "\x{20ac}\x{20ac}" ok 1418 - sprintf "%4.4s"\, "\x{20ac}\x{20ac}" ok 1419 - sprintf "%4.5s"\, "\x{20ac}\x{20ac}" ok 1420 - sprintf "%4.6s"\, "\x{20ac}\x{20ac}" ok 1421 - sprintf "%4.7s"\, "\x{20ac}\x{20ac}" ok 1422 - sprintf "%5.1s"\, "\x{20ac}\x{20ac}" ok 1423 - sprintf "%5.2s"\, "\x{20ac}\x{20ac}" ok 1424 - sprintf "%5.3s"\, "\x{20ac}\x{20ac}" ok 1425 - sprintf "%5.4s"\, "\x{20ac}\x{20ac}" ok 1426 - sprintf "%5.5s"\, "\x{20ac}\x{20ac}" ok 1427 - sprintf "%5.6s"\, "\x{20ac}\x{20ac}" ok 1428 - sprintf "%5.7s"\, "\x{20ac}\x{20ac}" ok 1429 - sprintf "%6.1s"\, "\x{20ac}\x{20ac}" ok 1430 - sprintf "%6.2s"\, "\x{20ac}\x{20ac}" ok 1431 - sprintf "%6.3s"\, "\x{20ac}\x{20ac}" ok 1432 - sprintf "%6.4s"\, "\x{20ac}\x{20ac}" ok 1433 - sprintf "%6.5s"\, "\x{20ac}\x{20ac}" ok 1434 - sprintf "%6.6s"\, "\x{20ac}\x{20ac}" ok 1435 - sprintf "%6.7s"\, "\x{20ac}\x{20ac}" ok 1436 - sprintf "%7.1s"\, "\x{20ac}\x{20ac}" ok 1437 - sprintf "%7.2s"\, "\x{20ac}\x{20ac}" ok 1438 - sprintf "%7.3s"\, "\x{20ac}\x{20ac}" ok 1439 - sprintf "%7.4s"\, "\x{20ac}\x{20ac}" ok 1440 - sprintf "%7.5s"\, "\x{20ac}\x{20ac}" ok 1441 - sprintf "%7.6s"\, "\x{20ac}\x{20ac}" ok 1442 - sprintf "%7.7s"\, "\x{20ac}\x{20ac}" ok 1443 - sprinf %1s overload count ok 1444 - sprinf %.1s overload count ok 1445 - sprintf %d string overload count is 0 ok 1446 - sprintf %d number overload count is 1 ok 1447 - '%a' '0' -> '0x0p+0' cf '0x0p+0' ok 1448 - '%a' '1' -> '0x1p+0' cf '0x1p+0' ok 1449 - '%a' '1' -> '0x1p+0' cf '0x1p+0' ok 1450 - '%a' '0.5' -> '0x1p-1' cf '0x1p-1' ok 1451 - '%a' '0.25' -> '0x1p-2' cf '0x1p-2' ok 1452 - '%a' '0.75' -> '0x1.8p-1' cf '0x1.8p-1' ok 1453 - '%a' '3.14' -> '0x1.91eb851eb851fp+1' cf '0x1.91eb851eb851fp+1' ok 1454 - '%a' '-1' -> '-0x1p+0' cf '-0x1p+0' ok 1455 - '%a' '-3.14' -> '-0x1.91eb851eb851fp+1' cf '-0x1.91eb851eb851fp+1' ok 1456 - '%a' '0.1' -> '0x1.999999999999ap-4' cf '0x1.999999999999ap-4' ok 1457 - '%a' '0.142857142857143' -> '0x1.2492492492492p-3' cf '0x1.2492492492492p-3' ok 1458 - '%a' '1.4142135623731' -> '0x1.6a09e667f3bcdp+0' cf '0x1.6a09e667f3bcdp+0' ok 1459 - '%a' '2.71828182845905' -> '0x1.5bf0a8b145769p+1' cf '0x1.5bf0a8b145769p+1' ok 1460 - '%a' '0.0009765625' -> '0x1p-10' cf '0x1p-10' ok 1461 - '%a' '1024' -> '0x1p+10' cf '0x1p+10' ok 1462 - '%a' '1e-009' -> '0x1.12e0be826d695p-30' cf '0x1.12e0be826d695p-30' ok 1463 - '%a' '1000000000' -> '0x1.dcd65p+29' cf '0x1.dcd65p+29' ok 1464 - '%\#a' '1' -> '0x1.p+0' cf '0x1.p+0' ok 1465 - '%+a' '1' -> '+0x1p+0' cf '+0x1p+0' ok 1466 - '%+a' '-1' -> '-0x1p+0' cf '-0x1p+0' ok 1467 - '% a' '1' -> ' 0x1p+0' cf ' 0x1p+0' ok 1468 - '% a' '-1' -> '-0x1p+0' cf '-0x1p+0' ok 1469 - '%+ a' '1' -> '+0x1p+0' cf '+0x1p+0' ok 1470 - '%+ a' '-1' -> '-0x1p+0' cf '-0x1p+0' ok 1471 - '% +a' '1' -> '+0x1p+0' cf '+0x1p+0' ok 1472 - '% +a' '-1' -> '-0x1p+0' cf '-0x1p+0' ok 1473 - '%8a' '3.14' -> '0x1.91eb851eb851fp+1' cf '0x1.91eb851eb851fp+1' ok 1474 - '%13a' '3.14' -> '0x1.91eb851eb851fp+1' cf '0x1.91eb851eb851fp+1' ok 1475 - '%20a' '3.14' -> '0x1.91eb851eb851fp+1' cf '0x1.91eb851eb851fp+1' ok 1476 - '%.4a' '3.14' -> '0x1.91ecp+1' cf '0x1.91ecp+1' ok 1477 - '%.5a' '3.14' -> '0x1.91eb8p+1' cf '0x1.91eb8p+1' ok 1478 - '%.6a' '3.14' -> '0x1.91eb85p+1' cf '0x1.91eb85p+1' ok 1479 - '%.20a' '3.14' -> '0x1.91eb851eb851f0000000p+1' cf '0x1.91eb851eb851f0000000p+1' ok 1480 - '%20.10a' '3.14' -> ' 0x1.91eb851eb8p+1' cf ' 0x1.91eb851eb8p+1' ok 1481 - '%20.15a' '3.14' -> '0x1.91eb851eb851f00p+1' cf '0x1.91eb851eb851f00p+1' ok 1482 - '% 20.10a' '3.14' -> ' 0x1.91eb851eb8p+1' cf ' 0x1.91eb851eb8p+1' ok 1483 - '%020.10a' '3.14' -> '0x0001.91eb851eb8p+1' cf '0x0001.91eb851eb8p+1' ok 1484 - '%.13a' '1' -> '0x1.0000000000000p+0' cf '0x1.0000000000000p+0' ok 1485 - '%.13a' '-1' -> '-0x1.0000000000000p+0' cf '-0x1.0000000000000p+0' ok 1486 - '%.13a' '0' -> '0x0.0000000000000p+0' cf '0x0.0000000000000p+0' ok 1487 - '%30a' '3.14' -> ' 0x1.91eb851eb851fp+1' cf ' 0x1.91eb851eb851fp+1' ok 1488 - '%-30a' '3.14' -> '0x1.91eb851eb851fp+1 ' cf '0x1.91eb851eb851fp+1 ' ok 1489 - '%030a' '3.14' -> '0x00000000001.91eb851eb851fp+1' cf '0x00000000001.91eb851eb851fp+1' ok 1490 - '%-030a' '3.14' -> '0x1.91eb851eb851fp+1 ' cf '0x1.91eb851eb851fp+1 ' ok 1491 - '%.40a' '3.14' -> '0x1.91eb851eb851f000000000000000000000000000p+1' cf '0x1.91eb851eb851f000000000000000000000000000p+1' ok 1492 - '%A' '3.14' -> '0X1.91EB851EB851FP+1' cf '0X1.91EB851EB851FP+1' ok 1493 # skip uselongdouble=undef longdblkind=0 os=MSWin32 ok 1494 # skip uselongdouble=undef longdblkind=0 os=MSWin32 ok 1495 # skip uselongdouble=undef longdblkind=0 os=MSWin32 ok 1496 # skip uselongdouble=undef longdblkind=0 os=MSWin32 ok 1497 # skip uselongdouble=undef longdblkind=0 os=MSWin32 ok 1498 # skip uselongdouble=undef longdblkind=0 os=MSWin32 ok 1499 - negative zero ok 1500 - negative zero ok 1501 - negative zero ok 1502 - non-canonical form [perl \#127183] ok 1503 - non-canonical form ok 1504 - non-canonical form ok 1505 - subnormal 1e-320 %a 0x1.fap-1064 got 0x1.fap-1064 ok 1506 - subnormal 1e-321 %a 0x1.94p-1067 got 0x1.94p-1067 ok 1507 - subnormal 1e-322 %a 0x1.4p-1070 got 0x1.4p-1070 ok 1508 - subnormal 1e-323 %a 0x1p-1073 got 0x1p-1073 ok 1509 - subnormal 1e-324 %a 0x0p+0 got 0x0p+0 ok 1510 - subnormal 3e-320 %a 0x1.7b8p-1062 got 0x1.7b8p-1062 ok 1511 - subnormal 3e-321 %a 0x1.2f8p-1065 got 0x1.2f8p-1065 not ok 1512 - subnormal 3e-322 %a 0x1.e8p-1069 got 0x1.ep-1069 ok 1513 - subnormal 3e-323 %a 0x1.8p-1072 got 0x1.8p-1072 not ok 1514 - subnormal 3e-324 %a 0x1p-1074 got 0x0p+0 # TODO denorm literals treated as zero # Failed test 1514 - subnormal 3e-324 %a 0x1p-1074 got 0x0p+0 at op/sprintf2.t line 822 # got "0x0p+0" # expected "0x1p-1074" ok 1515 - subnormal 7e-320 %a 0x1.bacp-1061 got 0x1.bacp-1061 ok 1516 - subnormal 7e-321 %a 0x1.624p-1064 got 0x1.624p-1064 not ok 1517 - subnormal 7e-322 %a 0x1.1cp-1067 got 0x1.1ap-1067 ok 1518 - subnormal 7e-323 %a 0x1.cp-1071 got 0x1.cp-1071 ok 1519 - subnormal 7e-324 %a 0x1p-1074 got 0x1p-1074 ok 1520 - subnormal 3e-320 %.4a 0x1.7b80p-1062 got 0x1.7b80p-1062 ok 1521 - subnormal 3e-321 %.4a 0x1.2f80p-1065 got 0x1.2f80p-1065 not ok 1522 - subnormal 3e-322 %.4a 0x1.e800p-1069 got 0x1.e000p-1069 ok 1523 - subnormal 3e-323 %.4a 0x1.8000p-1072 got 0x1.8000p-1072 not ok 1524 - subnormal 3e-324 %.4a 0x1.0000p-1074 got 0x0.0000p+0 # TODO denorm literals treated as zero # Failed test 1524 - subnormal 3e-324 %.4a 0x1.0000p-1074 got 0x0.0000p+0 at op/sprintf2.t line 822 # got "0x0.0000p+0" # expected "0x1.0000p-1074" ok 1525 - subnormal 3e-320 %.1a 0x1.8p-1062 got 0x1.8p-1062 ok 1526 - subnormal 3e-321 %.1a 0x1.3p-1065 got 0x1.3p-1065 ok 1527 - subnormal 3e-322 %.1a 0x1.ep-1069 got 0x1.ep-1069 ok 1528 - subnormal 3e-323 %.1a 0x1.8p-1072 got 0x1.8p-1072 not ok 1529 - subnormal 3e-324 %.1a 0x1.0p-1074 got 0x0.0p+0 # TODO denorm literals treated as zero # Failed test 1529 - subnormal 3e-324 %.1a 0x1.0p-1074 got 0x0.0p+0 at op/sprintf2.t line 822 # got "0x0.0p+0" # expected "0x1.0p-1074" ok 1530 - subnormal 0x1.fffffffffffffp-1022 %a 0x1.fffffffffffffp-1022 got 0x1.fffffffffffffp-1022 ok 1531 - subnormal 0x0.fffffffffffffp-1022 %a 0x1.ffffffffffffep-1023 got 0x1.ffffffffffffep-1023 ok 1532 - subnormal 0x0.7ffffffffffffp-1022 %a 0x1.ffffffffffffcp-1024 got 0x1.ffffffffffffcp-1024 ok 1533 - subnormal 0x0.3ffffffffffffp-1022 %a 0x1.ffffffffffff8p-1025 got 0x1.ffffffffffff8p-1025 ok 1534 - subnormal 0x0.1ffffffffffffp-1022 %a 0x1.ffffffffffffp-1026 got 0x1.ffffffffffffp-1026 ok 1535 - subnormal 0x0.0ffffffffffffp-1022 %a 0x1.fffffffffffep-1027 got 0x1.fffffffffffep-1027 ok 1536 ok 1537 ok 1538 - [rt.perl.org \#128888] ok 1539 - [rt.perl.org \#128889] ok 1540 ok 1541 ok 1542 - [rt.perl.org \#128890] ok 1543 ok 1544 ok 1545 ok 1546 ok 1547 ok 1548 ok 1549 ok 1550 ok 1551 ok 1552 ok 1553 ok 1554 ok 1555 ok 1556 ok 1557 ok 1558 ok 1559 ok 1560 ok 1561 ok 1562 ok 1563 ok 1564 - [rt.perl.org \#128893] ok 1565 - [rt.perl.org \#128893] ok 1566 - [rt.perl.org \#128893] ok 1567 ok 1568 ok 1569 ok 1570 # skip non-80-bit-long-double ok 1571 # skip non-80-bit-long-double ok 1572 # skip non-80-bit-long-double ok 1573 # skip non-80-bit-long-double ok 1574 # skip non-80-bit-long-double ok 1575 # skip non-80-bit-long-double ok 1576 # skip non-80-bit-long-double ok 1577 # skip non-80-bit-long-double ok 1578 # skip non-80-bit-long-double ok 1579 # skip non-80-bit-long-double ok 1580 # skip non-80-bit-long-double ok 1581 # skip non-80-bit-long-double ok 1582 # skip non-80-bit-long-double ok 1583 # skip non-80-bit-long-double ok 1584 # skip non-80-bit-long-double ok 1585 # skip non-80-bit-long-double ok 1586 # skip non-80-bit-long-double ok 1587 # skip need quadmath ok 1588 # skip need quadmath ok 1589 # skip need quadmath ok 1590 # skip need quadmath ok 1591 # skip need quadmath ok 1592 # skip need quadmath ok 1593 # skip need quadmath ok 1594 - Integer overflow​: "%.18446744073709551615a"\, "1.1" ok 1595 - Integer overflow​: "%.18446744073709551615i"\, "1" ok 1596 - Integer overflow​: "%.18446744073709551615i"\, "-1" ok 1597 - utf8 for invalid format ok 1598 - utf8 for invalid format​: invalid warnings ok 1599 - utf8 for invalid format​: redundant warnings ok 1600 - utf8 for invalid format​: other warnings ok 1601 - first arg not special utf8-wise ok 1602 - %n ok 1603 - %p and Inf ok 1604 - %p and NaN ok 1605 - overflow​: %*s 0xffffffffffffffff\, 18446744073709551615 ok 1606 - overflow​: %*2$s ok 1607 - overflow​: %.*s ok 1608 - overflow​: %.*2$s ok 1609 - overflow​: %.NNNf ok 1610 - overflow​: %*s 0xfffffffffffffffe\, 18446744073709551614 ok 1611 - overflow​: %*2$s ok 1612 - overflow​: %.*s ok 1613 - overflow​: %.*2$s ok 1614 - overflow​: %.NNNf ok 1615 - overflow​: %*s 0xfffffffffffffffd\, 18446744073709551613 ok 1616 - overflow​: %*2$s ok 1617 - overflow​: %.*s ok 1618 - overflow​: %.*2$s ok 1619 - overflow​: %.NNNf ok 1620 - overflow​: %*s 0x8000000000000001\, 9223372036854775809 ok 1621 - overflow​: %*2$s ok 1622 - overflow​: %.*s ok 1623 - overflow​: %.*2$s ok 1624 - overflow​: %.NNNf ok 1625 - overflow​: %*s 0x8000000000000000\, 9223372036854775808 ok 1626 - overflow​: %*2$s ok 1627 - overflow​: %.*s ok 1628 - overflow​: %.*2$s ok 1629 - overflow​: %.NNNf ok 1630 - overflow​: %*s 0x7fffffffffffffff\, 9223372036854775807 ok 1631 - overflow​: %*2$s ok 1632 - overflow​: %.*s ok 1633 - overflow​: %.*2$s ok 1634 - overflow​: %.NNNf ok 1635 - overflow​: %*s 0x7ffffffffffffffe\, 9223372036854775806 ok 1636 - overflow​: %*2$s ok 1637 - overflow​: %.*s ok 1638 - overflow​: %.*2$s ok 1639 - overflow​: %.NNNf ok 1640 - overflow​: %*s 0x7ffffffffffffffd\, 9223372036854775805 ok 1641 - overflow​: %*2$s ok 1642 - overflow​: %.*s ok 1643 - overflow​: %.*2$s ok 1644 - overflow​: %.NNNf ok 1645 - overflow​: %*s 0x4000000000000001\, 4611686018427387905 ok 1646 - overflow​: %*2$s ok 1647 - overflow​: %.*s ok 1648 - overflow​: %.*2$s ok 1649 - overflow​: %.NNNf ok 1650 - overflow​: %*s 0x4000000000000000\, 4611686018427387904 ok 1651 - overflow​: %*2$s ok 1652 - overflow​: %.*s ok 1653 - overflow​: %.*2$s ok 1654 - overflow​: %.NNNf ok 1655 - overflow​: %*s 0x8000000000000000\, -9223372036854775808 ok 1656 - overflow​: %*2$s ok 1657 - overflow​: %.*s ok 1658 - overflow​: %.*2$s ok 1659 - overflow​: %*s 0x8000000000000001\, -9223372036854775807 ok 1660 - overflow​: %*2$s ok 1661 - overflow​: %.*s ok 1662 - overflow​: %.*2$s ok 1663 - overflow​: %*s 0x8000000000000002\, -9223372036854775806 ok 1664 - overflow​: %*2$s ok 1665 - overflow​: %.*s ok 1666 - overflow​: %.*2$s ok 1667 - overflow​: %*s 0xbfffffffffffffff\, -4611686018427387905 ok 1668 - overflow​: %*2$s ok 1669 - overflow​: %.*s ok 1670 - overflow​: %.*2$s ok 1671 - overflow​: %*s 0xc000000000000000\, -4611686018427387904 ok 1672 - overflow​: %*2$s ok 1673 - overflow​: %.*s ok 1674 - overflow​: %.*2$s ok 1675 - $x1 = $x2 = sprintf()​: x1 ok 1676 - $x1 = $x2 = sprintf()​: x2 ok 1677 - $y1 = $y2 = sprintf()​: y1 ok 1678 - $y1 = $y2 = sprintf()​: y2 ok 1679 - $lex .= sprintf ... ok 1680 - $pkg .= sprintf ... ok 1681 - $ary[3] .= sprintf ... ok 1682 - multiconcat 80.ff handling ok 1683 - multiconcat p u p ok 1684 - multiconcat p u u ok 1685 - no INTRO flag on non-my ok 1686 - INTRO flag on my​: 1 ok 1687 - INTRO flag on my - result​: 1 ok 1688 - INTRO flag on my​: 2 ok 1689 - INTRO flag on my - result​: 2 ok 1690 - \x80 in format ok 1691 - special-case %.0f on 0 ok 1692 - special-case %.0f on 0 ok 1693 - special-case %.0f on 4503599627370501 ok 1694 - special-case %.0f on -4503599627370501 ok 1695 - special-case %.0f on 4503599627370503 ok 1696 - special-case %.0f on -4503599627370503 1..1696 Failed 3/1696 subtests   (less 30 skipped subtests​: 1663 okay)

Test Summary Report


op/sprintf2.t (Wstat​: 0 Tests​: 1696 Failed​: 3)   Failed tests​: 1512\, 1517\, 1522 Files=1\, Tests=1696\, 3 wallclock secs ( 0.06 usr + 0.02 sys = 0.08 CPU) Result​: FAIL

p5pRT commented 5 years ago

From @sisyphus

Can you determine whether these problem values are being assigned correctly in the first place ? I would guess that's where the problem lies.

If $Config{d_strtod} is defined\, then the values are being assigned using C's strtod(). If you wish to use perl's Atof to assign the values\, just re-build perl with $Config{d_strtod} undefined. (Edit the 'd_strtod' setting in Win32/ config.vc and the 'HAS_STRTOD' setting in Win32/config_H.vc).

On Thu\, Apr 4\, 2019 at 4​:02 AM Steve Hay (via RT) \perlbug\-followup@​perl\.org wrote​:

# New Ticket Created by Steve Hay # Please include the string​: [perl #133982] # in the subject line of all future correspondence about this issue. # \<URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133982 >

This is a bug report for perl from steve.m.hay@​googlemail.com\, generated with the help of perlbug 1.41 running under perl 5.29.10.

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

Blead is currently failing three tests in t/op/sprintf2.t on Windows (this is Windows 10) with VC12 (x64)​:

Failed tests​: 1512\, 1517\, 1522

VC14\, VC14.1 and MinGW-w64 GCC 7.1.0 all work fine\, all x64.

See attached verbose output.

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

Configured by shay at Wed Apr 3 08​:46​:38 2019.

Summary of my perl5 (revision 5 version 29 subversion 10) configuration​:

Platform​: osname=MSWin32 osvers=10.0.17763.379 archname=MSWin32-x64-multi-thread uname='' config_args='undef' hint=recommended useposix=true d_sigaction=undef useithreads=define usemultiplicity=define use64bitint=define use64bitall=undef uselongdouble=undef usemymalloc=n default_inc_excludes_dot=define bincompat5005=undef Compiler​: cc='cl' ccflags ='-nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -GL -fp​:precise -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS' optimize='-O1 -MD -Zi -DNDEBUG -GL -fp​:precise' cppflags='-DWIN32' ccversion='18.00.40629' gccversion='' gccosandvers='' intsize=4 longsize=4 ptrsize=8 doublesize=8 byteorder=12345678 doublekind=3 d_longlong=undef longlongsize=8 d_longdbl=define longdblsize=8 longdblkind=0 ivtype='__int64' ivsize=8 nvtype='double' nvsize=8 Off_t='__int64' lseeksize=8 alignbytes=8 prototype=define Linker and Libraries​: ld='link' ldflags ='-nologo -nodefaultlib -debug -opt​:ref\,icf -ltcg -libpath​:"c​:\perl\lib\CORE" -machine​:AMD64 -subsystem​:console\,"5.02"' libpth="C​:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\\lib\amd64" libs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib libc=msvcrt.lib so=dll useshrplib=true libperl=perl529.lib gnulibc_version='' Dynamic Linking​: dlsrc=dl_win32.xs dlext=dll d_dlsymun=undef ccdlflags=' ' cccdlflags=' ' lddlflags='-dll -nologo -nodefaultlib -debug -opt​:ref\,icf -ltcg -libpath​:"c​:\perl\lib\CORE" -machine​:AMD64 -subsystem​:console\,"5.02"'

--- @​INC for perl 5.29.10​: C​:/perl/site/lib C​:/perl/lib

--- Environment for perl 5.29.10​: HOME (unset) LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset)

PATH=C​:\WINDOWS\system32;C​:\WINDOWS;C​:\WINDOWS\System32\Wbem;C​:\perl\bin PERL_BADLANG (unset) SHELL (unset)

p5pRT commented 5 years ago

The RT System itself - Status changed from 'new' to 'open'

p5pRT commented 5 years ago

From @iabyn

On Wed\, Apr 03\, 2019 at 10​:00​:50AM -0700\, Steve Hay (via RT) wrote​:

Blead is currently failing three tests in t/op/sprintf2.t on Windows (this is Windows 10) with VC12 (x64)​:

Failed tests​: 1512\, 1517\, 1522

VC14\, VC14.1 and MinGW-w64 GCC 7.1.0 all work fine\, all x64.

These are

sprintf "%a"\, "3e-322; # expected 0x1.e8p-1069 got 0x1.ep-1069 sprintf "%a"\, "7e-322; # expected 0x1.1cp-1067 got 0x1.1ap-1067 sprintf "%.4a"\, "3e-322; # expected 0x1.e800p-1069 got 0x1.e000p-1069

Which seems to imply the last bit of precision is being messed up. Whether that's due to the way subnormals are calculated from a string\, stored as an NV\, or processed for %a display\, I don't know.

-- More than any other time in history\, mankind faces a crossroads. One path leads to despair and utter hopelessness. The other\, to total extinction. Let us pray we have the wisdom to choose correctly.   -- Woody Allen

p5pRT commented 5 years ago

From @sisyphus

If we could see the output of​:   perl -le "print scalar reverse unpack 'h*'\, pack 'd\<'\, 7e-322;" and   perl -le "print scalar reverse unpack 'h*'\, pack 'd\<'\, 3e-322;"

then we could probably deduce whether the problem is in the assigning of the value\, or elsewhere. Correct outputs are (resp)​:   000000000000008e and   000000000000003d

If the VC12 outputs agree with the above\, then I would believe that the values are being assigned correctly\, and the problem is with the %a processing. Otherwise\, vice-versa.

(Admittedly\, it's not impossible that we could be led astray by a bug in pack/unpack - but very unlikely\, IME.)

Cheers\, Rob

On Thu\, Apr 4\, 2019 at 8​:36 PM Dave Mitchell \davem@&#8203;iabyn\.com wrote​:

On Wed\, Apr 03\, 2019 at 10​:00​:50AM -0700\, Steve Hay (via RT) wrote​:

Blead is currently failing three tests in t/op/sprintf2.t on Windows (this is Windows 10) with VC12 (x64)​:

Failed tests​: 1512\, 1517\, 1522

VC14\, VC14.1 and MinGW-w64 GCC 7.1.0 all work fine\, all x64.

These are

sprintf "%a"\, "3e-322; # expected 0x1.e8p-1069 got 0x1.ep-1069 sprintf "%a"\, "7e-322; # expected 0x1.1cp-1067 got 0x1.1ap-1067 sprintf "%.4a"\, "3e-322; # expected 0x1.e800p-1069 got 0x1.e000p-1069

Which seems to imply the last bit of precision is being messed up. Whether that's due to the way subnormals are calculated from a string\, stored as an NV\, or processed for %a display\, I don't know.

-- More than any other time in history\, mankind faces a crossroads. One path leads to despair and utter hopelessness. The other\, to total extinction. Let us pray we have the wisdom to choose correctly. -- Woody Allen

p5pRT commented 5 years ago

From @steve-m-hay

The outputs are not correct​:

.\perl -le "print scalar reverse unpack 'h*'\, pack 'd\<'\, 7e-322;" 000000000000008d

perl -le "print scalar reverse unpack 'h*'\, pack 'd\<'\, 3e-322;" 000000000000003c

On Thu\, 4 Apr 2019 at 11​:12\, sisyphus \sisyphus359@&#8203;gmail\.com wrote​:

If we could see the output of​: perl -le "print scalar reverse unpack 'h*'\, pack 'd\<'\, 7e-322;" and perl -le "print scalar reverse unpack 'h*'\, pack 'd\<'\, 3e-322;"

then we could probably deduce whether the problem is in the assigning of the value\, or elsewhere. Correct outputs are (resp)​: 000000000000008e and 000000000000003d

If the VC12 outputs agree with the above\, then I would believe that the values are being assigned correctly\, and the problem is with the %a processing. Otherwise\, vice-versa.

(Admittedly\, it's not impossible that we could be led astray by a bug in pack/unpack - but very unlikely\, IME.)

Cheers\, Rob

On Thu\, Apr 4\, 2019 at 8​:36 PM Dave Mitchell \davem@&#8203;iabyn\.com wrote​:

On Wed\, Apr 03\, 2019 at 10​:00​:50AM -0700\, Steve Hay (via RT) wrote​:

Blead is currently failing three tests in t/op/sprintf2.t on Windows (this is Windows 10) with VC12 (x64)​:

Failed tests​: 1512\, 1517\, 1522

VC14\, VC14.1 and MinGW-w64 GCC 7.1.0 all work fine\, all x64.

These are

sprintf "%a"\, "3e-322; # expected 0x1.e8p-1069 got 0x1.ep-1069 sprintf "%a"\, "7e-322; # expected 0x1.1cp-1067 got 0x1.1ap-1067 sprintf "%.4a"\, "3e-322; # expected 0x1.e800p-1069 got 0x1.e000p-1069

Which seems to imply the last bit of precision is being messed up. Whether that's due to the way subnormals are calculated from a string\, stored as an NV\, or processed for %a display\, I don't know.

-- More than any other time in history\, mankind faces a crossroads. One path leads to despair and utter hopelessness. The other\, to total extinction. Let us pray we have the wisdom to choose correctly. -- Woody Allen

p5pRT commented 5 years ago

From @sisyphus

Yes\, the values are being assigned incorrectly by C's strtod. The good news is that sprintf's %a formatting is correctly displaying the values that were assigned ;-)

Should those 3 tests therefore be made TODO for MS compilers that are pre-VC14 ? (That VC14 passes would indicate that the TODO has now been done.)

On Fri\, Apr 5\, 2019 at 6​:22 AM Steve Hay \steve\.m\.hay@&#8203;googlemail\.com wrote​:

The outputs are not correct​:

.\perl -le "print scalar reverse unpack 'h*'\, pack 'd\<'\, 7e-322;" 000000000000008d

perl -le "print scalar reverse unpack 'h*'\, pack 'd\<'\, 3e-322;" 000000000000003c

On Thu\, 4 Apr 2019 at 11​:12\, sisyphus \sisyphus359@&#8203;gmail\.com wrote​:

If we could see the output of​: perl -le "print scalar reverse unpack 'h*'\, pack 'd\<'\, 7e-322;" and perl -le "print scalar reverse unpack 'h*'\, pack 'd\<'\, 3e-322;"

then we could probably deduce whether the problem is in the assigning of the value\, or elsewhere. Correct outputs are (resp)​: 000000000000008e and 000000000000003d

If the VC12 outputs agree with the above\, then I would believe that the values are being assigned correctly\, and the problem is with the %a processing. Otherwise\, vice-versa.

(Admittedly\, it's not impossible that we could be led astray by a bug in pack/unpack - but very unlikely\, IME.)

Cheers\, Rob

On Thu\, Apr 4\, 2019 at 8​:36 PM Dave Mitchell \davem@&#8203;iabyn\.com wrote​:

On Wed\, Apr 03\, 2019 at 10​:00​:50AM -0700\, Steve Hay (via RT) wrote​:

Blead is currently failing three tests in t/op/sprintf2.t on Windows (this is Windows 10) with VC12 (x64)​:

Failed tests​: 1512\, 1517\, 1522

VC14\, VC14.1 and MinGW-w64 GCC 7.1.0 all work fine\, all x64.

These are

sprintf "%a"\, "3e-322; # expected 0x1.e8p-1069 got 0x1.ep-1069 sprintf "%a"\, "7e-322; # expected 0x1.1cp-1067 got 0x1.1ap-1067 sprintf "%.4a"\, "3e-322; # expected 0x1.e800p-1069 got 0x1.e000p-1069

Which seems to imply the last bit of precision is being messed up. Whether that's due to the way subnormals are calculated from a string\, stored as an NV\, or processed for %a display\, I don't know.

-- More than any other time in history\, mankind faces a crossroads. One path leads to despair and utter hopelessness. The other\, to total extinction. Let us pray we have the wisdom to choose correctly. -- Woody Allen

p5pRT commented 5 years ago

From @steve-m-hay

On Thu\, 04 Apr 2019 16​:35​:57 -0700\, sisyphus359@​gmail.com wrote​:

Yes\, the values are being assigned incorrectly by C's strtod. The good news is that sprintf's %a formatting is correctly displaying the values that were assigned ;-)

Should those 3 tests therefore be made TODO for MS compilers that are pre-VC14 ? (That VC14 passes would indicate that the TODO has now been done.)

Now marked TODO for pre-VC14 versions of VC++ in commit 113a38a2051d3a3460d5972bfb05284a2daa89ae. Thanks.