diff options
Diffstat (limited to 'clang/lib/AST/ItaniumCXXABI.cpp')
-rw-r--r-- | clang/lib/AST/ItaniumCXXABI.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/AST/ItaniumCXXABI.cpp b/clang/lib/AST/ItaniumCXXABI.cpp index 8928e66724e..f0d20c36968 100644 --- a/clang/lib/AST/ItaniumCXXABI.cpp +++ b/clang/lib/AST/ItaniumCXXABI.cpp @@ -33,12 +33,17 @@ namespace { /// literals within a particular context. class ItaniumNumberingContext : public MangleNumberingContext { llvm::DenseMap<IdentifierInfo*, unsigned> VarManglingNumbers; + llvm::DenseMap<IdentifierInfo*, unsigned> TagManglingNumbers; public: /// Variable decls are numbered by identifier. - virtual unsigned getManglingNumber(const VarDecl *VD) { + virtual unsigned getManglingNumber(const VarDecl *VD, Scope *) { return ++VarManglingNumbers[VD->getIdentifier()]; } + + virtual unsigned getManglingNumber(const TagDecl *TD, Scope *) { + return ++TagManglingNumbers[TD->getIdentifier()]; + } }; class ItaniumCXXABI : public CXXABI { |