// RUN: %empty-directory(%t)
// RUN: cp -r %S/Inputs/CrossCompiler.framework %t/
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) %S/../Inputs/empty.swift -typecheck -verify -emit-objc-header-path %t/CrossCompiler.framework/Headers/empty.h
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -enable-objc-interop -emit-module-path %t/CrossCompiler.framework/Modules/CrossCompiler.swiftmodule/%target-swiftmodule-name -import-underlying-module -F %t -F %clang-importer-sdk-path/frameworks -module-name CrossCompiler -disable-objc-attr-requires-foundation-module -parse-as-library %s -Xcc -Werror

// Ensure that building with multiple compatibility headers from different compilers doesn't
// trigger "macro redefinition" errors (rdar://106087804)

// CrossCompiler.framework contains a modified header generated with Swift 5.7 (before the
// PrintAsClang refactor to make macros data-driven). By compiling it alongside a freshly-generated
// header, we can make sure that the macro definitions are the same before and after the switch.

