[PATCH] D122622: [llvm-pdbutil] Fix a crash due to Expected not checked before destruction
Zequan Wu via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 29 10:01:42 PDT 2022
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
zequanwu marked 2 inline comments as done.
Closed by commit rGa9e29848a2b4: [llvm-pdbutil] Fix a crash due to Expected not checked before destruction (authored by zequanwu).
Changed prior to commit:
https://reviews.llvm.org/D122622?vs=418729&id=418910#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D122622/new/
https://reviews.llvm.org/D122622
Files:
llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp
Index: llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp
===================================================================
--- llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp
+++ llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp
@@ -412,10 +412,10 @@
return std::make_pair(std::move(Stream), Headers);
}
-static std::vector<std::string> getSectionNames(PDBFile &File) {
+static Expected<std::vector<std::string>> getSectionNames(PDBFile &File) {
auto ExpectedHeaders = loadSectionHeaders(File, DbgHeaderType::SectionHdr);
if (!ExpectedHeaders)
- return {};
+ return ExpectedHeaders.takeError();
std::unique_ptr<MappedBlockStream> Stream;
ArrayRef<object::coff_section> Headers;
@@ -485,7 +485,10 @@
[&](uint32_t Modi, const SymbolGroup &Strings) -> Error {
auto Desc = Modules.getModuleDescriptor(Modi);
if (opts::dump::DumpSectionContribs) {
- std::vector<std::string> Sections = getSectionNames(getPdb());
+ auto SectionsOrErr = getSectionNames(getPdb());
+ if (!SectionsOrErr)
+ return SectionsOrErr.takeError();
+ ArrayRef<std::string> Sections = *SectionsOrErr;
dumpSectionContrib(P, Desc.getSectionContrib(), Sections, 0);
}
P.formatLine("Obj: `{0}`: ", Desc.getObjFileName());
@@ -1840,8 +1843,11 @@
ArrayRef<std::string> Names;
};
- std::vector<std::string> Names = getSectionNames(getPdb());
- Visitor V(P, makeArrayRef(Names));
+ auto NamesOrErr = getSectionNames(getPdb());
+ if (!NamesOrErr)
+ return NamesOrErr.takeError();
+ ArrayRef<std::string> Names = *NamesOrErr;
+ Visitor V(P, Names);
Dbi.visitSectionContributions(V);
return Error::success();
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D122622.418910.patch
Type: text/x-patch
Size: 1705 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220329/67ca4ba8/attachment.bin>
More information about the llvm-commits
mailing list