A few TemplateArgumentLoc clean-ups. Try to remember the Expr for a declaration.
Provide an API for getting the SourceRange of a TAL and use it judiciously.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85520 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/TemplateBase.cpp b/lib/AST/TemplateBase.cpp
index b136fe0..94e1ca1 100644
--- a/lib/AST/TemplateBase.cpp
+++ b/lib/AST/TemplateBase.cpp
@@ -78,20 +78,20 @@
// TemplateArgumentLoc Implementation
//===----------------------------------------------------------------------===//
-SourceLocation TemplateArgumentLoc::getLocation() const {
+SourceRange TemplateArgumentLoc::getSourceRange() const {
switch (Argument.getKind()) {
case TemplateArgument::Expression:
- return getSourceExpression()->getExprLoc();
- case TemplateArgument::Type:
- return getSourceDeclaratorInfo()->
- getTypeLoc().getFullSourceRange().getBegin();
+ return getSourceExpression()->getSourceRange();
case TemplateArgument::Declaration:
+ return getSourceDeclExpression()->getSourceRange();
+ case TemplateArgument::Type:
+ return getSourceDeclaratorInfo()->getTypeLoc().getFullSourceRange();
case TemplateArgument::Integral:
case TemplateArgument::Pack:
case TemplateArgument::Null:
- return SourceLocation();
+ return SourceRange();
}
// Silence bonus gcc warning.
- return SourceLocation();
+ return SourceRange();
}