Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 1
//===- llvm/IR/DebugInfoFlags.def - Debug info flag definitions -*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// Macros for running through debug info flags.
10
//
11
//===----------------------------------------------------------------------===//
12
 
13
#if !(defined HANDLE_DI_FLAG || defined HANDLE_DISP_FLAG)
14
#error "Missing macro definition of HANDLE_DI*"
15
#endif
16
 
17
#ifndef HANDLE_DI_FLAG
18
#define HANDLE_DI_FLAG(ID, NAME)
19
#endif
20
 
21
#ifndef HANDLE_DISP_FLAG
22
#define HANDLE_DISP_FLAG(ID, NAME)
23
#endif
24
 
25
// General flags kept in DINode.
26
 
27
HANDLE_DI_FLAG(0, Zero) // Use it as zero value.
28
                        // For example: void foo(DIFlags Flags = FlagZero).
29
HANDLE_DI_FLAG(1, Private)
30
HANDLE_DI_FLAG(2, Protected)
31
HANDLE_DI_FLAG(3, Public)
32
HANDLE_DI_FLAG((1 << 2), FwdDecl)
33
HANDLE_DI_FLAG((1 << 3), AppleBlock)
34
// Used to be BlockByRef, can be reused for anything except DICompositeType.
35
HANDLE_DI_FLAG((1 << 4), ReservedBit4)
36
HANDLE_DI_FLAG((1 << 5), Virtual)
37
HANDLE_DI_FLAG((1 << 6), Artificial)
38
HANDLE_DI_FLAG((1 << 7), Explicit)
39
HANDLE_DI_FLAG((1 << 8), Prototyped)
40
HANDLE_DI_FLAG((1 << 9), ObjcClassComplete)
41
HANDLE_DI_FLAG((1 << 10), ObjectPointer)
42
HANDLE_DI_FLAG((1 << 11), Vector)
43
HANDLE_DI_FLAG((1 << 12), StaticMember)
44
HANDLE_DI_FLAG((1 << 13), LValueReference)
45
HANDLE_DI_FLAG((1 << 14), RValueReference)
46
HANDLE_DI_FLAG((1 << 15), ExportSymbols)
47
HANDLE_DI_FLAG((1 << 16), SingleInheritance)
48
HANDLE_DI_FLAG((2 << 16), MultipleInheritance)
49
HANDLE_DI_FLAG((3 << 16), VirtualInheritance)
50
HANDLE_DI_FLAG((1 << 18), IntroducedVirtual)
51
HANDLE_DI_FLAG((1 << 19), BitField)
52
HANDLE_DI_FLAG((1 << 20), NoReturn)
53
HANDLE_DI_FLAG((1 << 22), TypePassByValue)
54
HANDLE_DI_FLAG((1 << 23), TypePassByReference)
55
HANDLE_DI_FLAG((1 << 24), EnumClass)
56
HANDLE_DI_FLAG((1 << 25), Thunk)
57
HANDLE_DI_FLAG((1 << 26), NonTrivial)
58
HANDLE_DI_FLAG((1 << 27), BigEndian)
59
HANDLE_DI_FLAG((1 << 28), LittleEndian)
60
HANDLE_DI_FLAG((1 << 29), AllCallsDescribed)
61
 
62
// To avoid needing a dedicated value for IndirectVirtualBase, we use
63
// the bitwise or of Virtual and FwdDecl, which does not otherwise
64
// make sense for inheritance.
65
HANDLE_DI_FLAG((1 << 2) | (1 << 5), IndirectVirtualBase)
66
 
67
#ifdef DI_FLAG_LARGEST_NEEDED
68
// intended to be used with ADT/BitmaskEnum.h
69
// NOTE: always must be equal to largest flag, check this when adding new flag
70
HANDLE_DI_FLAG((1 << 29), Largest)
71
#undef DI_FLAG_LARGEST_NEEDED
72
#endif
73
 
74
// Subprogram-specific flags kept in DISubprogram.
75
 
76
// Use this as a zero/initialization value.
77
// For example: void foo(DISPFlags Flags = SPFlagZero).
78
HANDLE_DISP_FLAG(0, Zero)
79
// Virtuality is a two-bit enum field in the LSB of the word.
80
// Values should match DW_VIRTUALITY_*.
81
HANDLE_DISP_FLAG(1u, Virtual)
82
HANDLE_DISP_FLAG(2u, PureVirtual)
83
HANDLE_DISP_FLAG((1u << 2), LocalToUnit)
84
HANDLE_DISP_FLAG((1u << 3), Definition)
85
HANDLE_DISP_FLAG((1u << 4), Optimized)
86
HANDLE_DISP_FLAG((1u << 5), Pure)
87
HANDLE_DISP_FLAG((1u << 6), Elemental)
88
HANDLE_DISP_FLAG((1u << 7), Recursive)
89
HANDLE_DISP_FLAG((1u << 8), MainSubprogram)
90
// May also utilize this Flag in future, when adding support
91
// for defaulted functions
92
HANDLE_DISP_FLAG((1u << 9), Deleted)
93
HANDLE_DISP_FLAG((1u << 11), ObjCDirect)
94
 
95
#ifdef DISP_FLAG_LARGEST_NEEDED
96
// Intended to be used with ADT/BitmaskEnum.h.
97
// NOTE: Always must be equal to largest flag, check this when adding new flags.
98
HANDLE_DISP_FLAG((1 << 11), Largest)
99
#undef DISP_FLAG_LARGEST_NEEDED
100
#endif
101
 
102
#undef HANDLE_DI_FLAG
103
#undef HANDLE_DISP_FLAG