
* For `-###`, `-o %t.o` is unnecessary if we don't specifically test the output filename. * --target= is the canonical spelling. -target is a legacy spelling which unfortunately cannot be removed because there are too many uses. * -no-canonical-prefixes uses the dereferenced absolute path for the cc1 command. For most tests "-cc1" is sufficient to identify the command line, no need to specifically test the "clang" command, and -no-canonical-prefixes can removed. * --unwindlib= is the preferred spelling. -u is a short option taking a value, which means a -uwindlib= typo cannot be detected. I recommend that you take a look at linux-cross.cpp. Testing include paths and library paths in one RUN line is sometimes more readable than having separate include/library tests. Having separate RUN lines for misc features like -fdata-sections (`aix-data-sections.c`) is wasteful. It may be better testing multiple options in a single RUN command. Reviewed By: jsji Differential Revision: https://reviews.llvm.org/D119309
23 lines
944 B
C
23 lines
944 B
C
// Check that setting an OBJECT_MODE converts the AIX triple to the right variant.
|
|
// RUN: env OBJECT_MODE=64 \
|
|
// RUN: %clang --target=powerpc-ibm-aix -print-target-triple | FileCheck -check-prefix=CHECK64 %s
|
|
|
|
// RUN: env OBJECT_MODE=32 \
|
|
// RUN: %clang --target=powerpc64-ibm-aix -print-target-triple | FileCheck -check-prefix=CHECK32 %s
|
|
|
|
// Command-line options win.
|
|
// RUN: env OBJECT_MODE=64 \
|
|
// RUN: %clang --target=powerpc64-ibm-aix -print-target-triple -m32 | FileCheck -check-prefix=CHECK32 %s
|
|
|
|
// RUN: env OBJECT_MODE=32 \
|
|
// RUN: %clang --target=powerpc-ibm-aix -print-target-triple -m64 | FileCheck -check-prefix=CHECK64 %s
|
|
|
|
// CHECK32: powerpc-ibm-aix
|
|
// CHECK64: powerpc64-ibm-aix
|
|
|
|
// Emit a diagnostic if there is an invalid mode.
|
|
// RUN: env OBJECT_MODE=31 \
|
|
// RUN: not %clang --target=powerpc-ibm-aix 2>&1 | FileCheck -check-prefix=DIAG %s
|
|
|
|
// DIAG: error: OBJECT_MODE setting 31 is not recognized and is not a valid setting
|