#include #include "clang/AST/TypeNodes.inc" #include "clang/AST/BuiltinTypes.def" #include "clang/Basic/OpenCLImageTypes.def" #include "clang/Basic/OpenCLExtensionTypes.def" #include "clang/Basic/WebAssemblyReferenceTypes.def" #include "clang/Basic/HLSLIntangibleTypes.def" #include "clang/Basic/AArch64ACLETypes.def"">

clang: lib/AST/MicrosoftMangle.cpp File Reference (original) (raw)

#include "[clang/AST/ASTContext.h](ASTContext%5F8h%5Fsource.html)"
#include "[clang/AST/Attr.h](AST%5F2Attr%5F8h%5Fsource.html)"
#include "[clang/AST/CXXInheritance.h](CXXInheritance%5F8h%5Fsource.html)"
#include "[clang/AST/CharUnits.h](CharUnits%5F8h%5Fsource.html)"
#include "[clang/AST/Decl.h](Decl%5F8h%5Fsource.html)"
#include "[clang/AST/DeclCXX.h](DeclCXX%5F8h%5Fsource.html)"
#include "[clang/AST/DeclObjC.h](DeclObjC%5F8h%5Fsource.html)"
#include "[clang/AST/DeclOpenMP.h](DeclOpenMP%5F8h%5Fsource.html)"
#include "[clang/AST/DeclTemplate.h](DeclTemplate%5F8h%5Fsource.html)"
#include "[clang/AST/Expr.h](Expr%5F8h%5Fsource.html)"
#include "[clang/AST/ExprCXX.h](ExprCXX%5F8h%5Fsource.html)"
#include "[clang/AST/GlobalDecl.h](GlobalDecl%5F8h%5Fsource.html)"
#include "[clang/AST/Mangle.h](Mangle%5F8h%5Fsource.html)"
#include "[clang/AST/VTableBuilder.h](VTableBuilder%5F8h%5Fsource.html)"
#include "[clang/Basic/ABI.h](ABI%5F8h%5Fsource.html)"
#include "[clang/Basic/DiagnosticOptions.h](DiagnosticOptions%5F8h%5Fsource.html)"
#include "[clang/Basic/SourceManager.h](SourceManager%5F8h%5Fsource.html)"
#include "[clang/Basic/TargetInfo.h](include%5F2clang%5F2Basic%5F2TargetInfo%5F8h%5Fsource.html)"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Support/CRC.h"
#include "llvm/Support/MD5.h"
#include "llvm/Support/StringSaver.h"
#include "llvm/Support/xxhash.h"
#include <functional>
#include <optional>
#include "clang/AST/TypeNodes.inc"
#include "clang/AST/BuiltinTypes.def"
#include "clang/Basic/OpenCLImageTypes.def"
#include "clang/Basic/OpenCLExtensionTypes.def"
#include "clang/Basic/WebAssemblyReferenceTypes.def"
#include "clang/Basic/HLSLIntangibleTypes.def"
#include "clang/Basic/AArch64ACLETypes.def"

Go to the source code of this file.

Macros
#define ABSTRACT_TYPE(CLASS, PARENT)
#define NON_CANONICAL_TYPE(CLASS, PARENT)
#define TYPE(CLASS, PARENT)
#define ABSTRACT_TYPE(CLASS, PARENT)
#define NON_CANONICAL_TYPE(CLASS, PARENT)
#define TYPE(CLASS, PARENT)
#define BUILTIN_TYPE(Id, SingletonId)
#define PLACEHOLDER_TYPE(Id, SingletonId)
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix)
#define EXT_OPAQUE_TYPE(ExtType, Id, Ext)
#define WASM_REF_TYPE(InternalName, MangledName, Id, SingletonId, AS)
#define HLSL_INTANGIBLE_TYPE(Name, Id, SingletonId)
#define SVE_TYPE(Name, Id, SingletonId)
#define SVE_SCALAR_TYPE(Name, MangledName, Id, SingletonId, Bits)

ABSTRACT_TYPE [1/2]

#define ABSTRACT_TYPE ( CLASS,
PARENT )

ABSTRACT_TYPE [2/2]

#define ABSTRACT_TYPE ( CLASS,
PARENT )

BUILTIN_TYPE

#define BUILTIN_TYPE ( Id,
SingletonId )

EXT_OPAQUE_TYPE

#define EXT_OPAQUE_TYPE ( ExtType,
Id,
Ext )

Value:

case BuiltinType::Id: \

mangleArtificialTagType(TagTypeKind::Struct, "ocl_" #ExtType); \

break;

HLSL_INTANGIBLE_TYPE

#define HLSL_INTANGIBLE_TYPE ( Name,
Id,
SingletonId )

Value:

case BuiltinType::Id: \

mangleArtificialTagType(TagTypeKind::Struct, #Name); \

break;

IMAGE_TYPE

#define IMAGE_TYPE ( ImgType,
Id,
SingletonId,
Access,
Suffix )

Value:

case BuiltinType::Id: \

Out << "PAUocl_" #ImgType "_" #Suffix "@@"; \

break;

NON_CANONICAL_TYPE [1/2]

#define NON_CANONICAL_TYPE ( CLASS,
PARENT )

NON_CANONICAL_TYPE [2/2]

#define NON_CANONICAL_TYPE ( CLASS,
PARENT )

Value:

case Type::CLASS: \

llvm_unreachable("can't mangle non-canonical type " #CLASS "Type"); \

return;

Definition at line 448 of file MicrosoftMangle.cpp.

PLACEHOLDER_TYPE

#define PLACEHOLDER_TYPE ( Id,
SingletonId )

SVE_SCALAR_TYPE

#define SVE_SCALAR_TYPE ( Name,
MangledName,
Id,
SingletonId,
Bits )

SVE_TYPE

#define SVE_TYPE ( Name,
Id,
SingletonId )

Value:

case BuiltinType::Id: \

mangleArtificialTagType(TagTypeKind::Struct, #Name, {"__clang"}); \

break;

TYPE [1/2]

#define TYPE ( CLASS,
PARENT )

Value:

void mangleType(const CLASS##Type *T, \

The collection of all-type qualifiers we support.

A trivial tuple used to represent a source range.

The base class of the type hierarchy.

const FunctionProtoType * T

Definition at line 449 of file MicrosoftMangle.cpp.

TYPE [2/2]

#define TYPE ( CLASS,
PARENT )

Value:

case Type::CLASS: \

break;

U cast(CodeGen::Address addr)

Definition at line 449 of file MicrosoftMangle.cpp.

WASM_REF_TYPE

#define WASM_REF_TYPE ( InternalName,
MangledName,
Id,
SingletonId,
AS )

Value:

case BuiltinType::Id: \

mangleArtificialTagType(TagTypeKind::Struct, MangledName); \

mangleArtificialTagType(TagTypeKind::Struct, MangledName, {"__clang"}); \

break;

getAsArrayToPointerDecayedDecl()

isTemplate()

mangleThunkThisAdjustment()

void mangleThunkThisAdjustment ( AccessSpecifier AS, const ThisAdjustment & Adjustment, MicrosoftCXXNameMangler & Mangler, raw_ostream & Out ) static

Definition at line 3816 of file MicrosoftMangle.cpp.

References clang::AS_none, clang::AS_private, clang::AS_protected, clang::AS_public, clang::ThisAdjustment::VirtualAdjustment::isEmpty(), clang::ThisAdjustment::VirtualAdjustment::Microsoft, clang::ThisAdjustment::NonVirtual, clang::ThisAdjustment::VirtualAdjustment::VBOffsetOffset, clang::ThisAdjustment::VirtualAdjustment::VBPtrOffset, clang::ThisAdjustment::Virtual, and clang::ThisAdjustment::VirtualAdjustment::VtordispOffset.