LLVM: include/llvm/DebugInfo/CodeView/TypeRecordHelpers.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9#ifndef LLVM_DEBUGINFO_CODEVIEW_TYPERECORDHELPERS_H

10#define LLVM_DEBUGINFO_CODEVIEW_TYPERECORDHELPERS_H

11

15

16namespace llvm {

18

19

20

21

23

24

25

27

28

29

31 switch (K) {

32 case TypeLeafKind::LF_FUNC_ID:

33 case TypeLeafKind::LF_MFUNC_ID:

34 case TypeLeafKind::LF_STRING_ID:

35 case TypeLeafKind::LF_SUBSTR_LIST:

36 case TypeLeafKind::LF_BUILDINFO:

37 case TypeLeafKind::LF_UDT_SRC_LINE:

38 case TypeLeafKind::LF_UDT_MOD_SRC_LINE:

39 return true;

40 default:

41 return false;

42 }

43}

44

45

46

48 switch (CVT.kind()) {

49 case LF_STRUCTURE:

50 case LF_CLASS:

51 case LF_INTERFACE:

52 case LF_UNION:

53 return true;

54 default:

55 return false;

56 }

57}

58

59

61

62

63

65

66}

67}

68

69#endif

LLVM_ABI bool isUdtForwardRef(CVType CVT)

Given an arbitrary codeview type, determine if it is an LF_STRUCTURE, LF_CLASS, LF_INTERFACE,...

CVRecord< TypeLeafKind > CVType

bool isIdRecord(TypeLeafKind K)

Return true if this record should be in the IPI stream of a PDB.

Definition TypeRecordHelpers.h:30

TypeLeafKind

Duplicate copy of the above enum, but using the official CV names.

bool isAggregate(CVType CVT)

Given an arbitrary codeview type, determine if it is an LF_STRUCTURE, LF_CLASS, LF_INTERFACE,...

Definition TypeRecordHelpers.h:47

LLVM_ABI uint64_t getSizeInBytesForTypeRecord(CVType CVT)

Given an arbitrary codeview type, return the type's size in the case of aggregate (LF_STRUCTURE,...

LLVM_ABI uint64_t getSizeInBytesForTypeIndex(TypeIndex TI)

Given an arbitrary codeview type index, determine its size.

LLVM_ABI TypeIndex getModifiedType(const CVType &CVT)

Given a CVType which is assumed to be an LF_MODIFIER, return the TypeIndex of the type that the LF_MO...

This is an optimization pass for GlobalISel generic memory operations.