| 1 | // RUN: %clang -fno-stack-protector -### %s 2>&1 | FileCheck %s -check-prefix=NOSSP |
| 2 | // NOSSP-NOT: "-stack-protector" |
| 3 | // NOSSP-NOT: "-stack-protector-buffer-size" |
| 4 | |
| 5 | // RUN: %clang -target i386-unknown-linux -fstack-protector -### %s 2>&1 | FileCheck %s -check-prefix=SSP |
| 6 | // SSP: "-stack-protector" "1" |
| 7 | // SSP-NOT: "-stack-protector-buffer-size" |
| 8 | |
| 9 | // RUN: %clang -target i386-unknown-linux -fstack-protector --param ssp-buffer-size=16 -### %s 2>&1 | FileCheck %s -check-prefix=SSP-BUF |
| 10 | // SSP-BUF: "-stack-protector" "1" |
| 11 | // SSP-BUF: "-stack-protector-buffer-size" "16" |
| 12 | |
| 13 | // RUN: %clang -target i386-pc-openbsd -### %s 2>&1 | FileCheck %s -check-prefix=OPENBSD |
| 14 | // OPENBSD: "-stack-protector" "2" |
| 15 | |
| 16 | // RUN: %clang -target i386-pc-openbsd -fstack-protector -### %s 2>&1 | FileCheck %s -check-prefix=OPENBSD_SPS |
| 17 | // OPENBSD_SPS: "-stack-protector" "2" |
| 18 | |
| 19 | // RUN: %clang -fstack-protector-strong -### %s 2>&1 | FileCheck %s -check-prefix=SSP-STRONG |
| 20 | // SSP-STRONG: "-stack-protector" "2" |
| 21 | // SSP-STRONG-NOT: "-stack-protector-buffer-size" |
| 22 | |
| 23 | // RUN: %clang -fstack-protector-all -### %s 2>&1 | FileCheck %s -check-prefix=SSP-ALL |
| 24 | // SSP-ALL: "-stack-protector" "3" |
| 25 | // SSP-ALL-NOT: "-stack-protector-buffer-size" |
| 26 | |
| 27 | // RUN: %clang -target x86_64-scei-ps4 -### %s 2>&1 | FileCheck %s -check-prefix=SSP-PS4 |
| 28 | // RUN: %clang -target x86_64-scei-ps4 -fstack-protector -### %s 2>&1 | FileCheck %s -check-prefix=SSP-PS4 |
| 29 | // SSP-PS4: "-stack-protector" "2" |
| 30 | // SSP-PS4-NOT: "-stack-protector-buffer-size" |
| 31 | |
| 32 | // RUN: %clang -target x86_64-scei-ps4 -fstack-protector --param ssp-buffer-size=16 -### %s 2>&1 | FileCheck %s -check-prefix=SSP-PS4-BUF |
| 33 | // SSP-PS4-BUF: "-stack-protector" "2" |
| 34 | // SSP-PS4-BUF: "-stack-protector-buffer-size" "16" |
| 35 | |
| 36 | // Test default stack protector values for Darwin platforms |
| 37 | |
| 38 | // RUN: %clang -target armv7k-apple-watchos2.0 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_WATCHOS |
| 39 | // RUN: %clang -ffreestanding -target armv7k-apple-watchos2.0 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_WATCHOS |
| 40 | // SSP_WATCHOS: "-stack-protector" "1" |
| 41 | // RUN: %clang -target arm64-apple-ios8.0.0 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_IOS |
| 42 | // RUN: %clang -ffreestanding -target arm64-apple-ios8.0.0 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_IOS |
| 43 | // SSP_IOS: "-stack-protector" "1" |
| 44 | // RUN: %clang -target x86_64-apple-darwin10 -mmacosx-version-min=10.6 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_MACOSX |
| 45 | // RUN: %clang -ffreestanding -target x86_64-apple-darwin10 -mmacosx-version-min=10.6 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_MACOSX |
| 46 | // SSP_MACOSX: "-stack-protector" "1" |
| 47 | // RUN: %clang -target x86_64-apple-darwin10 -mmacosx-version-min=10.5 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_MACOSX_10_5 |
| 48 | // RUN: %clang -ffreestanding -target x86_64-apple-darwin10 -mmacosx-version-min=10.5 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_MACOSX_10_5 |
| 49 | // SSP_MACOSX_10_5: "-stack-protector" "1" |
| 50 | // RUN: %clang -target x86_64-apple-darwin10 -mmacosx-version-min=10.5 -mkernel -### %s 2>&1 | FileCheck %s -check-prefix=SSP_MACOSX_KERNEL |
| 51 | // SSP_MACOSX_KERNEL-NOT: "-stack-protector" |
| 52 | // RUN: %clang -target x86_64-apple-darwin10 -mmacosx-version-min=10.6 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_MACOSX_10_6_KERNEL |
| 53 | // RUN: %clang -ffreestanding -target x86_64-apple-darwin10 -mmacosx-version-min=10.6 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_MACOSX_10_6_KERNEL |
| 54 | // SSP_MACOSX_10_6_KERNEL: "-stack-protector" "1" |
| 55 | |
| 56 | |