|
20 | 20 | #define SWIFT_DEMANGLING_DEMANGLE_H |
21 | 21 |
|
22 | 22 | #include "swift/Demangling/Errors.h" |
| 23 | +#include "swift/Demangling/ManglingFlavor.h" |
23 | 24 | #include "swift/Demangling/NamespaceMacros.h" |
24 | 25 | #include "llvm/ADT/StringRef.h" |
25 | 26 | #include "llvm/Support/Compiler.h" |
@@ -673,24 +674,27 @@ class [[nodiscard]] ManglingErrorOr { |
673 | 674 | }; |
674 | 675 |
|
675 | 676 | /// Remangle a demangled parse tree. |
676 | | -ManglingErrorOr<std::string> mangleNode(NodePointer root); |
| 677 | +ManglingErrorOr<std::string> |
| 678 | +mangleNode(NodePointer root, |
| 679 | + Mangle::ManglingFlavor Flavor = Mangle::ManglingFlavor::Default); |
677 | 680 |
|
678 | | -using SymbolicResolver = |
679 | | - llvm::function_ref<Demangle::NodePointer (SymbolicReferenceKind, |
680 | | - const void *)>; |
| 681 | +using SymbolicResolver = llvm::function_ref<Demangle::NodePointer( |
| 682 | + SymbolicReferenceKind, const void *)>; |
681 | 683 |
|
682 | 684 | /// Remangle a demangled parse tree, using a callback to resolve |
683 | 685 | /// symbolic references. |
684 | | -ManglingErrorOr<std::string> mangleNode(NodePointer root, SymbolicResolver resolver); |
| 686 | +ManglingErrorOr<std::string> |
| 687 | +mangleNode(NodePointer root, SymbolicResolver resolver, |
| 688 | + Mangle::ManglingFlavor Flavor = Mangle::ManglingFlavor::Default); |
685 | 689 |
|
686 | 690 | /// Remangle a demangled parse tree, using a callback to resolve |
687 | 691 | /// symbolic references. |
688 | 692 | /// |
689 | 693 | /// The returned string is owned by \p Factory. This means \p Factory must stay |
690 | 694 | /// alive as long as the returned string is used. |
691 | | -ManglingErrorOr<llvm::StringRef> mangleNode(NodePointer root, |
692 | | - SymbolicResolver resolver, |
693 | | - NodeFactory &Factory); |
| 695 | +ManglingErrorOr<llvm::StringRef> |
| 696 | +mangleNode(NodePointer root, SymbolicResolver resolver, NodeFactory &Factory, |
| 697 | + Mangle::ManglingFlavor Flavor = Mangle::ManglingFlavor::Default); |
694 | 698 |
|
695 | 699 | /// Remangle in the old mangling scheme. |
696 | 700 | /// |
@@ -810,9 +814,9 @@ llvm::StringRef makeSymbolicMangledNameStringRef(const char *base); |
810 | 814 |
|
811 | 815 | /// Produce the mangled name for the nominal type descriptor of a type |
812 | 816 | /// referenced by its module and type name. |
813 | | -std::string mangledNameForTypeMetadataAccessor(llvm::StringRef moduleName, |
814 | | - llvm::StringRef typeName, |
815 | | - Node::Kind typeKind); |
| 817 | +std::string mangledNameForTypeMetadataAccessor( |
| 818 | + llvm::StringRef moduleName, llvm::StringRef typeName, Node::Kind typeKind, |
| 819 | + Mangle::ManglingFlavor Flavor = Mangle::ManglingFlavor::Default); |
816 | 820 |
|
817 | 821 | SWIFT_END_INLINE_NAMESPACE |
818 | 822 | } // end namespace Demangle |
|
0 commit comments