mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
By populating the memory cache before loading the module, we can avoid a cycle where a module is imported that is an overlay, which then triggers ClangImporter, which then (redundantly) triggers the import of the overlay module, which would reimport the module again, since it's import is still underway and it hasn't been entered into the cache yet. rdar://118846313
34 lines
916 B
Swift
34 lines
916 B
Swift
// RUN: %empty-directory(%t)
|
|
|
|
// RUN: %target-build-swift -emit-executable %s -g -o %t/ASTSection -emit-module
|
|
// RUN: %lldb-moduleimport-test -verbose %t/ASTSection | %FileCheck %s
|
|
// RUN: %lldb-moduleimport-test -filter mips64-unknown-hurd -verbose %t/ASTSection | %FileCheck %s --check-prefix=LINETABLE-CHECK
|
|
|
|
// REQUIRES: executable_test
|
|
// REQUIRES: swift_tools_extra
|
|
|
|
// The test ASTSection_linker.swift builds this code with separate
|
|
// compile and link steps.
|
|
// The test ASTSection_ObjC.swift builds this code with -DOBJC.
|
|
|
|
// A type that should be serialized.
|
|
class Foo {
|
|
init() { }
|
|
func bar() -> Int64 { return 42 }
|
|
}
|
|
|
|
// Some toplevel code that should not be serialized.
|
|
var foo: Foo = Foo()
|
|
Double(foo.bar())
|
|
|
|
#if OBJC
|
|
func objCUser(_ obj: ObjCClass) {}
|
|
#endif
|
|
|
|
// CHECK: - Target: {{.+}}-{{.+}}-{{.+}}
|
|
// CHECK: Importing ASTSection...
|
|
// CHECK: Import successful!
|
|
|
|
// LINETABLE-CHECK-NOT: ASTSection
|
|
|