diff options
author | Gabor Horvath <xazax.hun@gmail.com> | 2019-08-12 16:19:39 +0000 |
---|---|---|
committer | Gabor Horvath <xazax.hun@gmail.com> | 2019-08-12 16:19:39 +0000 |
commit | c6802b231f9c156162d9394052a56a06f16a930f (patch) | |
tree | e1f1f54369926635047b9e8097328257c30aa4ac /clang/lib/Sema | |
parent | 83bbfaa5e4f89942bb62f318fc9e1ef3b70296c9 (diff) | |
download | bcm5719-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.cpp | 7 |
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; } |