LLVM  6.0.0svn
Classes | Namespaces | Macros | Functions
CodeViewYAMLSymbols.cpp File Reference
#include "llvm/ObjectYAML/CodeViewYAMLSymbols.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/DebugInfo/CodeView/CodeView.h"
#include "llvm/DebugInfo/CodeView/CodeViewError.h"
#include "llvm/DebugInfo/CodeView/EnumTables.h"
#include "llvm/DebugInfo/CodeView/RecordSerialization.h"
#include "llvm/DebugInfo/CodeView/SymbolDeserializer.h"
#include "llvm/DebugInfo/CodeView/SymbolRecord.h"
#include "llvm/DebugInfo/CodeView/SymbolSerializer.h"
#include "llvm/DebugInfo/CodeView/TypeIndex.h"
#include "llvm/ObjectYAML/YAML.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/YAMLTraits.h"
#include <algorithm>
#include <cstdint>
#include <cstring>
#include <string>
#include <vector>
#include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"
Include dependency graph for CodeViewYAMLSymbols.cpp:

Go to the source code of this file.

Classes

struct  llvm::CodeViewYAML::detail::SymbolRecordBase
 
struct  llvm::CodeViewYAML::detail::SymbolRecordImpl< T >
 
struct  llvm::CodeViewYAML::detail::UnknownSymbolRecord
 
struct  llvm::yaml::MappingTraits< SymbolRecordBase >
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 
 llvm::CodeViewYAML
 
 llvm::CodeViewYAML::detail
 
 llvm::yaml
 

Macros

#define SYMBOL_RECORD(EnumName, EnumVal, ClassName)
 
#define SYMBOL_RECORD_ALIAS(EnumName, EnumVal, AliasName, ClassName)   SYMBOL_RECORD(EnumName, EnumVal, ClassName)
 
#define SYMBOL_RECORD(EnumName, EnumVal, ClassName)
 
#define SYMBOL_RECORD_ALIAS(EnumName, EnumVal, AliasName, ClassName)   SYMBOL_RECORD(EnumName, EnumVal, ClassName)
 

Functions

template<typename SymbolType >
static Expected< CodeViewYAML::SymbolRecordfromCodeViewSymbolImpl (CVSymbol Symbol)
 
template<typename ConcreteType >
static void mapSymbolRecordImpl (IO &IO, const char *Class, SymbolKind Kind, CodeViewYAML::SymbolRecord &Obj)
 

Macro Definition Documentation

◆ SYMBOL_RECORD [1/2]

#define SYMBOL_RECORD (   EnumName,
  EnumVal,
  ClassName 
)
Value:
case EnumName: \
return fromCodeViewSymbolImpl<SymbolRecordImpl<ClassName>>(Symbol);
StringLiteral EnumName

◆ SYMBOL_RECORD [2/2]

#define SYMBOL_RECORD (   EnumName,
  EnumVal,
  ClassName 
)
Value:
case EnumName: \
mapSymbolRecordImpl<SymbolRecordImpl<ClassName>>(IO, #ClassName, Kind, \
Obj); \
break;
StringLiteral EnumName
const unsigned Kind

◆ SYMBOL_RECORD_ALIAS [1/2]

#define SYMBOL_RECORD_ALIAS (   EnumName,
  EnumVal,
  AliasName,
  ClassName 
)    SYMBOL_RECORD(EnumName, EnumVal, ClassName)

◆ SYMBOL_RECORD_ALIAS [2/2]

#define SYMBOL_RECORD_ALIAS (   EnumName,
  EnumVal,
  AliasName,
  ClassName 
)    SYMBOL_RECORD(EnumName, EnumVal, ClassName)

Function Documentation

◆ fromCodeViewSymbolImpl()

template<typename SymbolType >
static Expected<CodeViewYAML::SymbolRecord> fromCodeViewSymbolImpl ( CVSymbol  Symbol)
inlinestatic

◆ mapSymbolRecordImpl()

template<typename ConcreteType >
static void mapSymbolRecordImpl ( IO IO,
const char Class,
SymbolKind  Kind,
CodeViewYAML::SymbolRecord Obj 
)
static