Line data Source code
1 : //===- llvm/IR/DebugInfoFlags.def - Debug info flag definitions -*- 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 : // Macros for running through debug info flags.
11 : //
12 : //===----------------------------------------------------------------------===//
13 :
14 : // TODO: Add other DW-based macros.
15 : #ifndef HANDLE_DI_FLAG
16 : #error "Missing macro definition of HANDLE_DI_FLAG"
17 : #endif
18 :
19 3744 : HANDLE_DI_FLAG(0, Zero) // Use it as zero value.
20 : // For example: void foo(DIFlags Flags = FlagZero).
21 11325 : HANDLE_DI_FLAG(1, Private)
22 11351 : HANDLE_DI_FLAG(2, Protected)
23 11700 : HANDLE_DI_FLAG(3, Public)
24 11585 : HANDLE_DI_FLAG((1 << 2), FwdDecl)
25 11313 : HANDLE_DI_FLAG((1 << 3), AppleBlock)
26 11287 : HANDLE_DI_FLAG((1 << 4), BlockByrefStruct)
27 11301 : HANDLE_DI_FLAG((1 << 5), Virtual)
28 14244 : HANDLE_DI_FLAG((1 << 6), Artificial)
29 11287 : HANDLE_DI_FLAG((1 << 7), Explicit)
30 14681 : HANDLE_DI_FLAG((1 << 8), Prototyped)
31 11331 : HANDLE_DI_FLAG((1 << 9), ObjcClassComplete)
32 12591 : HANDLE_DI_FLAG((1 << 10), ObjectPointer)
33 11303 : HANDLE_DI_FLAG((1 << 11), Vector)
34 11392 : HANDLE_DI_FLAG((1 << 12), StaticMember)
35 11296 : HANDLE_DI_FLAG((1 << 13), LValueReference)
36 11291 : HANDLE_DI_FLAG((1 << 14), RValueReference)
37 : // 15 was formerly ExternalTypeRef, but this was never used.
38 11286 : HANDLE_DI_FLAG((1 << 15), Reserved)
39 11296 : HANDLE_DI_FLAG((1 << 16), SingleInheritance)
40 11288 : HANDLE_DI_FLAG((2 << 16), MultipleInheritance)
41 11288 : HANDLE_DI_FLAG((3 << 16), VirtualInheritance)
42 11305 : HANDLE_DI_FLAG((1 << 18), IntroducedVirtual)
43 11300 : HANDLE_DI_FLAG((1 << 19), BitField)
44 11292 : HANDLE_DI_FLAG((1 << 20), NoReturn)
45 11286 : HANDLE_DI_FLAG((1 << 21), MainSubprogram)
46 11737 : HANDLE_DI_FLAG((1 << 22), TypePassByValue)
47 11411 : HANDLE_DI_FLAG((1 << 23), TypePassByReference)
48 11337 : HANDLE_DI_FLAG((1 << 24), FixedEnum)
49 11318 : HANDLE_DI_FLAG((1 << 25), Thunk)
50 11615 : HANDLE_DI_FLAG((1 << 26), Trivial)
51 11292 : HANDLE_DI_FLAG((1 << 27), BigEndian)
52 11292 : HANDLE_DI_FLAG((1 << 28), LittleEndian)
53 11309 : HANDLE_DI_FLAG((1 << 29), AllCallsDescribed)
54 :
55 : // To avoid needing a dedicated value for IndirectVirtualBase, we use
56 : // the bitwise or of Virtual and FwdDecl, which does not otherwise
57 : // make sense for inheritance.
58 11287 : HANDLE_DI_FLAG((1 << 2) | (1 << 5), IndirectVirtualBase)
59 :
60 : #ifdef DI_FLAG_LARGEST_NEEDED
61 : // intended to be used with ADT/BitmaskEnum.h
62 : // NOTE: always must be equal to largest flag, check this when adding new flag
63 : HANDLE_DI_FLAG((1 << 29), Largest)
64 : #undef DI_FLAG_LARGEST_NEEDED
65 : #endif
66 :
67 : #undef HANDLE_DI_FLAG
|