diff options
Diffstat (limited to 'test/Analysis/func.c')
-rw-r--r-- | test/Analysis/func.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/test/Analysis/func.c b/test/Analysis/func.c index b6cebde8..709ebf7 100644 --- a/test/Analysis/func.c +++ b/test/Analysis/func.c @@ -1,4 +1,6 @@ -// RUN: %clang_cc1 -analyze -analyzer-checker=core,experimental.core -analyzer-store=region -verify %s +// RUN: %clang_cc1 -analyze -analyzer-checker=core,experimental.core,debug.ExprInspection -analyzer-store=region -verify %s + +void clang_analyzer_eval(int); void f(void) { void (*p)(void); @@ -13,3 +15,13 @@ void g(void (*fp)(void)); void f2() { g(f); } + +void f3(void (*f)(void), void (*g)(void)) { + clang_analyzer_eval(!f); // expected-warning{{UNKNOWN}} + f(); + clang_analyzer_eval(!f); // expected-warning{{FALSE}} + + clang_analyzer_eval(!g); // expected-warning{{UNKNOWN}} + (*g)(); + clang_analyzer_eval(!g); // expected-warning{{FALSE}} +} |