1 // RUN: %clang_analyze_cc1 -analyzer-checker=core,alpha.core,debug.ExprInspection -verify -analyzer-config eagerly-assume=false %s
3 void clang_analyzer_eval(int);
4 void clang_analyzer_warnIfReached(void);
14 void g(void (*fp
)(void));
20 void f3(void (*f
)(void), void (*g
)(void)) {
21 clang_analyzer_eval(!f
); // expected-warning{{UNKNOWN}}
23 clang_analyzer_eval(!f
); // expected-warning{{FALSE}}
25 clang_analyzer_eval(!g
); // expected-warning{{UNKNOWN}}
27 clang_analyzer_eval(!g
); // expected-warning{{FALSE}}
30 void nullFunctionPointerConstant(void) {
32 f(); // expected-warning{{Called function pointer is null}}
33 clang_analyzer_warnIfReached(); // no-warning
36 void nullFunctionPointerConstraint(void (*f
)(void)) {
39 f(); // expected-warning{{Called function pointer is null}}
40 clang_analyzer_warnIfReached(); // no-warning