diff options
| author | Hans Wennborg <hans@hanshq.net> | 2011-12-06 09:46:12 +0000 |
|---|---|---|
| committer | Hans Wennborg <hans@hanshq.net> | 2011-12-06 09:46:12 +0000 |
| commit | 2fb8b91f6f96363b87e9a501260343c664701ff4 (patch) | |
| tree | b4cf1e55ae72e8062c96673d456be3c7df9bb58f /clang/test/Sema | |
| parent | 83320e03e6fdcbf2aff73f72c78edeffbbd878ef (diff) | |
| download | bcm5719-llvm-2fb8b91f6f96363b87e9a501260343c664701ff4.tar.gz bcm5719-llvm-2fb8b91f6f96363b87e9a501260343c664701ff4.zip | |
Suggest typo corrections for implicit function declarations.
A mistyped function call becomes an inmplicit function declaration in C.
Suggest typo correction when one can be found.
llvm-svn: 145930
Diffstat (limited to 'clang/test/Sema')
| -rw-r--r-- | clang/test/Sema/builtins.c | 4 | ||||
| -rw-r--r-- | clang/test/Sema/c89.c | 9 | ||||
| -rw-r--r-- | clang/test/Sema/implicit-decl.c | 9 |
3 files changed, 18 insertions, 4 deletions
diff --git a/clang/test/Sema/builtins.c b/clang/test/Sema/builtins.c index 64efefc7fda..0850cc4ee4b 100644 --- a/clang/test/Sema/builtins.c +++ b/clang/test/Sema/builtins.c @@ -78,7 +78,8 @@ void test12(void) { } void test_unknown_builtin(int a, int b) { - __builtin_foo(a, b); // expected-error{{use of unknown builtin}} + __builtin_isles(a, b); // expected-error{{use of unknown builtin}} \ + // expected-note{{did you mean '__builtin_isless'?}} } int test13() { @@ -101,4 +102,3 @@ int test16() { return __builtin_constant_p() + // expected-error{{too few arguments}} __builtin_constant_p(1, 2); // expected-error {{too many arguments}} } - diff --git a/clang/test/Sema/c89.c b/clang/test/Sema/c89.c index 670dd15539f..e4cdc11be1c 100644 --- a/clang/test/Sema/c89.c +++ b/clang/test/Sema/c89.c @@ -1,4 +1,4 @@ -/* RUN: %clang_cc1 %s -std=c89 -pedantic -fsyntax-only -verify +/* RUN: %clang_cc1 %s -std=c89 -pedantic -fsyntax-only -verify -Wimplicit-function-declaration */ void test1() { { @@ -82,3 +82,10 @@ void test13b() { int test14() { return (&*test14)(); } int test15[5] = { [2] = 1 }; /* expected-warning {{designated initializers are a C99 feature}} */ + +extern int printf(__const char *__restrict __format, ...); /* expected-note{{'printf' declared here}} */ + +void test16() { + printg("Hello, world!\n"); /* expected-warning {{implicit declaration of function 'printg'}} + expected-note {{did you mean 'printf'?}} */ +} diff --git a/clang/test/Sema/implicit-decl.c b/clang/test/Sema/implicit-decl.c index f4559775366..72e42e05bb6 100644 --- a/clang/test/Sema/implicit-decl.c +++ b/clang/test/Sema/implicit-decl.c @@ -3,6 +3,8 @@ 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]; @@ -10,8 +12,13 @@ void func() { if (_CFCalendarDecomposeAbsoluteTimeV(compDesc, vector, compCount)) { // expected-note {{previous implicit declaration is here}} \ expected-warning {{implicit declaration of function '_CFCalendarDecomposeAbsoluteTimeV' is invalid in C99}} } + + printg("Hello, World!\n"); // expected-warning{{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'}} \ + // expected-note{did you mean '__builtin_is_less'?}} } Boolean _CFCalendarDecomposeAbsoluteTimeV(const char *componentDesc, int32_t **vector, int32_t count) { // expected-error{{conflicting types for '_CFCalendarDecomposeAbsoluteTimeV'}} return 0; } - |

