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