parent
186478d8e2
commit
2b5f3fd7ab
|
@ -1373,13 +1373,14 @@ void MicrosoftCXXNameMangler::mangleTemplateArg(const TemplateDecl *TD,
|
||||||
case TemplateArgument::Declaration: {
|
case TemplateArgument::Declaration: {
|
||||||
const NamedDecl *ND = TA.getAsDecl();
|
const NamedDecl *ND = TA.getAsDecl();
|
||||||
if (isa<FieldDecl>(ND) || isa<IndirectFieldDecl>(ND)) {
|
if (isa<FieldDecl>(ND) || isa<IndirectFieldDecl>(ND)) {
|
||||||
mangleMemberDataPointer(
|
mangleMemberDataPointer(cast<CXXRecordDecl>(ND->getDeclContext())
|
||||||
cast<CXXRecordDecl>(ND->getDeclContext())->getMostRecentNonInjectedDecl(),
|
->getMostRecentNonInjectedDecl(),
|
||||||
cast<ValueDecl>(ND));
|
cast<ValueDecl>(ND));
|
||||||
} else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
|
} else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
|
||||||
const CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(FD);
|
const CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(FD);
|
||||||
if (MD && MD->isInstance()) {
|
if (MD && MD->isInstance()) {
|
||||||
mangleMemberFunctionPointer(MD->getParent()->getMostRecentNonInjectedDecl(), MD);
|
mangleMemberFunctionPointer(
|
||||||
|
MD->getParent()->getMostRecentNonInjectedDecl(), MD);
|
||||||
} else {
|
} else {
|
||||||
Out << "$1?";
|
Out << "$1?";
|
||||||
mangleName(FD);
|
mangleName(FD);
|
||||||
|
@ -2285,7 +2286,8 @@ void MicrosoftCXXNameMangler::mangleType(const TagDecl *TD) {
|
||||||
|
|
||||||
// If you add a call to this, consider updating isArtificialTagType() too.
|
// If you add a call to this, consider updating isArtificialTagType() too.
|
||||||
void MicrosoftCXXNameMangler::mangleArtificalTagType(
|
void MicrosoftCXXNameMangler::mangleArtificalTagType(
|
||||||
TagTypeKind TK, StringRef UnqualifiedName, ArrayRef<StringRef> NestedNames) {
|
TagTypeKind TK, StringRef UnqualifiedName,
|
||||||
|
ArrayRef<StringRef> NestedNames) {
|
||||||
// <name> ::= <unscoped-name> {[<named-scope>]+ | [<nested-name>]}? @
|
// <name> ::= <unscoped-name> {[<named-scope>]+ | [<nested-name>]}? @
|
||||||
mangleTagTypeKind(TK);
|
mangleTagTypeKind(TK);
|
||||||
|
|
||||||
|
@ -2372,8 +2374,8 @@ void MicrosoftCXXNameMangler::mangleArrayType(const ArrayType *T) {
|
||||||
// <type> ::= <pointer-to-member-type>
|
// <type> ::= <pointer-to-member-type>
|
||||||
// <pointer-to-member-type> ::= <pointer-cvr-qualifiers> <cvr-qualifiers>
|
// <pointer-to-member-type> ::= <pointer-cvr-qualifiers> <cvr-qualifiers>
|
||||||
// <class name> <type>
|
// <class name> <type>
|
||||||
void MicrosoftCXXNameMangler::mangleType(const MemberPointerType *T, Qualifiers Quals,
|
void MicrosoftCXXNameMangler::mangleType(const MemberPointerType *T,
|
||||||
SourceRange Range) {
|
Qualifiers Quals, SourceRange Range) {
|
||||||
QualType PointeeType = T->getPointeeType();
|
QualType PointeeType = T->getPointeeType();
|
||||||
manglePointerCVQualifiers(Quals);
|
manglePointerCVQualifiers(Quals);
|
||||||
manglePointerExtQualifiers(Quals, PointeeType);
|
manglePointerExtQualifiers(Quals, PointeeType);
|
||||||
|
|
Loading…
Reference in New Issue