56 lines · plain
1/// These tests make sure that options passed to the assembler2/// via -Wa or -Xassembler are applied correctly to assembler inputs.3 4/// Does not apply to non assembly files5// RUN: %clang --target=aarch64 -### -c -Wa,-march=armv8.1-a \6// RUN: %S/Inputs/wildcard1.c 2>&1 | FileCheck --check-prefix=TARGET-FEATURE-1 %s7// RUN: %clang --target=aarch64 -### -c -Xassembler -march=armv8.1-a \8// RUN: %S/Inputs/wildcard1.c 2>&1 | FileCheck --check-prefix=TARGET-FEATURE-1 %s9 10// TARGET-FEATURE-1-NOT: "-target-feature" "+v8.1a"11 12/// Does apply to assembler input13// RUN: %clang --target=aarch64 -### -c -Wa,-march=armv8.2-a %s 2>&1 | \14// RUN: FileCheck --check-prefix=TARGET-FEATURE-2 %s15// RUN: %clang --target=aarch64 -### -c -Xassembler -march=armv8.2-a %s 2>&1 | \16// RUN: FileCheck --check-prefix=TARGET-FEATURE-2 %s17 18// TARGET-FEATURE-2: "-target-feature" "+v8.2a"19 20/// No unused argument warnings when there are multiple values21// RUN: %clang --target=aarch64 -### -c -Wa,-march=armv8.1-a -Wa,-march=armv8.2-a %s 2>&1 | \22// RUN: FileCheck --check-prefix=UNUSED-WARNING %s23 24// UNUSED-WARNING-NOT: warning: argument unused during compilation25 26/// Last march to assembler wins27// RUN: %clang --target=aarch64 -### -c -Wa,-march=armv8.2-a -Wa,-march=armv8.1-a %s 2>&1 | \28// RUN: FileCheck --check-prefix=MULTIPLE-VALUES %s29// RUN: %clang --target=aarch64 -### -c -Wa,-march=armv8.2-a,-march=armv8.1-a %s 2>&1 | \30// RUN: FileCheck --check-prefix=MULTIPLE-VALUES %s31// RUN: %clang --target=aarch64 -### -c -Xassembler -march=armv8.2-a -Xassembler \32// RUN: -march=armv8.1-a %s 2>&1 | FileCheck --check-prefix=MULTIPLE-VALUES %s33 34// MULTIPLE-VALUES: "-target-feature" "+v8.1a35// MULTIPLE-VALUES-NOT: "-target-feature" "+v8.2a36 37/// march to compiler and assembler, we choose the one suited to the input file type38// RUN: %clang --target=aarch64 -### -c -Wa,-march=armv8.3-a -march=armv8.4-a %s 2>&1 | \39// RUN: FileCheck --check-prefix=TARGET-FEATURE-3 %s40// RUN: %clang --target=aarch64 -### -c -Wa,-march=armv8.3-a -march=armv8.4-a \41// RUN: %S/Inputs/wildcard1.c 2>&1 | FileCheck --check-prefix=TARGET-FEATURE-4 %s42 43// TARGET-FEATURE-3: "-target-feature" "+v8.3a"44// TARGET-FEATURE-3-NOT: "-target-feature" "+v8.4a"45// TARGET-FEATURE-4: "-target-feature" "+v8.4a"46// TARGET-FEATURE-4-NOT: "-target-feature" "+v8.3a"47 48// Invalid -march settings49// RUN: not %clang --target=aarch64 -### -c -Wa,-march=all %s 2>&1 | \50// RUN: FileCheck --check-prefix=INVALID-ARCH-1 %s51// RUN: not %clang --target=aarch64 -### -c -Wa,-march=foobar %s 2>&1 | \52// RUN: FileCheck --check-prefix=INVALID-ARCH-2 %s53 54// INVALID-ARCH-1: error: unsupported argument 'all' to option '-march='55// INVALID-ARCH-2: error: unsupported argument 'foobar' to option '-march='56