From f065c436a5b5fd26cdd5392a4a5957b2bb9bb3b4 Mon Sep 17 00:00:00 2001 From: Bruno Cardoso Lopes Date: Tue, 29 Mar 2016 20:47:09 +0000 Subject: [PATCH] [Sema] Attempt [2] to fix tests for utf-8 invalid format string specifiers Some buildbots still complain. Followup from r264752 and 264765. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@264784 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/SemaObjC/format-strings-utf8.m | 53 +++++++++++++++++++---------- 1 file changed, 35 insertions(+), 18 deletions(-) diff --git a/test/SemaObjC/format-strings-utf8.m b/test/SemaObjC/format-strings-utf8.m index 29ee538142..5a26303509 100644 --- a/test/SemaObjC/format-strings-utf8.m +++ b/test/SemaObjC/format-strings-utf8.m @@ -1,6 +1,8 @@ -// REQUIRES: shell -// RUN: env -i LC_ALL=C \ -// RUN: %clang_cc1 -triple x86_64-apple-darwin -Wformat-nonliteral -fsyntax-only -verify -Wno-objc-root-class %s +// 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 int printf(const char *restrict, ...); @@ -9,19 +11,34 @@ int scanf(const char * restrict, ...); extern void NSLog(NSString *format, ...); void testInvalidNoPrintable(int *a) { - printf("%\u25B9"); // expected-warning {{invalid conversion specifier '\u25b9'}} - printf("%\xE2\x96\xB9"); // expected-warning {{invalid conversion specifier '\u25b9'}} - printf("%\U00010348"); // expected-warning {{invalid conversion specifier '\U00010348'}} - printf("%\xF0\x90\x8D\x88"); // expected-warning {{invalid conversion specifier '\U00010348'}} - printf("%\xe2"); // expected-warning {{invalid conversion specifier '\xe2'}} - NSLog(@"%\u25B9"); // expected-warning {{invalid conversion specifier '\u25b9'}} - NSLog(@"%\xE2\x96\xB9"); // expected-warning {{invalid conversion specifier '\u25b9'}} - NSLog(@"%\U00010348"); // expected-warning {{invalid conversion specifier '\U00010348'}} - NSLog(@"%\xF0\x90\x8D\x88"); // expected-warning {{invalid conversion specifier '\U00010348'}} - NSLog(@"%\xe2"); // expected-warning {{input conversion stopped}} expected-warning {{invalid conversion specifier '\xe2'}} - scanf("%\u25B9", a); // expected-warning {{invalid conversion specifier '\u25b9'}} - scanf("%\xE2\x96\xB9", a); // expected-warning {{invalid conversion specifier '\u25b9'}} - scanf("%\U00010348", a); // expected-warning {{invalid conversion specifier '\U00010348'}} - scanf("%\xF0\x90\x8D\x88", a); // expected-warning {{invalid conversion specifier '\U00010348'}} - scanf("%\xe2", a); // expected-warning {{invalid conversion specifier '\xe2'}} + // CHECK: invalid conversion specifier '\u25b9' + // CHECK: invalid conversion specifier '\u25b9' + // CHECK: invalid conversion specifier '\U00010348' + // CHECK: invalid conversion specifier '\U00010348' + // CHECK: invalid conversion specifier '\xe2' + // CHECK: invalid conversion specifier '\u25b9' + // CHECK: invalid conversion specifier '\u25b9' + // CHECK: invalid conversion specifier '\U00010348' + // CHECK: invalid conversion specifier '\U00010348' + // CHECK: invalid conversion specifier '\xe2' + // CHECK: invalid conversion specifier '\u25b9' + // CHECK: invalid conversion specifier '\u25b9' + // CHECK: invalid conversion specifier '\U00010348' + // CHECK: invalid conversion specifier '\U00010348' + // CHECK: invalid conversion specifier '\xe2' + 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); } -- 2.40.0