[clang-tools-extra] r347563 - [clangd] Fix use-after-free with expected types in indexing
Ilya Biryukov via cfe-commits
cfe-commits at lists.llvm.org
Mon Nov 26 07:52:16 PST 2018
Author: ibiryukov
Date: Mon Nov 26 07:52:16 2018
New Revision: 347563
URL: http://llvm.org/viewvc/llvm-project?rev=347563&view=rev
Log:
[clangd] Fix use-after-free with expected types in indexing
Modified:
clang-tools-extra/trunk/clangd/index/SymbolCollector.cpp
Modified: clang-tools-extra/trunk/clangd/index/SymbolCollector.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/index/SymbolCollector.cpp?rev=347563&r1=347562&r2=347563&view=diff
==============================================================================
--- clang-tools-extra/trunk/clangd/index/SymbolCollector.cpp (original)
+++ clang-tools-extra/trunk/clangd/index/SymbolCollector.cpp Mon Nov 26 07:52:16 2018
@@ -587,9 +587,11 @@ const Symbol *SymbolCollector::addDeclar
if (!Include.empty())
S.IncludeHeaders.emplace_back(Include, 1);
+ llvm::Optional<OpaqueType> TypeStorage;
if (S.Flags & Symbol::IndexedForCodeCompletion) {
- if (auto T = OpaqueType::fromCompletionResult(*ASTCtx, SymbolCompletion))
- S.Type = T->raw();
+ TypeStorage = OpaqueType::fromCompletionResult(*ASTCtx, SymbolCompletion);
+ if (TypeStorage)
+ S.Type = TypeStorage->raw();
}
S.Origin = Opts.Origin;
More information about the cfe-commits
mailing list