]> granicus.if.org Git - clang/commitdiff
Slightly improve source location information during template instantiation
authorDouglas Gregor <dgregor@apple.com>
Wed, 28 Oct 2009 00:29:27 +0000 (00:29 +0000)
committerDouglas Gregor <dgregor@apple.com>
Wed, 28 Oct 2009 00:29:27 +0000 (00:29 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85353 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/TreeTransform.h

index 15b1520447205062aae86735d7780c2a884f2ece..b4ec2fa71e78062ce1e3d4f722899e54008722e6 100644 (file)
@@ -3365,6 +3365,8 @@ template<typename Derived>
 Sema::OwningExprResult
 TreeTransform<Derived>::TransformSizeOfAlignOfExpr(SizeOfAlignOfExpr *E) {
   if (E->isArgumentType()) {
+    TemporaryBase Rebase(*this, E->getOperatorLoc(), DeclarationName());
+
     QualType T = getDerived().TransformType(E->getArgumentType());
     if (T.isNull())
       return SemaRef.ExprError();
@@ -3563,6 +3565,10 @@ TreeTransform<Derived>::TransformConditionalOperator(ConditionalOperator *E) {
 template<typename Derived>
 Sema::OwningExprResult
 TreeTransform<Derived>::TransformImplicitCastExpr(ImplicitCastExpr *E) {
+  TemporaryBase Rebase(*this, E->getLocStart(), DeclarationName());
+
+  // FIXME: Will we ever have type information here? It seems like we won't,
+  // so do we even need to transform the type?
   QualType T = getDerived().TransformType(E->getType());
   if (T.isNull())
     return SemaRef.ExprError();
@@ -3759,6 +3765,10 @@ template<typename Derived>
 Sema::OwningExprResult
 TreeTransform<Derived>::TransformImplicitValueInitExpr(
                                                     ImplicitValueInitExpr *E) {
+  TemporaryBase Rebase(*this, E->getLocStart(), DeclarationName());
+  
+  // FIXME: Will we ever have proper type location here? Will we actually
+  // need to transform the type?
   QualType T = getDerived().TransformType(E->getType());
   if (T.isNull())
     return SemaRef.ExprError();