diff options
author | Augie Fackler <augie@google.com> | 2023-08-02 14:37:32 -0400 |
---|---|---|
committer | Augie Fackler <augie@google.com> | 2023-08-02 14:38:08 -0400 |
commit | f4de606ef271fe362f03d30c53a850f9877ec238 (patch) | |
tree | febbe0b2ea0cc64f3e2fb858d325e2490340d652 /clang/lib/ExtractAPI/DeclarationFragments.cpp | |
parent | 11b7ce26f2a22ca147feaaf1cfd2d21b85fc3d83 (diff) | |
download | llvm-f4de606ef271fe362f03d30c53a850f9877ec238.zip llvm-f4de606ef271fe362f03d30c53a850f9877ec238.tar.gz llvm-f4de606ef271fe362f03d30c53a850f9877ec238.tar.bz2 |
fix use-after-free introduced in 8b76b44e46ac
ASan catches this easily enough.
Diffstat (limited to 'clang/lib/ExtractAPI/DeclarationFragments.cpp')
-rw-r--r-- | clang/lib/ExtractAPI/DeclarationFragments.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/lib/ExtractAPI/DeclarationFragments.cpp b/clang/lib/ExtractAPI/DeclarationFragments.cpp index ea72835..375bdfbb 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) |