102 lines · plain
1// REQUIRES: x86-registered-target2// REQUIRES: arm-registered-target3// REQUIRES: aarch64-registered-target4// REQUIRES: riscv-registered-target5 6// RUN: rm -rf %t7 8// Basic check on one of the compilations.9// RUN: %clang_cc1 -triple aarch64-unknown-unknown -fmodules -fmodules-cache-path=%t -fimplicit-module-maps -I %S/Inputs -fsyntax-only %s -verify -DBASIC_CHECK10// expected-no-diagnostics11 12// Check all the targets:13// RUN: not %clang_cc1 -triple armv7-unknown-unknown -fmodules -fmodules-cache-path=%t -fimplicit-module-maps -I %S/Inputs -fsyntax-only %s 2> %t.aarch3214// RUN: FileCheck %s -check-prefix=AARCH32 < %t.aarch3215// RUN: not %clang_cc1 -triple aarch64-unknown-unknown -fmodules -fmodules-cache-path=%t -fimplicit-module-maps -I %S/Inputs -fsyntax-only %s 2> %t.aarch6416// RUN: FileCheck %s -check-prefix=AARCH64 < %t.aarch6417// 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_3218// RUN: FileCheck %s -check-prefix=X86_32 < %t.x86_3219// 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_6420// RUN: FileCheck %s -check-prefix=X86_64 < %t.x86_6421// RUN: not %clang_cc1 -triple riscv32-unknown-unknown -fmodules -fmodules-cache-path=%t -fimplicit-module-maps -I %S/Inputs -fsyntax-only %s 2> %t.riscv3222// RUN: FileCheck %s -check-prefix=RISCV32 < %t.riscv3223// RUN: not %clang_cc1 -triple riscv64-unknown-unknown -fmodules -fmodules-cache-path=%t -fimplicit-module-maps -I %S/Inputs -fsyntax-only %s 2> %t.riscv6424// RUN: FileCheck %s -check-prefix=RISCV64 < %t.riscv6425 26#ifndef BASIC_CHECK27@import TargetFeatures;28// AARCH32-NOT: module 'TargetFeatures' requires29// AARCH64-NOT: module 'TargetFeatures' requires30// X86_32-NOT: module 'TargetFeatures' requires31// X86_64-NOT: module 'TargetFeatures' requires32// RISCV32-NOT: module 'TargetFeatures' requires33// RISCV64-NOT: module 'TargetFeatures' requires34@import TargetFeatures.arm;35// AARCH32-NOT: module 'TargetFeatures.arm' requires36// AARCH64-NOT: module 'TargetFeatures.arm' requires37// X86_32: module 'TargetFeatures.arm' requires feature 'arm'38// X86_64: module 'TargetFeatures.arm' requires feature 'arm'39// RISCV32: module 'TargetFeatures.arm' requires40// RISCV64: module 'TargetFeatures.arm' requires41@import TargetFeatures.arm.aarch32;42// AARCH32-NOT: module 'TargetFeatures.arm.aarch32' requires43// AARCH64: module 'TargetFeatures.arm.aarch32' requires feature 'aarch32'44// X86_32: module 'TargetFeatures.arm.aarch32' requires feature 45// X86_64: module 'TargetFeatures.arm.aarch32' requires feature46// RISCV32: module 'TargetFeatures.arm.aarch32' requires feature47// RISCV64: module 'TargetFeatures.arm.aarch32' requires feature48#endif49 50@import TargetFeatures.arm.aarch64;51// AARCH32: module 'TargetFeatures.arm.aarch64' requires feature 'aarch64'52// AARCH64-NOT: module 'TargetFeatures.arm.aarch64' requires53// X86_32: module 'TargetFeatures.arm.aarch64' requires feature 54// X86_64: module 'TargetFeatures.arm.aarch64' requires feature55// RISCV32: module 'TargetFeatures.arm.aarch64' requires feature56// RISCV64: module 'TargetFeatures.arm.aarch64' requires feature57 58#ifndef BASIC_CHECK59@import TargetFeatures.x86;60// AARCH32: module 'TargetFeatures.x86' requires feature 'x86'61// AARCH64: module 'TargetFeatures.x86' requires feature 'x86'62// X86_32-NOT: module 'TargetFeatures.x86' requires63// X86_64-NOT: module 'TargetFeatures.x86' requires64// RISCV32: module 'TargetFeatures.x86' requires feature 'x86'65// RISCV64: module 'TargetFeatures.x86' requires feature 'x86'66@import TargetFeatures.x86.x86_32;67// AARCH32: module 'TargetFeatures.x86.x86_32' requires feature68// AARCH64: module 'TargetFeatures.x86.x86_32' requires feature69// X86_32-NOT: module 'TargetFeatures.x86.x86_32' requires70// X86_64: module 'TargetFeatures.x86.x86_32' requires feature 'x86_32'71// RISCV32: module 'TargetFeatures.x86.x86_32' requires feature72// RISCV64: module 'TargetFeatures.x86.x86_32' requires feature73@import TargetFeatures.x86.x86_64;74// AARCH32: module 'TargetFeatures.x86.x86_64' requires feature75// AARCH64: module 'TargetFeatures.x86.x86_64' requires feature76// X86_32: module 'TargetFeatures.x86.x86_64' requires feature 'x86_64'77// X86_64-NOT: module 'TargetFeatures.x86.x86_64' requires78// RISCV32: module 'TargetFeatures.x86.x86_64' requires feature79// RISCV64: module 'TargetFeatures.x86.x86_64' requires feature80@import TargetFeatures.riscv;81// AARCH32: module 'TargetFeatures.riscv' requires feature82// AARCH64: module 'TargetFeatures.riscv' requires feature83// X86_32: module 'TargetFeatures.riscv' requires feature84// X86_64: module 'TargetFeatures.riscv' requires feature85// RISCV32-NOT: module 'TargetFeatures.riscv' requires feature86// RISCV64-NOT: module 'TargetFeatures.riscv' requires feature87@import TargetFeatures.riscv.riscv32;88// AARCH32: module 'TargetFeatures.riscv.riscv32' requires feature89// AARCH64: module 'TargetFeatures.riscv.riscv32' requires feature90// X86_32: module 'TargetFeatures.riscv.riscv32' requires feature91// X86_64: module 'TargetFeatures.riscv.riscv32' requires feature92// RISCV32-NOT: module 'TargetFeatures.riscv.riscv32' requires feature93// RISCV64: module 'TargetFeatures.riscv.riscv32' requires feature 'riscv32'94@import TargetFeatures.riscv.riscv64;95// AARCH32: module 'TargetFeatures.riscv.riscv64' requires feature96// AARCH64: module 'TargetFeatures.riscv.riscv64' requires feature97// X86_32: module 'TargetFeatures.riscv.riscv64' requires feature98// X86_64: module 'TargetFeatures.riscv.riscv64' requires feature99// RISCV32: module 'TargetFeatures.riscv.riscv64' requires feature 'riscv64'100// RISCV64-NOT: module 'TargetFeatures.riscv.riscv64' requires feature101#endif102