@@ -46,6 +46,7 @@ class IRGenMangler : public Mangle::ASTMangler {
46
46
IRGenMangler () { }
47
47
48
48
std::string mangleDispatchThunk (const FuncDecl *func) {
49
+ llvm::SaveAndRestore X (AllowInverses, inversesAllowed (func));
49
50
beginMangling ();
50
51
appendEntity (func);
51
52
appendOperator (" Tj" );
@@ -55,6 +56,7 @@ class IRGenMangler : public Mangle::ASTMangler {
55
56
std::string mangleDerivativeDispatchThunk (
56
57
const AbstractFunctionDecl *func,
57
58
AutoDiffDerivativeFunctionIdentifier *derivativeId) {
59
+ llvm::SaveAndRestore X (AllowInverses, inversesAllowed (func));
58
60
beginManglingWithAutoDiffOriginalFunction (func);
59
61
auto kind = Demangle::getAutoDiffFunctionKind (derivativeId->getKind ());
60
62
auto *resultIndices =
@@ -71,13 +73,15 @@ class IRGenMangler : public Mangle::ASTMangler {
71
73
72
74
std::string mangleConstructorDispatchThunk (const ConstructorDecl *ctor,
73
75
bool isAllocating) {
76
+ llvm::SaveAndRestore X (AllowInverses, inversesAllowed (ctor));
74
77
beginMangling ();
75
78
appendConstructorEntity (ctor, isAllocating);
76
79
appendOperator (" Tj" );
77
80
return finalize ();
78
81
}
79
82
80
83
std::string mangleMethodDescriptor (const FuncDecl *func) {
84
+ llvm::SaveAndRestore X (AllowInverses, inversesAllowed (func));
81
85
beginMangling ();
82
86
appendEntity (func);
83
87
appendOperator (" Tq" );
@@ -87,6 +91,7 @@ class IRGenMangler : public Mangle::ASTMangler {
87
91
std::string mangleDerivativeMethodDescriptor (
88
92
const AbstractFunctionDecl *func,
89
93
AutoDiffDerivativeFunctionIdentifier *derivativeId) {
94
+ llvm::SaveAndRestore X (AllowInverses, inversesAllowed (func));
90
95
beginManglingWithAutoDiffOriginalFunction (func);
91
96
auto kind = Demangle::getAutoDiffFunctionKind (derivativeId->getKind ());
92
97
auto *resultIndices =
@@ -103,6 +108,7 @@ class IRGenMangler : public Mangle::ASTMangler {
103
108
104
109
std::string mangleConstructorMethodDescriptor (const ConstructorDecl *ctor,
105
110
bool isAllocating) {
111
+ llvm::SaveAndRestore X (AllowInverses, inversesAllowed (ctor));
106
112
beginMangling ();
107
113
appendConstructorEntity (ctor, isAllocating);
108
114
appendOperator (" Tq" );
@@ -394,6 +400,7 @@ class IRGenMangler : public Mangle::ASTMangler {
394
400
}
395
401
396
402
std::string mangleFieldOffset (const ValueDecl *Decl) {
403
+ llvm::SaveAndRestore X (AllowInverses, inversesAllowed (Decl));
397
404
beginMangling ();
398
405
appendEntity (Decl);
399
406
appendOperator (" Wvd" );
0 commit comments