@@ -46,6 +46,7 @@ class IRGenMangler : public Mangle::ASTMangler {
4646 IRGenMangler () { }
4747
4848 std::string mangleDispatchThunk (const FuncDecl *func) {
49+ llvm::SaveAndRestore X (AllowInverses, inversesAllowed (func));
4950 beginMangling ();
5051 appendEntity (func);
5152 appendOperator (" Tj" );
@@ -55,6 +56,7 @@ class IRGenMangler : public Mangle::ASTMangler {
5556 std::string mangleDerivativeDispatchThunk (
5657 const AbstractFunctionDecl *func,
5758 AutoDiffDerivativeFunctionIdentifier *derivativeId) {
59+ llvm::SaveAndRestore X (AllowInverses, inversesAllowed (func));
5860 beginManglingWithAutoDiffOriginalFunction (func);
5961 auto kind = Demangle::getAutoDiffFunctionKind (derivativeId->getKind ());
6062 auto *resultIndices =
@@ -71,13 +73,15 @@ class IRGenMangler : public Mangle::ASTMangler {
7173
7274 std::string mangleConstructorDispatchThunk (const ConstructorDecl *ctor,
7375 bool isAllocating) {
76+ llvm::SaveAndRestore X (AllowInverses, inversesAllowed (ctor));
7477 beginMangling ();
7578 appendConstructorEntity (ctor, isAllocating);
7679 appendOperator (" Tj" );
7780 return finalize ();
7881 }
7982
8083 std::string mangleMethodDescriptor (const FuncDecl *func) {
84+ llvm::SaveAndRestore X (AllowInverses, inversesAllowed (func));
8185 beginMangling ();
8286 appendEntity (func);
8387 appendOperator (" Tq" );
@@ -87,6 +91,7 @@ class IRGenMangler : public Mangle::ASTMangler {
8791 std::string mangleDerivativeMethodDescriptor (
8892 const AbstractFunctionDecl *func,
8993 AutoDiffDerivativeFunctionIdentifier *derivativeId) {
94+ llvm::SaveAndRestore X (AllowInverses, inversesAllowed (func));
9095 beginManglingWithAutoDiffOriginalFunction (func);
9196 auto kind = Demangle::getAutoDiffFunctionKind (derivativeId->getKind ());
9297 auto *resultIndices =
@@ -103,6 +108,7 @@ class IRGenMangler : public Mangle::ASTMangler {
103108
104109 std::string mangleConstructorMethodDescriptor (const ConstructorDecl *ctor,
105110 bool isAllocating) {
111+ llvm::SaveAndRestore X (AllowInverses, inversesAllowed (ctor));
106112 beginMangling ();
107113 appendConstructorEntity (ctor, isAllocating);
108114 appendOperator (" Tq" );
@@ -394,6 +400,7 @@ class IRGenMangler : public Mangle::ASTMangler {
394400 }
395401
396402 std::string mangleFieldOffset (const ValueDecl *Decl) {
403+ llvm::SaveAndRestore X (AllowInverses, inversesAllowed (Decl));
397404 beginMangling ();
398405 appendEntity (Decl);
399406 appendOperator (" Wvd" );
0 commit comments