Mercurial > hg > CbC > CbC_llvm
view clang/test/Analysis/func.c @ 236:c4bab56944e8 llvm-original
LLVM 16
author | kono |
---|---|
date | Wed, 09 Nov 2022 17:45:10 +0900 |
parents | 1d019706d866 |
children |
line wrap: on
line source
// RUN: %clang_analyze_cc1 -analyzer-checker=core,alpha.core,debug.ExprInspection -verify -analyzer-config eagerly-assume=false %s void clang_analyzer_eval(int); void clang_analyzer_warnIfReached(void); void f(void) { void (*p)(void); p = f; p = &f; p(); (*p)(); } void g(void (*fp)(void)); void f2(void) { 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}} } void nullFunctionPointerConstant(void) { void (*f)(void) = 0; f(); // expected-warning{{Called function pointer is null}} clang_analyzer_warnIfReached(); // no-warning } void nullFunctionPointerConstraint(void (*f)(void)) { if (f) return; f(); // expected-warning{{Called function pointer is null}} clang_analyzer_warnIfReached(); // no-warning }