summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/ItaniumCXXABI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/AST/ItaniumCXXABI.cpp')
-rw-r--r--clang/lib/AST/ItaniumCXXABI.cpp7
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 {
OpenPOWER on IntegriCloud