forked from OSchip/llvm-project
[Sema] Attempt to fix tests for utf-8 invalid format string specifiers
Followup from r264752. Attempt to appease buildbots: http://lab.llvm.org:8011/builders/clang-ppc64be-linux/builds/2882 http://lab.llvm.org:8011/builders/clang-s390x-linux/builds/2619 llvm-svn: 264765
This commit is contained in:
parent
23851940e5
commit
dc195d005f
|
@ -183,11 +183,3 @@ void check_conditional_literal(char *s, int *i) {
|
|||
scanf(i ? "%d" : "%d", i, s); // expected-warning{{data argument not used}}
|
||||
scanf(i ? "%s" : "%d", s); // expected-warning{{format specifies type 'int *'}}
|
||||
}
|
||||
|
||||
void testInvalidNoPrintable(int *a) {
|
||||
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'}}
|
||||
}
|
||||
|
|
|
@ -642,14 +642,6 @@ void test_qualifiers(volatile int *vip, const int *cip,
|
|||
printf("%n", (cip_t)0); // expected-warning{{format specifies type 'int *' but the argument has type 'cip_t' (aka 'const int *')}}
|
||||
}
|
||||
|
||||
void testInvalidNoPrintable() {
|
||||
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'}}
|
||||
}
|
||||
|
||||
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
|
||||
#pragma GCC diagnostic warning "-Wformat-security"
|
||||
// <rdar://problem/14178260>
|
||||
|
|
|
@ -264,12 +264,3 @@ void testObjCModifierFlags() {
|
|||
NSLog(@"%2$[tt]@ %1$[tt]@", @"Foo", @"Bar"); // no-warning
|
||||
NSLog(@"%2$[tt]@ %1$[tt]s", @"Foo", @"Bar"); // expected-warning {{object format flags cannot be used with 's' conversion specifier}}
|
||||
}
|
||||
|
||||
// Test Objective-C invalid no printable specifiers
|
||||
void testObjcInvalidNoPrintable(int *a) {
|
||||
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'}}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
// 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
|
||||
|
||||
#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) {
|
||||
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'}}
|
||||
}
|
Loading…
Reference in New Issue