| // Verify that we don't pass unwanted options to device-side compilation when |
| // clang-cl is used for CUDA compilation. |
| // Note: %s must be preceded by --, otherwise it may be interpreted as a |
| // command-line option, e.g. on Mac where %s is commonly under /Users. |
| |
| // REQUIRES: clang-driver |
| // REQUIRES: x86-registered-target |
| // REQUIRES: nvptx-registered-target |
| |
| // -stack-protector should not be passed to device-side CUDA compilation |
| // RUN: %clang_cl -### -nocudalib -nocudainc -- %s 2>&1 | FileCheck -check-prefix=GS-default %s |
| // GS-default: "-cc1" "-triple" "nvptx{{(64)?}}-nvidia-cuda" |
| // GS-default-NOT: "-stack-protector" |
| // GS-default: "-cc1" "-triple" |
| // GS-default: "-stack-protector" "2" |
| |
| // -exceptions should be passed to device-side compilation. |
| // RUN: %clang_cl /c /GX -### -nocudalib -nocudainc -- %s 2>&1 | FileCheck -check-prefix=GX %s |
| // GX: "-cc1" "-triple" "nvptx{{(64)?}}-nvidia-cuda" |
| // GX-NOT: "-fcxx-exceptions" |
| // GX-NOT: "-fexceptions" |
| // GX: "-cc1" "-triple" |
| // GX: "-fcxx-exceptions" "-fexceptions" |
| |
| // /Gd should not override default calling convention on device side. |
| // RUN: %clang_cl /c /Gd -### -nocudalib -nocudainc -- %s 2>&1 | FileCheck -check-prefix=Gd %s |
| // Gd: "-cc1" "-triple" "nvptx{{(64)?}}-nvidia-cuda" |
| // Gd-NOT: "-fcxx-exceptions" |
| // Gd-NOT: "-fdefault-calling-conv=cdecl" |
| // Gd: "-cc1" "-triple" |
| // Gd: "-fdefault-calling-conv=cdecl" |