diff options
author | dim <dim@FreeBSD.org> | 2012-04-14 14:01:31 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2012-04-14 14:01:31 +0000 |
commit | 50b73317314e889cf39c7b1d6cbf419fa7502f22 (patch) | |
tree | be1815eb79b42ff482a8562b13c2dcbf0c5dcbee /test/Sema/implicit-decl.c | |
parent | dc04cb328508e61aad809d9b53b12f9799a00e7d (diff) | |
download | FreeBSD-src-50b73317314e889cf39c7b1d6cbf419fa7502f22.zip FreeBSD-src-50b73317314e889cf39c7b1d6cbf419fa7502f22.tar.gz |
Vendor import of clang trunk r154661:
http://llvm.org/svn/llvm-project/cfe/trunk@r154661
Diffstat (limited to 'test/Sema/implicit-decl.c')
-rw-r--r-- | test/Sema/implicit-decl.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/test/Sema/implicit-decl.c b/test/Sema/implicit-decl.c index f455977..ffab9a6 100644 --- a/test/Sema/implicit-decl.c +++ b/test/Sema/implicit-decl.c @@ -1,17 +1,32 @@ -// RUN: %clang_cc1 %s -verify -fsyntax-only +// RUN: %clang_cc1 %s -verify -fsyntax-only -Werror typedef int int32_t; typedef unsigned char Boolean; +extern int printf(__const char *__restrict __format, ...); // expected-note{{'printf' declared here}} + void func() { int32_t *vector[16]; const char compDesc[16 + 1]; int32_t compCount = 0; if (_CFCalendarDecomposeAbsoluteTimeV(compDesc, vector, compCount)) { // expected-note {{previous implicit declaration is here}} \ - expected-warning {{implicit declaration of function '_CFCalendarDecomposeAbsoluteTimeV' is invalid in C99}} + expected-error {{implicit declaration of function '_CFCalendarDecomposeAbsoluteTimeV' is invalid in C99}} } + + printg("Hello, World!\n"); // expected-error{{implicit declaration of function 'printg' is invalid in C99}} \ + // expected-note{{did you mean 'printf'?}} + + __builtin_is_les(1, 3); // expected-error{{use of unknown builtin '__builtin_is_les'}} } Boolean _CFCalendarDecomposeAbsoluteTimeV(const char *componentDesc, int32_t **vector, int32_t count) { // expected-error{{conflicting types for '_CFCalendarDecomposeAbsoluteTimeV'}} return 0; } + +// Test the typo-correction callback in Sema::ImplicitlyDefineFunction +extern int sformatf(char *str, __const char *__restrict __format, ...); // expected-note{{'sformatf' declared here}} +void test_implicit() { + int formats = 0; + formatd("Hello, World!\n"); // expected-error{{implicit declaration of function 'formatd' is invalid in C99}} \ + // expected-note{{did you mean 'sformatf'?}} +} |