diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2019-08-22 17:48:11 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2019-08-22 17:48:11 +0000 |
commit | 966eea91ad94e38a3654f154d2d5ad28ea5deb9d (patch) | |
tree | b04c116337c9f308c479d5186d3d8819940664c6 /clang/lib/Sema/SemaInit.cpp | |
parent | 1a28a06ebef290e0dafcd2d2f4ca1a817263d02b (diff) | |
download | llvm-966eea91ad94e38a3654f154d2d5ad28ea5deb9d.zip llvm-966eea91ad94e38a3654f154d2d5ad28ea5deb9d.tar.gz llvm-966eea91ad94e38a3654f154d2d5ad28ea5deb9d.tar.bz2 |
Revert "[LifetimeAnalysis] Support more STL idioms (template forward declaration and DependentNameType)"
This reverts commit r369591, because it causes the formerly-reliable
-Wreturn-stack-address warning to start issuing false positives.
Testcase provided on the commit thread.
llvm-svn: 369677
Diffstat (limited to 'clang/lib/Sema/SemaInit.cpp')
-rw-r--r-- | clang/lib/Sema/SemaInit.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp index ee9963f..289a140 100644 --- a/clang/lib/Sema/SemaInit.cpp +++ b/clang/lib/Sema/SemaInit.cpp @@ -6561,7 +6561,7 @@ static void visitLocalsRetainedByReferenceBinding(IndirectLocalPath &Path, template <typename T> static bool isRecordWithAttr(QualType Type) { if (auto *RD = Type->getAsCXXRecordDecl()) - return RD->hasAttr<T>(); + return RD->getCanonicalDecl()->hasAttr<T>(); return false; } @@ -6672,7 +6672,7 @@ static void handleGslAnnotatedTypes(IndirectLocalPath &Path, Expr *Call, if (auto *CCE = dyn_cast<CXXConstructExpr>(Call)) { const auto *Ctor = CCE->getConstructor(); - const CXXRecordDecl *RD = Ctor->getParent(); + const CXXRecordDecl *RD = Ctor->getParent()->getCanonicalDecl(); if (CCE->getNumArgs() > 0 && RD->hasAttr<PointerAttr>()) VisitPointerArg(Ctor->getParamDecl(0), CCE->getArgs()[0]); } |