[clang][test] Update -fc++-abi tests

This attempts to move driver tests out of Frontend and to Driver, separates
RUNs that should fail from RUNs that should succeed, and prevent creating
output files or dumping output.

Differential Revision: https://reviews.llvm.org/D101867
This commit is contained in:
Leonard Chan 2021-05-04 15:52:17 -07:00
parent 347f69c55f
commit 0277a24f4b
3 changed files with 19 additions and 19 deletions

View File

@ -0,0 +1,11 @@
// Ensure that the driver flag is propagated to cc1.
// RUN: %clang -### -fc++-abi=itanium -target x86_64-unknown-linux-gnu %s \
// RUN: 2>&1 | FileCheck %s -check-prefix=ITANIUM
// RUN: %clang -### -fc++-abi=fuchsia -target x86_64-unknown-fuchsia %s \
// RUN: 2>&1 | FileCheck %s -check-prefix=FUCHSIA
// RUN: %clang -### -fc++-abi=microsoft -target x86_64-unknown-windows-msvc %s \
// RUN: 2>&1 | FileCheck %s -check-prefix=MICROSOFT
//
// ITANIUM: -fc++-abi=itanium
// FUCHSIA: -fc++-abi=fuchsia
// MICROSOFT: -fc++-abi=microsoft

View File

@ -1,24 +1,9 @@
// REQUIRES: x86-registered-target
// These should succeed.
// RUN: %clang -c -fc++-abi=itanium -target x86_64-unknown-linux-gnu %s
// RUN: %clang -c -fc++-abi=fuchsia -target x86_64-unknown-fuchsia %s
// RUN: %clang -c -fc++-abi=microsoft -target x86_64-windows-msvc %s
// RUN: %clang_cc1 -fc++-abi=itanium -triple x86_64-unknown-linux-gnu %s
// RUN: %clang_cc1 -fc++-abi=fuchsia -triple x86_64-unknown-fuchsia %s
// RUN: %clang_cc1 -fc++-abi=microsoft -triple x86_64-windows-msvc %s
// RUN: not %clang -c -fc++-abi=InvalidABI %s 2>&1 | FileCheck %s -check-prefix=INVALID
// RUN: not %clang -c -fc++-abi=Fuchsia %s 2>&1 | FileCheck %s -check-prefix=CASE-SENSITIVE
// RUN: not %clang_cc1 -fc++-abi=InvalidABI %s 2>&1 | FileCheck %s -check-prefix=INVALID
// RUN: not %clang_cc1 -fc++-abi=Fuchsia %s 2>&1 | FileCheck %s -check-prefix=CASE-SENSITIVE
// These shouldn't be valid -fc++-abi values.
// RUN: not %clang_cc1 -S -emit-llvm -o /dev/null -fc++-abi=InvalidABI %s 2>&1 | FileCheck %s -check-prefix=INVALID
// RUN: not %clang_cc1 -S -emit-llvm -o /dev/null -fc++-abi=Fuchsia %s 2>&1 | FileCheck %s -check-prefix=CASE-SENSITIVE
// INVALID: error: Invalid C++ ABI name 'InvalidABI'
// CASE-SENSITIVE: error: Invalid C++ ABI name 'Fuchsia'
// The flag is propgated from the driver to cc1.
// RUN: %clang -fc++-abi=InvalidABI %s -### 2>&1 | FileCheck %s -check-prefix=CC1-FLAG
// CC1-FLAG: -fc++-abi=InvalidABI
// Some C++ ABIs are not supported on some platforms.
// RUN: not %clang_cc1 -c -fc++-abi=fuchsia -triple i386 %s 2>&1 | FileCheck %s -check-prefix=UNSUPPORTED-FUCHSIA
// RUN: not %clang_cc1 -S -emit-llvm -o /dev/null -fc++-abi=fuchsia -triple i386 %s 2>&1 | FileCheck %s -check-prefix=UNSUPPORTED-FUCHSIA
// UNSUPPORTED-FUCHSIA: error: C++ ABI 'fuchsia' is not supported on target triple 'i386'

View File

@ -0,0 +1,4 @@
// These should be valid cxx abi flags for these targets.
// RUN: %clang_cc1 -fc++-abi=itanium -triple x86_64-unknown-linux-gnu %s -S -emit-llvm -o /dev/null
// RUN: %clang_cc1 -fc++-abi=fuchsia -triple x86_64-unknown-fuchsia %s -S -emit-llvm -o /dev/null
// RUN: %clang_cc1 -fc++-abi=microsoft -triple x86_64-windows-msvc %s -S -emit-llvm -o /dev/null