// RUN: rm -rf %t // RUN: split-file %s %t // RUN: %clang_cc1 -emit-llvm -o %t/test.bc -F%t/Frameworks %t/test.m -DHIDDEN_FIRST=1 \ // RUN: -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/modules.cache // RUN: %clang_cc1 -emit-llvm -o %t/test.bc -F%t/Frameworks %t/test.m -DHIDDEN_FIRST=0 \ // RUN: -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/modules.cache // UNSUPPORTED: target={{.*}}-zos{{.*}}, target={{.*}}-aix{{.*}} // Test a case when Objective-C interface is imported both as hidden and as visible. //--- Frameworks/Foundation.framework/Headers/Foundation.h @interface NSObject @end //--- Frameworks/Foundation.framework/Modules/module.modulemap framework module Foundation { header "Foundation.h" export * } //--- Frameworks/Regular.framework/Headers/Regular.h #import @interface Regular : NSObject @end //--- Frameworks/Regular.framework/Modules/module.modulemap framework module Regular { header "Regular.h" export * } //--- Frameworks/RegularHider.framework/Headers/Visible.h // Empty, file required to create a module. //--- Frameworks/RegularHider.framework/Headers/Hidden.h #import @interface Regular : NSObject @end //--- Frameworks/RegularHider.framework/Modules/module.modulemap framework module RegularHider { header "Visible.h" export * explicit module Hidden { header "Hidden.h" export * } } //--- test.m #if HIDDEN_FIRST #import #import #else #import #import #endif @interface SubClass : Regular @end