Bruno Cardoso Lopes | dc195d0 | 2016-03-29 18:38:44 +0000 | [diff] [blame] | 1 | // REQUIRES: shell |
| 2 | // RUN: env -i LC_ALL=C \ |
| 3 | // RUN: %clang_cc1 -triple x86_64-apple-darwin -Wformat-nonliteral -fsyntax-only -verify -Wno-objc-root-class %s |
| 4 | |
| 5 | #include <stdarg.h> |
| 6 | int printf(const char *restrict, ...); |
| 7 | int scanf(const char * restrict, ...); |
| 8 | @class NSString, Protocol; |
| 9 | extern void NSLog(NSString *format, ...); |
| 10 | |
| 11 | void testInvalidNoPrintable(int *a) { |
| 12 | printf("%\u25B9"); // expected-warning {{invalid conversion specifier '\u25b9'}} |
| 13 | printf("%\xE2\x96\xB9"); // expected-warning {{invalid conversion specifier '\u25b9'}} |
| 14 | printf("%\U00010348"); // expected-warning {{invalid conversion specifier '\U00010348'}} |
| 15 | printf("%\xF0\x90\x8D\x88"); // expected-warning {{invalid conversion specifier '\U00010348'}} |
| 16 | printf("%\xe2"); // expected-warning {{invalid conversion specifier '\xe2'}} |
| 17 | NSLog(@"%\u25B9"); // expected-warning {{invalid conversion specifier '\u25b9'}} |
| 18 | NSLog(@"%\xE2\x96\xB9"); // expected-warning {{invalid conversion specifier '\u25b9'}} |
| 19 | NSLog(@"%\U00010348"); // expected-warning {{invalid conversion specifier '\U00010348'}} |
| 20 | NSLog(@"%\xF0\x90\x8D\x88"); // expected-warning {{invalid conversion specifier '\U00010348'}} |
| 21 | NSLog(@"%\xe2"); // expected-warning {{input conversion stopped}} expected-warning {{invalid conversion specifier '\xe2'}} |
| 22 | scanf("%\u25B9", a); // expected-warning {{invalid conversion specifier '\u25b9'}} |
| 23 | scanf("%\xE2\x96\xB9", a); // expected-warning {{invalid conversion specifier '\u25b9'}} |
| 24 | scanf("%\U00010348", a); // expected-warning {{invalid conversion specifier '\U00010348'}} |
| 25 | scanf("%\xF0\x90\x8D\x88", a); // expected-warning {{invalid conversion specifier '\U00010348'}} |
| 26 | scanf("%\xe2", a); // expected-warning {{invalid conversion specifier '\xe2'}} |
| 27 | } |