| // RUN: %clang_analyze_cc1 -std=c++11 -analyzer-checker=core,debug.ExprInspection -analyzer-config inline-lambdas=true -verify %s |
| |
| void clang_analyzer_eval(bool); |
| |
| void basic() { |
| int (*ret_zero)() = []() { return 0; }; |
| clang_analyzer_eval(ret_zero() == 0); // expected-warning{{TRUE}} |
| } |
| |
| void withParam() { |
| int (*add_ten)(int) = [](int b) { return b + 10; }; |
| clang_analyzer_eval(add_ten(1) == 11); // expected-warning{{TRUE}} |
| } |
| |
| int callBack(int (*fp)(int), int x) { |
| return fp(x); |
| } |
| |
| void passWithFunc() { |
| clang_analyzer_eval(callBack([](int x) { return x; }, 5) == 5); // expected-warning{{TRUE}} |
| } |