clang 8.0.0

Macros | Functions
MicrosoftMangle.cpp File Reference
`#include "clang/AST/Mangle.h"`
`#include "clang/AST/ASTContext.h"`
`#include "clang/AST/Attr.h"`
`#include "clang/AST/CXXInheritance.h"`
`#include "clang/AST/CharUnits.h"`
`#include "clang/AST/Decl.h"`
`#include "clang/AST/DeclCXX.h"`
`#include "clang/AST/DeclObjC.h"`
`#include "clang/AST/DeclOpenMP.h"`
`#include "clang/AST/DeclTemplate.h"`
`#include "clang/AST/Expr.h"`
`#include "clang/AST/ExprCXX.h"`
`#include "clang/AST/VTableBuilder.h"`
`#include "clang/Basic/ABI.h"`
`#include "clang/Basic/DiagnosticOptions.h"`
`#include "clang/Basic/TargetInfo.h"`
`#include "llvm/ADT/StringExtras.h"`
`#include "llvm/Support/JamCRC.h"`
`#include "llvm/Support/xxhash.h"`
`#include "llvm/Support/MD5.h"`
`#include "llvm/Support/MathExtras.h"`
`#include "clang/AST/TypeNodes.def"`
`#include "clang/AST/BuiltinTypes.def"`
`#include "clang/Basic/OpenCLImageTypes.def"`
`#include "clang/Basic/OpenCLExtensionTypes.def"`
Include dependency graph for MicrosoftMangle.cpp:

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) case BuiltinType::Id:
#define | IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix)
#define | EXT_OPAQUE_TYPE(ExtType, Id, Ext)

## Functions
static const TemplateDecl * | isTemplate (const NamedDecl *ND, const TemplateArgumentList *&TemplateArgs)
static void | mangleThunkThisAdjustment (AccessSpecifier AS, const ThisAdjustment &Adjustment, MicrosoftCXXNameMangler &Mangler, raw_ostream &Out)

## Macro Definition Documentation

## ◆ ABSTRACT_TYPE [1/2]

#define ABSTRACT_TYPE | ( |  | CLASS,
|  |  | PARENT
| ) |  |

Definition at line 352 of file MicrosoftMangle.cpp.

## ◆ ABSTRACT_TYPE [2/2]

#define ABSTRACT_TYPE | ( |  | CLASS,
|  |  | PARENT
| ) |  |

Definition at line 352 of file MicrosoftMangle.cpp.

## ◆ BUILTIN_TYPE

#define BUILTIN_TYPE | ( |  | Id,
|  |  | SingletonId
| ) |  |

## ◆ EXT_OPAQUE_TYPE

#define EXT_OPAQUE_TYPE | ( |  | ExtType,
|  |  | Id,
|  |  | Ext
| ) |  |

Value:
case BuiltinType::Id: \
mangleArtificialTagType(TTK_Struct, "ocl_" #ExtType); \
break;
Id
int Id
Definition: ASTDiff.cpp:191
clang::TTK_Struct
The "struct" keyword.
Definition: Type.h:5033

## ◆ IMAGE_TYPE

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

Value:
case BuiltinType::Id: \
Out << "PAUocl_" #ImgType "_" #Suffix "@@"; \
break;
Id
int Id
Definition: ASTDiff.cpp:191

## ◆ NON_CANONICAL_TYPE [1/2]

#define NON_CANONICAL_TYPE | ( |  | CLASS,
|  |  | PARENT
| ) |  |

Definition at line 353 of file MicrosoftMangle.cpp.

## ◆ 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 353 of file MicrosoftMangle.cpp.

## ◆ PLACEHOLDER_TYPE

#define PLACEHOLDER_TYPE | ( |  | Id,
|  |  | SingletonId
| ) |  | case BuiltinType::Id:

## ◆ TYPE [1/2]

#define TYPE | ( |  | CLASS,
|  |  | PARENT
| ) |  |

Value:
void mangleType(const CLASS##Type *T, \
Qualifiers Quals, \
SourceRange Range);
clang::Type
The base class of the type hierarchy.
Definition: Type.h:1407
clang::Qualifiers
The collection of all-type qualifiers we support.
Definition: Type.h:141
clang::SourceRange
A trivial tuple used to represent a source range.
Definition: SourceLocation.h:198

Definition at line 354 of file MicrosoftMangle.cpp.

## ◆ TYPE [2/2]

#define TYPE | ( |  | CLASS,
|  |  | PARENT
| ) |  |

Value:
case Type::CLASS: \
mangleType(cast<CLASS##Type>(ty), Quals, Range); \
break;

Definition at line 354 of file MicrosoftMangle.cpp.

## Function Documentation

## ◆ isTemplate()

static const TemplateDecl* isTemplate | ( | const NamedDecl * | ND,
|  | const TemplateArgumentList *& | TemplateArgs
| ) |  |
| static

Definition at line 746 of file MicrosoftMangle.cpp.

References clang::FunctionDecl::getPrimaryTemplate(), and clang::FunctionDecl::getTemplateSpecializationArgs().

## ◆ mangleThunkThisAdjustment()

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

Definition at line 2942 of file MicrosoftMangle.cpp.

References clang::AS_none, clang::AS_private, clang::AS_protected, clang::AS_public, clang::Type::castAs(), clang::Dtor_Deleting, clang::Decl::getAccess(), clang::StringLiteral::getCharByteWidth(), clang::CXXMethodDecl::getParent(), clang::VarDecl::getTLSKind(), clang::Expr::getType(), clang::ValueDecl::getType(), clang::Decl::hasAttr(), clang::ReturnAdjustment::isEmpty(), clang::ThisAdjustment::VirtualAdjustment::isEmpty(), clang::NamedDecl::isExternallyVisible(), clang::VarDecl::isStaticDataMember(), clang::StringLiteral::isWide(), clang::ThunkInfo::Method, clang::ThisAdjustment::VirtualAdjustment::Microsoft, clang::ThisAdjustment::NonVirtual, clang::ThunkInfo::Return, clang::ThunkInfo::This, clang::ThisAdjustment::VirtualAdjustment::VBOffsetOffset, clang::ThisAdjustment::VirtualAdjustment::VBPtrOffset, clang::ThisAdjustment::Virtual, and clang::ThisAdjustment::VirtualAdjustment::VtordispOffset.