9c7fca1617f1f2c5a038f10c0ec630e7f339a8e1
[oota-llvm.git] / include / llvm / DebugInfo / PDB / PDBSymbolAnnotation.h
1 //===- PDBSymbolAnnotation.h - Accessors for querying PDB annotations ---*-===//
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 #ifndef LLVM_DEBUGINFO_PDB_PDBSYMBOLANNOTATION_H
10 #define LLVM_DEBUGINFO_PDB_PDBSYMBOLANNOTATION_H
11
12 #include <string>
13
14 #include "PDBSymbol.h"
15 #include "PDBTypes.h"
16
17 namespace llvm {
18
19 class PDBSymbolAnnotation : public PDBSymbol {
20 public:
21   PDBSymbolAnnotation(std::unique_ptr<IPDBRawSymbol> AnnotationSymbol);
22
23   FORWARD_SYMBOL_METHOD(getAddressOffset)
24   FORWARD_SYMBOL_METHOD(getAddressSection)
25   FORWARD_SYMBOL_METHOD(getDataKind)
26   FORWARD_SYMBOL_METHOD(getRelativeVirtualAddress)
27   FORWARD_SYMBOL_METHOD(getSymIndexId)
28   // FORWARD_SYMBOL_METHOD(getValue)
29   FORWARD_SYMBOL_METHOD(getVirtualAddress)
30
31   static bool classof(const PDBSymbol *S) {
32     return S->getSymTag() == PDB_SymType::Annotation;
33   }
34 };
35 }
36
37 #endif // LLVM_DEBUGINFO_PDB_PDBSYMBOLANNOTATION_H