UninitializedValues.h revision 5d98994c7749312a43ce6adf45537979a98e7afd
1//= UninitializedValues.h - Finding uses of uninitialized values --*- C++ -*-==//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file defines APIs for invoking and reported uninitialized values
11// warnings.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_CLANG_UNINIT_VALS_H
16#define LLVM_CLANG_UNINIT_VALS_H
17
18namespace clang {
19
20class AnalysisContext;
21class CFG;
22class DeclContext;
23class Expr;
24class VarDecl;
25
26class UninitVariablesHandler {
27public:
28  UninitVariablesHandler() {}
29  virtual ~UninitVariablesHandler();
30
31  virtual void handleUseOfUninitVariable(const Expr *ex,
32                                         const VarDecl *vd,
33                                         bool isAlwaysUninit) {}
34};
35
36struct UninitVariablesAnalysisStats {
37  unsigned NumVariablesAnalyzed;
38  unsigned NumBlockVisits;
39};
40
41void runUninitializedVariablesAnalysis(const DeclContext &dc, const CFG &cfg,
42                                       AnalysisContext &ac,
43                                       UninitVariablesHandler &handler,
44                                       UninitVariablesAnalysisStats &stats);
45
46}
47#endif
48