blob: 29ee538142506b59c05afeb4fff8b18ad2a0a7fd [file] [log] [blame]
Bruno Cardoso Lopesdc195d02016-03-29 18:38:44 +00001// 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>
6int printf(const char *restrict, ...);
7int scanf(const char * restrict, ...);
8@class NSString, Protocol;
9extern void NSLog(NSString *format, ...);
10
11void 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}