| // We force the target to unknown because clang's default behavior for | |
| // exception handling is target dependent. | |
| // RUN: %clang -### -target unknown %s 2>&1 | FileCheck %s -check-prefix=DEFAULT | |
| // DEFAULT: "-cc1" {{.*}} "-fcxx-exceptions" "-fexceptions" | |
| // | |
| // RUN: %clang -### -fexceptions %s 2>&1 | FileCheck %s -check-prefix=ON1 | |
| // ON1: "-cc1" {{.*}} "-fcxx-exceptions" "-fexceptions" | |
| // | |
| // RUN: %clang -### -fno-exceptions -fcxx-exceptions %s 2>&1 | FileCheck %s -check-prefix=ON2 | |
| // ON2: "-cc1" {{.*}} "-fcxx-exceptions" "-fexceptions" | |
| // | |
| // RUN: %clang -### -fno-cxx-exceptions -fexceptions %s 2>&1 | FileCheck %s -check-prefix=ON3 | |
| // ON3: "-cc1" {{.*}} "-fcxx-exceptions" "-fexceptions" | |
| // | |
| // RUN: %clang -### -fno-exceptions %s 2>&1 | FileCheck %s -check-prefix=OFF1 | |
| // OFF1-NOT: "-cc1" {{.*}} "-fcxx-exceptions" | |
| // | |
| // RUN: %clang -### -fno-cxx-exceptions %s 2>&1 | FileCheck %s -check-prefix=OFF2 | |
| // OFF2-NOT: "-cc1" {{.*}} "-fcxx-exceptions" | |
| // | |
| // RUN: %clang -### -fcxx-exceptions -fno-exceptions %s 2>&1 | FileCheck %s -check-prefix=OFF3 | |
| // OFF3-NOT: "-cc1" {{.*}} "-fcxx-exceptions" | |
| // | |
| // RUN: %clang -### -fexceptions -fno-cxx-exceptions %s 2>&1 | FileCheck %s -check-prefix=OFF4 | |
| // OFF4-NOT: "-cc1" {{.*}} "-fcxx-exceptions" | |
| // | |
| // RUN: %clang -### -target x86_64-scei-ps4 %s 2>&1 | FileCheck %s -check-prefix=PS-OFF | |
| // RUN: %clang -### -target x86_64-sie-ps5 %s 2>&1 | FileCheck %s -check-prefix=PS-OFF | |
| // PS-OFF-NOT: "-cc1" {{.*}} "-f{{(cxx-)?}}exceptions" | |
| // RUN: %clang -### -fexceptions -fno-assume-nothrow-exception-dtor -fassume-nothrow-exception-dtor %s 2>&1 | FileCheck %s --check-prefix=NOTHROW-DTOR | |
| // NOTHROW-DTOR: "-cc1"{{.*}} "-fcxx-exceptions" "-fassume-nothrow-exception-dtor" |