summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorGabor Horvath <xazax.hun@gmail.com>2019-08-12 16:19:39 +0000
committerGabor Horvath <xazax.hun@gmail.com>2019-08-12 16:19:39 +0000
commitc6802b231f9c156162d9394052a56a06f16a930f (patch)
treee1f1f54369926635047b9e8097328257c30aa4ac /clang/lib/Sema
parent83bbfaa5e4f89942bb62f318fc9e1ef3b70296c9 (diff)
downloadbcm5719-llvm-c6802b231f9c156162d9394052a56a06f16a930f.tar.gz
bcm5719-llvm-c6802b231f9c156162d9394052a56a06f16a930f.zip
Fix multiple lifetime warning messages for range based for loop
llvm-svn: 368588
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r--clang/lib/Sema/SemaInit.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp
index 2be4e897c8e..17cfd129324 100644
--- a/clang/lib/Sema/SemaInit.cpp
+++ b/clang/lib/Sema/SemaInit.cpp
@@ -7070,8 +7070,11 @@ static SourceRange nextPathEntryRange(const IndirectLocalPath &Path, unsigned I,
// supporting lifetime extension.
break;
- case IndirectLocalPathEntry::DefaultInit:
case IndirectLocalPathEntry::VarInit:
+ if (cast<VarDecl>(Path[I].D)->isImplicit())
+ return SourceRange();
+ LLVM_FALLTHROUGH;
+ case IndirectLocalPathEntry::DefaultInit:
return Path[I].E->getSourceRange();
}
}
@@ -7138,7 +7141,7 @@ void Sema::checkInitializerLifetime(const InitializedEntity &Entity,
return false;
}
- if (IsGslPtrInitWithGslTempOwner) {
+ if (IsGslPtrInitWithGslTempOwner && DiagLoc.isValid()) {
Diag(DiagLoc, diag::warn_dangling_lifetime_pointer) << DiagRange;
return false;
}
OpenPOWER on IntegriCloud