13bfc5f49e0e37e235bb0d33bcbcb36af9d1f84abTom Care// RUN: cp %s %t 22315318436b3e94d54c220c3b8986e8002394a43Richard Smith// RUN: %clang_cc1 -pedantic -Wall -fixit %t 31ad35bebcc07d34202850f46b5b7be46fda1c5d1Ted Kremenek// RUN: %clang_cc1 -fsyntax-only -pedantic -Wall -Werror %t 41ad35bebcc07d34202850f46b5b7be46fda1c5d1Ted Kremenek// RUN: %clang_cc1 -E -o - %t | FileCheck %s 53bfc5f49e0e37e235bb0d33bcbcb36af9d1f84abTom Care 63bfc5f49e0e37e235bb0d33bcbcb36af9d1f84abTom Care/* This is a test of the various code modification hints that are 73bfc5f49e0e37e235bb0d33bcbcb36af9d1f84abTom Care provided as part of warning or extension diagnostics. All of the 83bfc5f49e0e37e235bb0d33bcbcb36af9d1f84abTom Care warnings will be fixed by -fixit, and the resulting file should 93bfc5f49e0e37e235bb0d33bcbcb36af9d1f84abTom Care compile cleanly with -Werror -pedantic. */ 103bfc5f49e0e37e235bb0d33bcbcb36af9d1f84abTom Care 113bfc5f49e0e37e235bb0d33bcbcb36af9d1f84abTom Careint printf(char const *, ...); 123bfc5f49e0e37e235bb0d33bcbcb36af9d1f84abTom Care 136fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborgtypedef __SIZE_TYPE__ size_t; 146fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborgtypedef __INTMAX_TYPE__ intmax_t; 156fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborgtypedef __UINTMAX_TYPE__ uintmax_t; 166fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborgtypedef __PTRDIFF_TYPE__ ptrdiff_t; 17651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinestypedef __WCHAR_TYPE__ wchar_t; 186fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg 193bfc5f49e0e37e235bb0d33bcbcb36af9d1f84abTom Carevoid test() { 20876e994957472eda4b40136d4e1d6e08e2be338fTom Care // Basic types 21876e994957472eda4b40136d4e1d6e08e2be338fTom Care printf("%s", (int) 123); 22876e994957472eda4b40136d4e1d6e08e2be338fTom Care printf("abc%0f", "testing testing 123"); 233bfc5f49e0e37e235bb0d33bcbcb36af9d1f84abTom Care printf("%u", (long) -12); 2413927a431dd733336cfd664bf0840747a71b0a43Ted Kremenek printf("%p", 123); 2501cb1aa458516b9061a65ea4b8a2ca55f71cb34fTed Kremenek printf("%c\n", "x"); 2601cb1aa458516b9061a65ea4b8a2ca55f71cb34fTed Kremenek printf("%c\n", 1.23); 27876e994957472eda4b40136d4e1d6e08e2be338fTom Care 28876e994957472eda4b40136d4e1d6e08e2be338fTom Care // Larger types 293bfc5f49e0e37e235bb0d33bcbcb36af9d1f84abTom Care printf("%+.2d", (unsigned long long) 123456); 303bfc5f49e0e37e235bb0d33bcbcb36af9d1f84abTom Care printf("%1d", (long double) 1.23); 31876e994957472eda4b40136d4e1d6e08e2be338fTom Care 32876e994957472eda4b40136d4e1d6e08e2be338fTom Care // Flag handling 3345f9b7e8f23072d662ee1cc758f4ecb0da5e3322Tom Care printf("%0+s", (unsigned) 31337); // 0 flag should stay 344c6021995032a898fb0502d5d1fd2df37638e57bTom Care printf("%#p", (void *) 0); 3545f9b7e8f23072d662ee1cc758f4ecb0da5e3322Tom Care printf("% +f", 1.23); // + flag should stay 3645f9b7e8f23072d662ee1cc758f4ecb0da5e3322Tom Care printf("%0-f", 1.23); // - flag should stay 37876e994957472eda4b40136d4e1d6e08e2be338fTom Care 38876e994957472eda4b40136d4e1d6e08e2be338fTom Care // Positional arguments 39f85626453123f9691bcef13cff963f556e209c27Hans Wennborg#pragma clang diagnostic push // Don't warn about using positional arguments. 40f85626453123f9691bcef13cff963f556e209c27Hans Wennborg#pragma clang diagnostic ignored "-Wformat-non-iso" 413bfc5f49e0e37e235bb0d33bcbcb36af9d1f84abTom Care printf("%1$f:%2$.*3$f:%4$.*3$f\n", 1, 2, 3, 4); 42f85626453123f9691bcef13cff963f556e209c27Hans Wennborg#pragma clang diagnostic pop 434c6021995032a898fb0502d5d1fd2df37638e57bTom Care 444c6021995032a898fb0502d5d1fd2df37638e57bTom Care // Precision 454c6021995032a898fb0502d5d1fd2df37638e57bTom Care printf("%10.5d", 1l); // (bug 7394) 464c6021995032a898fb0502d5d1fd2df37638e57bTom Care printf("%.2c", 'a'); 474c6021995032a898fb0502d5d1fd2df37638e57bTom Care 484c6021995032a898fb0502d5d1fd2df37638e57bTom Care // Ignored flags 494c6021995032a898fb0502d5d1fd2df37638e57bTom Care printf("%0-f", 1.23); 504c6021995032a898fb0502d5d1fd2df37638e57bTom Care 514c6021995032a898fb0502d5d1fd2df37638e57bTom Care // Bad length modifiers 524c6021995032a898fb0502d5d1fd2df37638e57bTom Care printf("%hhs", "foo"); 53f85626453123f9691bcef13cff963f556e209c27Hans Wennborg#pragma clang diagnostic push // Don't warn about using positional arguments. 54f85626453123f9691bcef13cff963f556e209c27Hans Wennborg#pragma clang diagnostic ignored "-Wformat-non-iso" 554c6021995032a898fb0502d5d1fd2df37638e57bTom Care printf("%1$zp", (void *)0); 56f85626453123f9691bcef13cff963f556e209c27Hans Wennborg#pragma clang diagnostic pop 57117348caf0a8f91782e9e32e32a8689576f394d7Hans Wennborg 58be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg // Preserve the original formatting for unsigned integers. 591e713f50e904b96623425efa7119fcb98243e111Ted Kremenek unsigned long val = 42; 601e713f50e904b96623425efa7119fcb98243e111Ted Kremenek printf("%X", val); 61a7da2155167676a6a5d9fca4de947a9cab2a4908Hans Wennborg 62a7da2155167676a6a5d9fca4de947a9cab2a4908Hans Wennborg // size_t, etc. 6336e76089b30180ba86598be95bbb0989657fe2fcHans Wennborg printf("%f", (size_t) 42); 6436e76089b30180ba86598be95bbb0989657fe2fcHans Wennborg printf("%f", (intmax_t) 42); 6536e76089b30180ba86598be95bbb0989657fe2fcHans Wennborg printf("%f", (uintmax_t) 42); 6636e76089b30180ba86598be95bbb0989657fe2fcHans Wennborg printf("%f", (ptrdiff_t) 42); 67117348caf0a8f91782e9e32e32a8689576f394d7Hans Wennborg 684684778993c667246039b4664acbce59dc99440cHans Wennborg // Look beyond the first typedef. 694684778993c667246039b4664acbce59dc99440cHans Wennborg typedef size_t my_size_type; 704684778993c667246039b4664acbce59dc99440cHans Wennborg typedef intmax_t my_intmax_type; 714684778993c667246039b4664acbce59dc99440cHans Wennborg typedef uintmax_t my_uintmax_type; 724684778993c667246039b4664acbce59dc99440cHans Wennborg typedef ptrdiff_t my_ptrdiff_type; 734684778993c667246039b4664acbce59dc99440cHans Wennborg typedef int my_int_type; 744684778993c667246039b4664acbce59dc99440cHans Wennborg printf("%f", (my_size_type) 42); 754684778993c667246039b4664acbce59dc99440cHans Wennborg printf("%f", (my_intmax_type) 42); 764684778993c667246039b4664acbce59dc99440cHans Wennborg printf("%f", (my_uintmax_type) 42); 774684778993c667246039b4664acbce59dc99440cHans Wennborg printf("%f", (my_ptrdiff_type) 42); 784684778993c667246039b4664acbce59dc99440cHans Wennborg printf("%f", (my_int_type) 42); 794684778993c667246039b4664acbce59dc99440cHans Wennborg 80117348caf0a8f91782e9e32e32a8689576f394d7Hans Wennborg // string 81117348caf0a8f91782e9e32e32a8689576f394d7Hans Wennborg printf("%ld", "foo"); 82be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg 83be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg // Preserve the original choice of conversion specifier. 84be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg printf("%o", (long) 42); 85be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg printf("%u", (long) 42); 86be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg printf("%x", (long) 42); 87be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg printf("%X", (long) 42); 88be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg printf("%i", (unsigned long) 42); 89be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg printf("%d", (unsigned long) 42); 90be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg printf("%F", (long double) 42); 91be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg printf("%e", (long double) 42); 92be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg printf("%E", (long double) 42); 93be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg printf("%g", (long double) 42); 94be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg printf("%G", (long double) 42); 95be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg printf("%a", (long double) 42); 96be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg printf("%A", (long double) 42); 973bfc5f49e0e37e235bb0d33bcbcb36af9d1f84abTom Care} 981e713f50e904b96623425efa7119fcb98243e111Ted Kremenek 996fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborgint scanf(char const *, ...); 1006fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg 101651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesvoid test2(int intSAParm[static 2]) { 1026fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg char str[100]; 103651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines char *vstr = "abc"; 1046fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg short shortVar; 1056fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg unsigned short uShortVar; 1066fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg int intVar; 107651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines int intAVar[2]; 1086fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg unsigned uIntVar; 1096fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg float floatVar; 1106fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg double doubleVar; 1116fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg long double longDoubleVar; 1126fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg long longVar; 1136fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg unsigned long uLongVar; 1146fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg long long longLongVar; 1156fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg unsigned long long uLongLongVar; 1166fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg size_t sizeVar; 1176fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg intmax_t intmaxVar; 1186fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg uintmax_t uIntmaxVar; 1196fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg ptrdiff_t ptrdiffVar; 120651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines enum {A, B, C} enumVar; 1216fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg 122651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines // Some string types. 1236fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg scanf("%lf", str); 124651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines scanf("%lf", vstr); 125651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines scanf("%ls", str); 126651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines scanf("%ls", str); 127651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 128651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines // Some integer types. 1296fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg scanf("%f", &shortVar); 1306fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg scanf("%f", &uShortVar); 1316fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg scanf("%p", &intVar); 132651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines scanf("%f", intAVar); 133651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines scanf("%f", intSAParm); 1346fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg scanf("%Lf", &uIntVar); 1356fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg scanf("%ld", &floatVar); 1366fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg scanf("%f", &doubleVar); 1376fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg scanf("%d", &longDoubleVar); 1386fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg scanf("%f", &longVar); 1396fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg scanf("%f", &uLongVar); 1406fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg scanf("%f", &longLongVar); 1416fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg scanf("%f", &uLongLongVar); 142651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines scanf("%d", &enumVar); // FIXME: We ought to fix specifiers for enums. 1436fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg 1446fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg // Some named ints. 1456fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg scanf("%f", &sizeVar); 1466fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg scanf("%f", &intmaxVar); 1476fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg scanf("%f", &uIntmaxVar); 1486fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg scanf("%f", &ptrdiffVar); 1496fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg 1504684778993c667246039b4664acbce59dc99440cHans Wennborg // Look beyond the first typedef for named integer types. 1514684778993c667246039b4664acbce59dc99440cHans Wennborg typedef size_t my_size_type; 1524684778993c667246039b4664acbce59dc99440cHans Wennborg typedef intmax_t my_intmax_type; 1534684778993c667246039b4664acbce59dc99440cHans Wennborg typedef uintmax_t my_uintmax_type; 1544684778993c667246039b4664acbce59dc99440cHans Wennborg typedef ptrdiff_t my_ptrdiff_type; 1554684778993c667246039b4664acbce59dc99440cHans Wennborg typedef int my_int_type; 1564684778993c667246039b4664acbce59dc99440cHans Wennborg scanf("%f", (my_size_type*)&sizeVar); 1574684778993c667246039b4664acbce59dc99440cHans Wennborg scanf("%f", (my_intmax_type*)&intmaxVar); 1584684778993c667246039b4664acbce59dc99440cHans Wennborg scanf("%f", (my_uintmax_type*)&uIntmaxVar); 1594684778993c667246039b4664acbce59dc99440cHans Wennborg scanf("%f", (my_ptrdiff_type*)&ptrdiffVar); 1604684778993c667246039b4664acbce59dc99440cHans Wennborg scanf("%f", (my_int_type*)&intVar); 1614684778993c667246039b4664acbce59dc99440cHans Wennborg 162be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg // Preserve the original formatting. 163be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg scanf("%o", &longVar); 164be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg scanf("%u", &longVar); 165be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg scanf("%x", &longVar); 166be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg scanf("%X", &longVar); 167be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg scanf("%i", &uLongVar); 168be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg scanf("%d", &uLongVar); 169be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg scanf("%F", &longDoubleVar); 170be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg scanf("%e", &longDoubleVar); 171be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg scanf("%E", &longDoubleVar); 172be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg scanf("%g", &longDoubleVar); 173be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg scanf("%G", &longDoubleVar); 174be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg scanf("%a", &longDoubleVar); 175be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg scanf("%A", &longDoubleVar); 1766fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg} 1776fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg 178be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// Validate the fixes. 1791e713f50e904b96623425efa7119fcb98243e111Ted Kremenek// CHECK: printf("%d", (int) 123); 1801e713f50e904b96623425efa7119fcb98243e111Ted Kremenek// CHECK: printf("abc%s", "testing testing 123"); 181cdbe1e0d85d7d32452dd1c52758d7bfaa1c0663bJordan Rose// CHECK: printf("%ld", (long) -12); 1821e713f50e904b96623425efa7119fcb98243e111Ted Kremenek// CHECK: printf("%d", 123); 1831e713f50e904b96623425efa7119fcb98243e111Ted Kremenek// CHECK: printf("%s\n", "x"); 1841e713f50e904b96623425efa7119fcb98243e111Ted Kremenek// CHECK: printf("%f\n", 1.23); 185be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: printf("%+.2lld", (unsigned long long) 123456); 1861e713f50e904b96623425efa7119fcb98243e111Ted Kremenek// CHECK: printf("%1Lf", (long double) 1.23); 1871e713f50e904b96623425efa7119fcb98243e111Ted Kremenek// CHECK: printf("%0u", (unsigned) 31337); 1881e713f50e904b96623425efa7119fcb98243e111Ted Kremenek// CHECK: printf("%p", (void *) 0); 1891e713f50e904b96623425efa7119fcb98243e111Ted Kremenek// CHECK: printf("%+f", 1.23); 1901e713f50e904b96623425efa7119fcb98243e111Ted Kremenek// CHECK: printf("%-f", 1.23); 1911e713f50e904b96623425efa7119fcb98243e111Ted Kremenek// CHECK: printf("%1$d:%2$.*3$d:%4$.*3$d\n", 1, 2, 3, 4); 1921e713f50e904b96623425efa7119fcb98243e111Ted Kremenek// CHECK: printf("%10.5ld", 1l); 1931e713f50e904b96623425efa7119fcb98243e111Ted Kremenek// CHECK: printf("%c", 'a'); 1941e713f50e904b96623425efa7119fcb98243e111Ted Kremenek// CHECK: printf("%-f", 1.23); 1951e713f50e904b96623425efa7119fcb98243e111Ted Kremenek// CHECK: printf("%s", "foo"); 1961e713f50e904b96623425efa7119fcb98243e111Ted Kremenek// CHECK: printf("%1$p", (void *)0); 1971e713f50e904b96623425efa7119fcb98243e111Ted Kremenek// CHECK: printf("%lX", val); 198a7da2155167676a6a5d9fca4de947a9cab2a4908Hans Wennborg// CHECK: printf("%zu", (size_t) 42); 199a7da2155167676a6a5d9fca4de947a9cab2a4908Hans Wennborg// CHECK: printf("%jd", (intmax_t) 42); 200a7da2155167676a6a5d9fca4de947a9cab2a4908Hans Wennborg// CHECK: printf("%ju", (uintmax_t) 42); 201a7da2155167676a6a5d9fca4de947a9cab2a4908Hans Wennborg// CHECK: printf("%td", (ptrdiff_t) 42); 2024684778993c667246039b4664acbce59dc99440cHans Wennborg// CHECK: printf("%zu", (my_size_type) 42); 2034684778993c667246039b4664acbce59dc99440cHans Wennborg// CHECK: printf("%jd", (my_intmax_type) 42); 2044684778993c667246039b4664acbce59dc99440cHans Wennborg// CHECK: printf("%ju", (my_uintmax_type) 42); 2054684778993c667246039b4664acbce59dc99440cHans Wennborg// CHECK: printf("%td", (my_ptrdiff_type) 42); 2064684778993c667246039b4664acbce59dc99440cHans Wennborg// CHECK: printf("%d", (my_int_type) 42); 207117348caf0a8f91782e9e32e32a8689576f394d7Hans Wennborg// CHECK: printf("%s", "foo"); 208be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: printf("%lo", (long) 42); 209cdbe1e0d85d7d32452dd1c52758d7bfaa1c0663bJordan Rose// CHECK: printf("%ld", (long) 42); 210be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: printf("%lx", (long) 42); 211be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: printf("%lX", (long) 42); 212cdbe1e0d85d7d32452dd1c52758d7bfaa1c0663bJordan Rose// CHECK: printf("%lu", (unsigned long) 42); 213cdbe1e0d85d7d32452dd1c52758d7bfaa1c0663bJordan Rose// CHECK: printf("%lu", (unsigned long) 42); 214be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: printf("%LF", (long double) 42); 215be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: printf("%Le", (long double) 42); 216be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: printf("%LE", (long double) 42); 217be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: printf("%Lg", (long double) 42); 218be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: printf("%LG", (long double) 42); 219be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: printf("%La", (long double) 42); 220be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: printf("%LA", (long double) 42); 2216fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg 222651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK: scanf("%99s", str); 223651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK: scanf("%s", vstr); 224651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK: scanf("%99s", str); 225651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK: scanf("%99s", str); 2266fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg// CHECK: scanf("%hd", &shortVar); 2276fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg// CHECK: scanf("%hu", &uShortVar); 2286fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg// CHECK: scanf("%d", &intVar); 229651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK: scanf("%d", intAVar); 230651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK: scanf("%d", intSAParm); 2316fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg// CHECK: scanf("%u", &uIntVar); 2326fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg// CHECK: scanf("%f", &floatVar); 2336fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg// CHECK: scanf("%lf", &doubleVar); 2346fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg// CHECK: scanf("%Lf", &longDoubleVar); 2356fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg// CHECK: scanf("%ld", &longVar); 2366fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg// CHECK: scanf("%lu", &uLongVar); 2376fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg// CHECK: scanf("%lld", &longLongVar); 2386fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg// CHECK: scanf("%llu", &uLongLongVar); 239651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK: scanf("%d", &enumVar); 2406fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg// CHECK: scanf("%zu", &sizeVar); 2416fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg// CHECK: scanf("%jd", &intmaxVar); 2426fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg// CHECK: scanf("%ju", &uIntmaxVar); 2436fcd932dfd6835f70cc00d6f7c6789793f6d7b66Hans Wennborg// CHECK: scanf("%td", &ptrdiffVar); 2444684778993c667246039b4664acbce59dc99440cHans Wennborg// CHECK: scanf("%zu", (my_size_type*)&sizeVar); 2454684778993c667246039b4664acbce59dc99440cHans Wennborg// CHECK: scanf("%jd", (my_intmax_type*)&intmaxVar); 2464684778993c667246039b4664acbce59dc99440cHans Wennborg// CHECK: scanf("%ju", (my_uintmax_type*)&uIntmaxVar); 2474684778993c667246039b4664acbce59dc99440cHans Wennborg// CHECK: scanf("%td", (my_ptrdiff_type*)&ptrdiffVar); 2484684778993c667246039b4664acbce59dc99440cHans Wennborg// CHECK: scanf("%d", (my_int_type*)&intVar); 249be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: scanf("%lo", &longVar); 250be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: scanf("%lu", &longVar); 251be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: scanf("%lx", &longVar); 252be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: scanf("%lX", &longVar); 253be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: scanf("%li", &uLongVar); 254be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: scanf("%ld", &uLongVar); 255be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: scanf("%LF", &longDoubleVar); 256be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: scanf("%Le", &longDoubleVar); 257be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: scanf("%LE", &longDoubleVar); 258be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: scanf("%Lg", &longDoubleVar); 259be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: scanf("%LG", &longDoubleVar); 260be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: scanf("%La", &longDoubleVar); 261be6126a2a784e1446460b8d15c2b26f880c871fcHans Wennborg// CHECK: scanf("%LA", &longDoubleVar); 262