diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2016-07-23 20:44:14 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2016-07-23 20:44:14 +0000 |
commit | 2b6b257f4e5503a7a2675bdb8735693db769f75c (patch) | |
tree | e85e046ae7003fe3bcc8b5454cd0fa3f7407b470 /test/SemaObjC/format-strings-utf8.m | |
parent | b4348ed0b7e90c0831b925fbee00b5f179a99796 (diff) |
Notes
Diffstat (limited to 'test/SemaObjC/format-strings-utf8.m')
-rw-r--r-- | test/SemaObjC/format-strings-utf8.m | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/SemaObjC/format-strings-utf8.m b/test/SemaObjC/format-strings-utf8.m new file mode 100644 index 0000000000000..d4c21b11ea722 --- /dev/null +++ b/test/SemaObjC/format-strings-utf8.m @@ -0,0 +1,45 @@ +// REQUIRES: system-darwin +// RUN: rm -f %t.log +// RUN: env RC_DEBUG_OPTIONS=1 \ +// RUN: CC_LOG_DIAGNOSTICS=1 CC_LOG_DIAGNOSTICS_FILE=%t.log \ +// RUN: %clang -target x86_64-apple-darwin -fsyntax-only %s +// RUN: FileCheck %s < %t.log + +#include <stdarg.h> +int printf(const char *restrict, ...); +int scanf(const char * restrict, ...); +@class NSString, Protocol; +extern void NSLog(NSString *format, ...); + +void testInvalidNoPrintable(int *a) { + // CHECK: <string>invalid conversion specifier '\u25b9'</string> + // CHECK: <string>invalid conversion specifier '\u25b9'</string> + // CHECK: <string>invalid conversion specifier '\U00010348'</string> + // CHECK: <string>invalid conversion specifier '\U00010348'</string> + // CHECK: <string>invalid conversion specifier '\xe2'</string> + // CHECK: <string>invalid conversion specifier '\u25b9'</string> + // CHECK: <string>invalid conversion specifier '\u25b9'</string> + // CHECK: <string>invalid conversion specifier '\U00010348'</string> + // CHECK: <string>invalid conversion specifier '\U00010348'</string> + // CHECK: <string>invalid conversion specifier '\xe2'</string> + // CHECK: <string>invalid conversion specifier '\u25b9'</string> + // CHECK: <string>invalid conversion specifier '\u25b9'</string> + // CHECK: <string>invalid conversion specifier '\U00010348'</string> + // CHECK: <string>invalid conversion specifier '\U00010348'</string> + // CHECK: <string>invalid conversion specifier '\xe2'</string> + printf("%\u25B9"); + printf("%\xE2\x96\xB9"); + printf("%\U00010348"); + printf("%\xF0\x90\x8D\x88"); + printf("%\xe2"); + NSLog(@"%\u25B9"); + NSLog(@"%\xE2\x96\xB9"); + NSLog(@"%\U00010348"); + NSLog(@"%\xF0\x90\x8D\x88"); + NSLog(@"%\xe2"); + scanf("%\u25B9", a); + scanf("%\xE2\x96\xB9", a); + scanf("%\U00010348", a); + scanf("%\xF0\x90\x8D\x88", a); + scanf("%\xe2", a); +} |