diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2012-04-14 14:01:31 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2012-04-14 14:01:31 +0000 |
commit | dbe13110f59f48b4dbb7552b3ac2935acdeece7f (patch) | |
tree | be1815eb79b42ff482a8562b13c2dcbf0c5dcbee /test/Sema/implicit-decl.c | |
parent | 9da628931ebf2609493570f87824ca22402cc65f (diff) |
Notes
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 f45597753663..ffab9a6f913c 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'?}} +} |