# In this test we compile with -gmodules but delete the ModuleCache. # When LLDB tries to find a definition for NSObject (the Foo's super-class) # it will fail to do so. LLDB should handle this situation gracefully. # A super-class definition is required when laying out Obj-C types. # # REQUIRES: system-darwin # # RUN: split-file %s %t # # RUN: %clang_host %t/main.m -c -g -gmodules -fmodules -fcxx-modules \ # RUN: -fmodule-map-file=%t/module.modulemap \ # RUN: -fmodules-cache-path=%t/ModuleCache -o %t/main.o # # RUN: %clang_host %t/module.m -c -g -gmodules -fmodules -fcxx-modules \ # RUN: -fmodule-map-file=%t/module.modulemap \ # RUN: -fmodules-cache-path=%t/ModuleCache -o %t/module.o # # RUN: %clang_host %t/*.o -framework Foundation -o %t.out # # RUN: rm -r %t/ModuleCache # # RUN: %lldb -x -o "settings set interpreter.stop-command-source-on-error false" \ # RUN: -s %t/commands.input %t.out -o exit 2>&1 | FileCheck %s #--- main.m @import foo; int main() { Foo *f = [Foo new]; __builtin_debugtrap(); } #--- module.m #import "module.h" @implementation Foo @end #--- module.h #import @interface Foo : NSObject @end #--- module.modulemap module foo { header "module.h" export * } #--- commands.input run expression *f # CHECK: (lldb) expression *f