xref: /llvm-project/clang/test/Frontend/invalid-cxx-abi.cpp (revision 84c475437267e7fffedc40029ce274b099d8f8f3)
1 // These should succeed.
2 // RUN: %clang -c -fc++-abi=itanium %s
3 // RUN: %clang -c -fc++-abi=arm -target arm64 %s
4 // RUN: %clang -c -fc++-abi=ios -target arm64-apple-ios %s
5 // RUN: %clang -c -fc++-abi=aarch64 -target arm64 %s
6 // RUN: %clang -c -fc++-abi=mips -target mips %s
7 // RUN: %clang -c -fc++-abi=webassembly -target wasm64 %s
8 // RUN: %clang -c -fc++-abi=fuchsia -target x86_64-unknown-fuchsia %s
9 // RUN: %clang -S -fc++-abi=xl -target powerpc-unknown-aix %s -o /dev/null
10 // RUN: %clang -c -fc++-abi=microsoft -target x86_64-windows-msvc %s
11 // RUN: %clang_cc1 -fc++-abi=itanium %s
12 // RUN: %clang_cc1 -fc++-abi=arm -triple arm64 %s
13 // RUN: %clang_cc1 -fc++-abi=ios -triple arm64-apple-ios %s
14 // RUN: %clang_cc1 -fc++-abi=aarch64 -triple arm64 %s
15 // RUN: %clang_cc1 -fc++-abi=mips -triple mips %s
16 // RUN: %clang_cc1 -fc++-abi=webassembly -triple wasm64 %s
17 // RUN: %clang_cc1 -fc++-abi=fuchsia -triple x86_64-unknown-fuchsia %s
18 // RUN: %clang_cc1 -S -fc++-abi=xl -triple powerpc-unknown-aix %s -o /dev/null
19 // RUN: %clang_cc1 -fc++-abi=microsoft -triple x86_64-windows-msvc %s
20 
21 // RUN: not %clang -c -fc++-abi=InvalidABI %s 2>&1 | FileCheck %s -check-prefix=INVALID
22 // RUN: not %clang -c -fc++-abi=Fuchsia %s 2>&1 | FileCheck %s -check-prefix=CASE-SENSITIVE
23 // RUN: not %clang_cc1 -fc++-abi=InvalidABI %s 2>&1 | FileCheck %s -check-prefix=INVALID
24 // RUN: not %clang_cc1 -fc++-abi=Fuchsia %s 2>&1 | FileCheck %s -check-prefix=CASE-SENSITIVE
25 // INVALID: error: Invalid C++ ABI name 'InvalidABI'
26 // CASE-SENSITIVE: error: Invalid C++ ABI name 'Fuchsia'
27 
28 // The flag is propgated from the driver to cc1.
29 // RUN: %clang -fc++-abi=InvalidABI %s -### 2>&1 | FileCheck %s -check-prefix=CC1-FLAG
30 // CC1-FLAG: -fc++-abi=InvalidABI
31 
32 // Some C++ ABIs are not supported on some platforms.
33 // RUN: not %clang_cc1 -c -fc++-abi=fuchsia -triple i386 %s 2>&1 | FileCheck %s -check-prefix=UNSUPPORTED-FUCHSIA
34 // UNSUPPORTED-FUCHSIA: error: C++ ABI 'fuchsia' is not supported on target triple 'i386'
35