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.