Skip to content

Commit a03cb96

Browse files
Merge pull request #24614 from adrian-prantl/lldb-moduleimport
Make lldb-moduleimport more rubost when importing object files with m…
2 parents 2397dea + 807c2cf commit a03cb96

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

tools/lldb-moduleimport-test/lldb-moduleimport-test.cpp

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,16 @@ validateModule(llvm::StringRef data, bool Verbose,
4949
swift::serialization::ValidationInfo &info,
5050
swift::serialization::ExtendedValidationInfo &extendedInfo) {
5151
info = swift::serialization::validateSerializedAST(data, &extendedInfo);
52-
if (info.status != swift::serialization::Status::Valid)
52+
if (info.status != swift::serialization::Status::Valid) {
53+
llvm::outs() << "error: validateSerializedAST() failed\n";
5354
return false;
55+
}
5456

5557
swift::CompilerInvocation CI;
56-
if (CI.loadFromSerializedAST(data) != swift::serialization::Status::Valid)
58+
if (CI.loadFromSerializedAST(data) != swift::serialization::Status::Valid) {
59+
llvm::outs() << "error: loadFromSerializedAST() failed\n";
5760
return false;
61+
}
5862

5963
if (Verbose) {
6064
if (!info.shortVersion.empty())
@@ -260,6 +264,8 @@ int main(int argc, char **argv) {
260264
swift::serialization::ValidationInfo info;
261265
swift::serialization::ExtendedValidationInfo extendedInfo;
262266
for (auto &Module : Modules) {
267+
info = {};
268+
extendedInfo = {};
263269
if (!validateModule(StringRef(Module.first, Module.second), Verbose, info,
264270
extendedInfo)) {
265271
llvm::errs() << "Malformed module!\n";
@@ -277,7 +283,8 @@ int main(int argc, char **argv) {
277283
reinterpret_cast<void *>(&anchorForGetMainExecutable)));
278284

279285
// Infer SDK and Target triple from the module.
280-
Invocation.setSDKPath(extendedInfo.getSDKPath());
286+
if (!extendedInfo.getSDKPath().empty())
287+
Invocation.setSDKPath(extendedInfo.getSDKPath());
281288
Invocation.setTargetTriple(info.targetTriple);
282289

283290
Invocation.setModuleName("lldbtest");
@@ -289,13 +296,17 @@ int main(int argc, char **argv) {
289296
Invocation.setRuntimeResourcePath(ResourceDir);
290297
}
291298

292-
if (CI.setup(Invocation))
299+
if (CI.setup(Invocation)) {
300+
llvm::errs() << "error: Failed setup invocation!\n";
293301
return 1;
302+
}
294303

295304
for (auto &Module : Modules)
296305
if (!parseASTSection(*CI.getMemoryBufferSerializedModuleLoader(),
297-
StringRef(Module.first, Module.second), modules))
306+
StringRef(Module.first, Module.second), modules)) {
307+
llvm::errs() << "error: Failed to parse AST section!\n";
298308
return 1;
309+
}
299310

300311
// Attempt to import all modules we found.
301312
for (auto path : modules) {

0 commit comments

Comments
 (0)