diff options
Diffstat (limited to 'clang/test/Analysis/func.c')
-rw-r--r-- | clang/test/Analysis/func.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/test/Analysis/func.c b/clang/test/Analysis/func.c index 9abb560e758..275a82da2e7 100644 --- a/clang/test/Analysis/func.c +++ b/clang/test/Analysis/func.c @@ -25,3 +25,16 @@ void f3(void (*f)(void), void (*g)(void)) { (*g)(); clang_analyzer_eval(!g); // expected-warning{{FALSE}} } + +void nullFunctionPointerConstant() { + void (*f)(void) = 0; + f(); // expected-warning{{Called function pointer is null}} + clang_analyzer_eval(0); // no-warning +} + +void nullFunctionPointerConstraint(void (*f)(void)) { + if (f) + return; + f(); // expected-warning{{Called function pointer is null}} + clang_analyzer_eval(0); // no-warning +} |