diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-11-21 09:06:22 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-11-21 09:06:22 +0000 |
commit | 94fd26de3ae77f29496ca22d5276b2fb71b2311d (patch) | |
tree | 4495fec430a59d52f8583796d3714810edd4ee1e /lib/CodeGen/Mangle.h | |
parent | 1b0771170921b9e752a50ea2cf87814bff92c834 (diff) |
IRgen: Switch the C++ mangler interfaces to take the SmallVector to write into,
instead of requiring clients to make a raw_svector_ostream, which is just an
implementation detail.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89548 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/Mangle.h')
-rw-r--r-- | lib/CodeGen/Mangle.h | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/lib/CodeGen/Mangle.h b/lib/CodeGen/Mangle.h index 8268aa2869..0c237f810a 100644 --- a/lib/CodeGen/Mangle.h +++ b/lib/CodeGen/Mangle.h @@ -23,7 +23,8 @@ #include "llvm/ADT/DenseMap.h" namespace llvm { -class raw_ostream; +template<typename T> +class SmallVectorImpl; } namespace clang { @@ -57,22 +58,24 @@ public: /// @name Mangler Entry Points /// @{ - bool mangleName(const NamedDecl *D, llvm::raw_ostream &os); + bool mangleName(const NamedDecl *D, llvm::SmallVectorImpl<char> &); void mangleThunk(const FunctionDecl *FD, int64_t n, int64_t vn, - llvm::raw_ostream &os); + llvm::SmallVectorImpl<char> &); void mangleCovariantThunk(const FunctionDecl *FD, int64_t nv_t, int64_t v_t, - int64_t nv_r, int64_t v_r, llvm::raw_ostream &os); - void mangleGuardVariable(const VarDecl *D, llvm::raw_ostream &os); - void mangleCXXVtable(const CXXRecordDecl *RD, llvm::raw_ostream &os); - void mangleCXXVTT(const CXXRecordDecl *RD, llvm::raw_ostream &os); + int64_t nv_r, int64_t v_r, + llvm::SmallVectorImpl<char> &); + void mangleGuardVariable(const VarDecl *D, llvm::SmallVectorImpl<char> &); + void mangleCXXVtable(const CXXRecordDecl *RD, llvm::SmallVectorImpl<char> &); + void mangleCXXVTT(const CXXRecordDecl *RD, llvm::SmallVectorImpl<char> &); void mangleCXXCtorVtable(const CXXRecordDecl *RD, int64_t Offset, - const CXXRecordDecl *Type, llvm::raw_ostream &os); - void mangleCXXRtti(QualType T, llvm::raw_ostream &os); - void mangleCXXRttiName(QualType T, llvm::raw_ostream &os); + const CXXRecordDecl *Type, + llvm::SmallVectorImpl<char> &); + void mangleCXXRtti(QualType T, llvm::SmallVectorImpl<char> &); + void mangleCXXRttiName(QualType T, llvm::SmallVectorImpl<char> &); void mangleCXXCtor(const CXXConstructorDecl *D, CXXCtorType Type, - llvm::raw_ostream &os); + llvm::SmallVectorImpl<char> &); void mangleCXXDtor(const CXXDestructorDecl *D, CXXDtorType Type, - llvm::raw_ostream &os); + llvm::SmallVectorImpl<char> &); /// @} }; |