Author: Augie Fackler Date: 2023-08-02T14:38:08-04:00 New Revision: f4de606ef271fe362f03d30c53a850f9877ec238
URL: https://github.com/llvm/llvm-project/commit/f4de606ef271fe362f03d30c53a850f9877ec238 DIFF: https://github.com/llvm/llvm-project/commit/f4de606ef271fe362f03d30c53a850f9877ec238.diff LOG: fix use-after-free introduced in 8b76b44e46ac ASan catches this easily enough. Added: Modified: clang/lib/ExtractAPI/DeclarationFragments.cpp Removed: ################################################################################ diff --git a/clang/lib/ExtractAPI/DeclarationFragments.cpp b/clang/lib/ExtractAPI/DeclarationFragments.cpp index ea72835c995313..375bdfbb02fbfd 100644 --- a/clang/lib/ExtractAPI/DeclarationFragments.cpp +++ b/clang/lib/ExtractAPI/DeclarationFragments.cpp @@ -606,7 +606,7 @@ DeclarationFragments DeclarationFragmentsBuilder::getFragmentsForSpecialCXXMethod( const CXXMethodDecl *Method) { DeclarationFragments Fragments; - StringRef Name; + std::string Name; if (isa<CXXConstructorDecl>(Method)) { auto *Constructor = dyn_cast<CXXConstructorDecl>(Method); Name = cast<CXXRecordDecl>(Constructor->getDeclContext())->getName(); @@ -614,7 +614,7 @@ DeclarationFragmentsBuilder::getFragmentsForSpecialCXXMethod( Fragments.append("explicit", DeclarationFragments::FragmentKind::Keyword) .appendSpace(); } else if (isa<CXXDestructorDecl>(Method)) - Name = StringRef(Method->getNameAsString()); + Name = Method->getNameAsString(); DeclarationFragments After; Fragments.append(Name, DeclarationFragments::FragmentKind::Identifier) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits