LLVM 19.0.0git
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/ScopedPrinter.h"
#include "llvm/Support/YAMLTraits.h"
#include <algorithm>
#include <cstdint>
#include <cstring>
#include <optional>
#include <string>
#include <vector>
#include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"

Go to the source code of this file.

Classes

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

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::yaml
 
namespace  llvm::CodeViewYAML
 
namespace  llvm::CodeViewYAML::detail
 

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;

◆ 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

Definition at line 630 of file CodeViewYAMLSymbols.cpp.

References llvm::codeview::EC.

◆ mapSymbolRecordImpl()

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

Definition at line 656 of file CodeViewYAMLSymbols.cpp.

References llvm::CodeViewYAML::SymbolRecord::Symbol.