summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-07-12 05:06:05 +0000
committerDouglas Gregor <dgregor@apple.com>2011-07-12 05:06:05 +0000
commit1cf9dd21dcb923b9aea3fab1e0959a59775bfc36 (patch)
tree1c77886e3284587afdcde142d8830e01a7ede16f /clang/lib/AST
parent3ce8668273c418a9f8c807e704d35f97e07a67a9 (diff)
downloadbcm5719-llvm-1cf9dd21dcb923b9aea3fab1e0959a59775bfc36.tar.gz
bcm5719-llvm-1cf9dd21dcb923b9aea3fab1e0959a59775bfc36.zip
Mangle dependent template names of unknown arity
llvm-svn: 134967
Diffstat (limited to 'clang/lib/AST')
-rw-r--r--clang/lib/AST/ItaniumMangle.cpp14
1 files changed, 4 insertions, 10 deletions
diff --git a/clang/lib/AST/ItaniumMangle.cpp b/clang/lib/AST/ItaniumMangle.cpp
index 958b4a26a09..5a1025fff02 100644
--- a/clang/lib/AST/ItaniumMangle.cpp
+++ b/clang/lib/AST/ItaniumMangle.cpp
@@ -593,19 +593,13 @@ void CXXNameMangler::mangleUnscopedTemplateName(TemplateName Template) {
if (mangleSubstitution(Template))
return;
- // FIXME: How to cope with operators here?
DependentTemplateName *Dependent = Template.getAsDependentTemplateName();
assert(Dependent && "Not a dependent template name?");
- if (!Dependent->isIdentifier()) {
- // FIXME: We can't possibly know the arity of the operator here!
- Diagnostic &Diags = Context.getDiags();
- unsigned DiagID = Diags.getCustomDiagID(Diagnostic::Error,
- "cannot mangle dependent operator name");
- Diags.Report(DiagID);
- return;
- }
+ if (const IdentifierInfo *Id = Dependent->getIdentifier())
+ mangleSourceName(Id);
+ else
+ mangleOperatorName(Dependent->getOperator(), UnknownArity);
- mangleSourceName(Dependent->getIdentifier());
addSubstitution(Template);
}
OpenPOWER on IntegriCloud