forked from OSchip/llvm-project
Finish pushing source-location information though TreeTransform's
TransformDefinition. llvm-svn: 97445
This commit is contained in:
parent
a04f2ca19a
commit
2528936379
|
@ -544,7 +544,7 @@ namespace {
|
|||
|
||||
/// \brief Transform the definition of the given declaration by
|
||||
/// instantiating it.
|
||||
Decl *TransformDefinition(Decl *D);
|
||||
Decl *TransformDefinition(SourceLocation Loc, Decl *D);
|
||||
|
||||
/// \bried Transform the first qualifier within a scope by instantiating the
|
||||
/// declaration.
|
||||
|
@ -603,7 +603,7 @@ Decl *TemplateInstantiator::TransformDecl(SourceLocation Loc, Decl *D) {
|
|||
return SemaRef.FindInstantiatedDecl(Loc, cast<NamedDecl>(D), TemplateArgs);
|
||||
}
|
||||
|
||||
Decl *TemplateInstantiator::TransformDefinition(Decl *D) {
|
||||
Decl *TemplateInstantiator::TransformDefinition(SourceLocation Loc, Decl *D) {
|
||||
Decl *Inst = getSema().SubstDecl(D, getSema().CurContext, TemplateArgs);
|
||||
if (!Inst)
|
||||
return 0;
|
||||
|
|
|
@ -244,7 +244,7 @@ public:
|
|||
/// By default, invokes TransformDecl() to transform the declaration.
|
||||
/// Subclasses may override this function to provide alternate behavior.
|
||||
Decl *TransformDefinition(SourceLocation Loc, Decl *D) {
|
||||
return getDerived().TransformDecl(D);
|
||||
return getDerived().TransformDecl(Loc, D);
|
||||
}
|
||||
|
||||
/// \brief Transform the given declaration, which was the first part of a
|
||||
|
@ -3117,7 +3117,9 @@ TreeTransform<Derived>::TransformIfStmt(IfStmt *S) {
|
|||
if (S->getConditionVariable()) {
|
||||
ConditionVar
|
||||
= cast_or_null<VarDecl>(
|
||||
getDerived().TransformDefinition(S->getConditionVariable()));
|
||||
getDerived().TransformDefinition(
|
||||
S->getConditionVariable()->getLocation(),
|
||||
S->getConditionVariable()));
|
||||
if (!ConditionVar)
|
||||
return SemaRef.StmtError();
|
||||
} else {
|
||||
|
@ -3160,7 +3162,9 @@ TreeTransform<Derived>::TransformSwitchStmt(SwitchStmt *S) {
|
|||
if (S->getConditionVariable()) {
|
||||
ConditionVar
|
||||
= cast_or_null<VarDecl>(
|
||||
getDerived().TransformDefinition(S->getConditionVariable()));
|
||||
getDerived().TransformDefinition(
|
||||
S->getConditionVariable()->getLocation(),
|
||||
S->getConditionVariable()));
|
||||
if (!ConditionVar)
|
||||
return SemaRef.StmtError();
|
||||
} else {
|
||||
|
@ -3197,7 +3201,9 @@ TreeTransform<Derived>::TransformWhileStmt(WhileStmt *S) {
|
|||
if (S->getConditionVariable()) {
|
||||
ConditionVar
|
||||
= cast_or_null<VarDecl>(
|
||||
getDerived().TransformDefinition(S->getConditionVariable()));
|
||||
getDerived().TransformDefinition(
|
||||
S->getConditionVariable()->getLocation(),
|
||||
S->getConditionVariable()));
|
||||
if (!ConditionVar)
|
||||
return SemaRef.StmtError();
|
||||
} else {
|
||||
|
@ -3261,7 +3267,9 @@ TreeTransform<Derived>::TransformForStmt(ForStmt *S) {
|
|||
if (S->getConditionVariable()) {
|
||||
ConditionVar
|
||||
= cast_or_null<VarDecl>(
|
||||
getDerived().TransformDefinition(S->getConditionVariable()));
|
||||
getDerived().TransformDefinition(
|
||||
S->getConditionVariable()->getLocation(),
|
||||
S->getConditionVariable()));
|
||||
if (!ConditionVar)
|
||||
return SemaRef.StmtError();
|
||||
} else {
|
||||
|
@ -3349,7 +3357,8 @@ TreeTransform<Derived>::TransformDeclStmt(DeclStmt *S) {
|
|||
llvm::SmallVector<Decl *, 4> Decls;
|
||||
for (DeclStmt::decl_iterator D = S->decl_begin(), DEnd = S->decl_end();
|
||||
D != DEnd; ++D) {
|
||||
Decl *Transformed = getDerived().TransformDefinition(*D);
|
||||
Decl *Transformed = getDerived().TransformDefinition((*D)->getLocation(),
|
||||
*D);
|
||||
if (!Transformed)
|
||||
return SemaRef.StmtError();
|
||||
|
||||
|
|
Loading…
Reference in New Issue