mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-21 04:25:45 -04:00

Includes tests highlighting the cases where accuracy has improved (there is one call that does no filtering beyond selecting the set of allowed keywords, and one call that only triggers for ObjC code for which a test by someone who knows ObjC would be welcome). Also fixes a small typo in one of the suggestion messages, and drops a malformed "expected-note" for a suggestion that did not occur even when the malformed note was committed as r145930. llvm-svn: 148420
33 lines
1.4 KiB
C
33 lines
1.4 KiB
C
// 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-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'?}}
|
|
}
|