1// REQUIRES: x86-registered-target 2// REQUIRES: arm-registered-target 3// REQUIRES: aarch64-registered-target 4 5// RUN: rm -rf %t 6 7// Sanity check one of the compilations. 8// RUN: %clang_cc1 -triple aarch64-unknown-unknown -fmodules -fmodules-cache-path=%t -fimplicit-module-maps -I %S/Inputs -fsyntax-only %s -verify -DSANITY_CHECK 9// expected-no-diagnostics 10 11// Check all the targets: 12// RUN: not %clang_cc1 -triple armv7-unknown-unknown -fmodules -fmodules-cache-path=%t -fimplicit-module-maps -I %S/Inputs -fsyntax-only %s 2> %t.aarch32 13// RUN: FileCheck %s -check-prefix=AARCH32 < %t.aarch32 14// RUN: not %clang_cc1 -triple aarch64-unknown-unknown -fmodules -fmodules-cache-path=%t -fimplicit-module-maps -I %S/Inputs -fsyntax-only %s 2> %t.aarch64 15// RUN: FileCheck %s -check-prefix=AARCH64 < %t.aarch64 16// RUN: not %clang_cc1 -triple i386-unknown-unknown -fmodules -fmodules-cache-path=%t -fimplicit-module-maps -I %S/Inputs -fsyntax-only %s 2> %t.x86_32 17// RUN: FileCheck %s -check-prefix=X86_32 < %t.x86_32 18// RUN: not %clang_cc1 -triple x86_64-unknown-unknown -fmodules -fmodules-cache-path=%t -fimplicit-module-maps -I %S/Inputs -fsyntax-only %s 2> %t.x86_64 19// RUN: FileCheck %s -check-prefix=X86_64 < %t.x86_64 20 21#ifndef SANITY_CHECK 22@import TargetFeatures; 23// AARCH32-NOT: module 'TargetFeatures' requires 24// AARCH64-NOT: module 'TargetFeatures' requires 25// X86_32-NOT: module 'TargetFeatures' requires 26// X86_64-NOT: module 'TargetFeatures' requires 27@import TargetFeatures.arm; 28// AARCH32-NOT: module 'TargetFeatures.arm' requires 29// AARCH64-NOT: module 'TargetFeatures.arm' requires 30// X86_32: module 'TargetFeatures.arm' requires feature 'arm' 31// X86_64: module 'TargetFeatures.arm' requires feature 'arm' 32@import TargetFeatures.arm.aarch32; 33// AARCH32-NOT: module 'TargetFeatures.arm.aarch32' requires 34// AARCH64: module 'TargetFeatures.arm.aarch32' requires feature 'aarch32' 35// X86_32: module 'TargetFeatures.arm.aarch32' requires feature 36// X86_64: module 'TargetFeatures.arm.aarch32' requires feature 37#endif 38 39@import TargetFeatures.arm.aarch64; 40// AARCH32: module 'TargetFeatures.arm.aarch64' requires feature 'aarch64' 41// AARCH64-NOT: module 'TargetFeatures.arm.aarch64' requires 42// X86_32: module 'TargetFeatures.arm.aarch64' requires feature 43// X86_64: module 'TargetFeatures.arm.aarch64' requires feature 44 45#ifndef SANITY_CHECK 46@import TargetFeatures.x86; 47// AARCH32: module 'TargetFeatures.x86' requires feature 'x86' 48// AARCH64: module 'TargetFeatures.x86' requires feature 'x86' 49// X86_32-NOT: module 'TargetFeatures.x86' requires 50// X86_64-NOT: module 'TargetFeatures.x86' requires 51@import TargetFeatures.x86.x86_32; 52// AARCH32: module 'TargetFeatures.x86.x86_32' requires feature 53// AARCH64: module 'TargetFeatures.x86.x86_32' requires feature 54// X86_32-NOT: module 'TargetFeatures.x86.x86_32' requires 55// X86_64: module 'TargetFeatures.x86.x86_32' requires feature 'x86_32' 56@import TargetFeatures.x86.x86_64; 57// AARCH32: module 'TargetFeatures.x86.x86_64' requires feature 58// AARCH64: module 'TargetFeatures.x86.x86_64' requires feature 59// X86_32: module 'TargetFeatures.x86.x86_64' requires feature 'x86_64' 60// X86_64-NOT: module 'TargetFeatures.x86.x86_64' requires 61#endif 62