xref: /llvm-project/clang/test/Frontend/invalid-cxx-abi.cpp (revision 9c72a210b58f19632af0e91679da7aa63f51ad7a)
1 // REQUIRES: x86-registered-target
2 
3 // These should succeed.
4 // RUN: %clang -c -fc++-abi=itanium -target x86_64-unknown-linux-gnu %s
5 // RUN: %clang -c -fc++-abi=fuchsia -target x86_64-unknown-fuchsia %s
6 // RUN: %clang -c -fc++-abi=microsoft -target x86_64-windows-msvc %s
7 // RUN: %clang_cc1 -fc++-abi=itanium -triple x86_64-unknown-linux-gnu %s
8 // RUN: %clang_cc1 -fc++-abi=fuchsia -triple x86_64-unknown-fuchsia %s
9 // RUN: %clang_cc1 -fc++-abi=microsoft -triple x86_64-windows-msvc %s
10 
11 // RUN: not %clang -c -fc++-abi=InvalidABI %s 2>&1 | FileCheck %s -check-prefix=INVALID
12 // RUN: not %clang -c -fc++-abi=Fuchsia %s 2>&1 | FileCheck %s -check-prefix=CASE-SENSITIVE
13 // RUN: not %clang_cc1 -fc++-abi=InvalidABI %s 2>&1 | FileCheck %s -check-prefix=INVALID
14 // RUN: not %clang_cc1 -fc++-abi=Fuchsia %s 2>&1 | FileCheck %s -check-prefix=CASE-SENSITIVE
15 // INVALID: error: Invalid C++ ABI name 'InvalidABI'
16 // CASE-SENSITIVE: error: Invalid C++ ABI name 'Fuchsia'
17 
18 // The flag is propgated from the driver to cc1.
19 // RUN: %clang -fc++-abi=InvalidABI %s -### 2>&1 | FileCheck %s -check-prefix=CC1-FLAG
20 // CC1-FLAG: -fc++-abi=InvalidABI
21 
22 // Some C++ ABIs are not supported on some platforms.
23 // RUN: not %clang_cc1 -c -fc++-abi=fuchsia -triple i386 %s 2>&1 | FileCheck %s -check-prefix=UNSUPPORTED-FUCHSIA
24 // UNSUPPORTED-FUCHSIA: error: C++ ABI 'fuchsia' is not supported on target triple 'i386'
25