xref: /llvm-project/clang/test/Analysis/inline-if-constexpr.cpp (revision ab7747b727d79c9cc67b0ffb75528bf9bb67d9e8)
1*ab7747b7SArtem Dergachev // RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection \
2*ab7747b7SArtem Dergachev // RUN:   -analyzer-inline-max-stack-depth=5 -w -std=c++17 -verify %s
3*ab7747b7SArtem Dergachev 
4*ab7747b7SArtem Dergachev void clang_analyzer_eval(bool);
5*ab7747b7SArtem Dergachev 
6*ab7747b7SArtem Dergachev namespace inline_large_functions_with_if_constexpr {
f0()7*ab7747b7SArtem Dergachev bool f0() { if constexpr (true); return true; }
f1()8*ab7747b7SArtem Dergachev bool f1() { if constexpr (true); return f0(); }
f2()9*ab7747b7SArtem Dergachev bool f2() { if constexpr (true); return f1(); }
f3()10*ab7747b7SArtem Dergachev bool f3() { if constexpr (true); return f2(); }
f4()11*ab7747b7SArtem Dergachev bool f4() { if constexpr (true); return f3(); }
f5()12*ab7747b7SArtem Dergachev bool f5() { if constexpr (true); return f4(); }
f6()13*ab7747b7SArtem Dergachev bool f6() { if constexpr (true); return f5(); }
f7()14*ab7747b7SArtem Dergachev bool f7() { if constexpr (true); return f6(); }
bar()15*ab7747b7SArtem Dergachev void bar() {
16*ab7747b7SArtem Dergachev   clang_analyzer_eval(f7()); // expected-warning{{TRUE}}
17*ab7747b7SArtem Dergachev }
18*ab7747b7SArtem Dergachev } // namespace inline_large_functions_with_if_constexpr
19