clang: include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h Source File (original) (raw)

Go to the documentation of this file.

1

2

3

4

5

6

7

8

9#ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_DYNAMICTYPEINFO_H

10#define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_DYNAMICTYPEINFO_H

11

13

15namespace ento {

16

17

18

20public:

22

24 : DynTy(Ty), CanBeASubClass(CanBeSub) {}

25

26

27

29

30

32

33

35

37

39 return DynTy == RHS.DynTy && CanBeASubClass == RHS.CanBeASubClass;

40 }

41

42 void Profile(llvm::FoldingSetNodeID &ID) const {

43 ID.Add(DynTy);

44 ID.AddBoolean(CanBeASubClass);

45 }

46

47private:

49 bool CanBeASubClass;

50};

51

52}

53}

54

55#endif

C Language Family Type Representation.

A (possibly-)qualified type.

bool isNull() const

Return true if this QualType doesn't point to a type yet.

Stores the currently inferred strictest bound on the runtime type of a region in a given state along ...

bool operator==(const DynamicTypeInfo &RHS) const

void Profile(llvm::FoldingSetNodeID &ID) const

bool canBeASubClass() const

Returns false if the type information is precise (the type 'DynTy' is the only type in the lattice),...

QualType getType() const

Returns the currently inferred upper bound on the runtime type.

bool isValid() const

Returns true if the dynamic type info is available.

DynamicTypeInfo(QualType Ty, bool CanBeSub=true)

The JSON file list parser is used to communicate input to InstallAPI.