summaryrefslogtreecommitdiff
path: root/lldb/test/Shell/Expr/TestClangModuleLoadError_InvalidTopLevelModule.test
AgeCommit message (Collapse)Author
2025-11-08[lldb][ClangModulesDeclVendor] Print Clang module loading errors to ↵Michael Buch
expression log instead of console (#166964) Depends on: * https://github.com/llvm/llvm-project/pull/166917 * https://github.com/llvm/llvm-project/pull/166940 While these errors can contribute to an expression failing, they are never *the* reason the expression failed. I.e., they are always just 'note:' diagnostics that we hand-emit. Because they are quite noisy (and we potentially have many of them if we auto-load all modules in a CU), this patch logs the errors to the `expr` log, instead of the console. Previously these errors would only get omitted when the expression itself failed. Meaning if the expression failed, we'd dump these 'note' module load errors in next to the actual expression error, obscuring the output. Moreover, if the expression succeeded, any module load errors would be dropped. Now we always log all module loading errors to the expression log, regardless of whether the expression fails or not.
2025-11-07[lldb][ClangModulesDeclVendor] Don't stop loading Clang modules if an ↵Michael Buch
individual import failed (#166940) Depends on: * https://github.com/llvm/llvm-project/pull/166917 When loading all Clang modules for a CU, we stop on first error. This means benign module loading errors may stop us from importing actually useful modules. There's no good reason to bail on the first one. The pathological case would be if we try to load a large number of Clang modules but all fail to load for the same reason. That could happen, but in practice I've always seen only a handful of modules failing to load out of a large number. Particularly system modules are useful and usually don't fail to load. Whereas project-specific Clang modules are more likely to fail because the build system moves the modulemap/sources around. This patch accumulates all module loading errors and doesn't stop when an error is encountered.
2025-11-07[lldb][ClangModulesDeclVendor] Revamp error handling when loading Clang ↵Michael Buch
modules (#166917) Instead of propagating the errors as a `bool`+`Stream` we change the `ClangModulesDeclVendor` module loading APIs to use `llvm::Error`. We also reword some of the diagnostics (notably removing the hardcoded `error:` prefix). A follow-up patch will further make the module loading errors less noisy. See the new tests for what the errors look like. rdar://164002569