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 // SSP_WATCHOS: "-stack-protector" "1" 40 // RUN: %clang -target arm64-apple-ios8.0.0 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_IOS 41 // SSP_IOS: "-stack-protector" "1" 42 // RUN: %clang -target x86_64-apple-darwin10 -mmacosx-version-min=10.6 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_MACOSX 43 // SSP_MACOSX: "-stack-protector" "1" 44 // RUN: %clang -target x86_64-apple-darwin10 -mmacosx-version-min=10.5 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_MACOSX_10_5 45 // SSP_MACOSX_10_5: "-stack-protector" "1" 46 // RUN: %clang -target x86_64-apple-darwin10 -mmacosx-version-min=10.5 -mkernel -### %s 2>&1 | FileCheck %s -check-prefix=SSP_MACOSX_KERNEL 47 // SSP_MACOSX_KERNEL-NOT: "-stack-protector" 48 // RUN: %clang -target x86_64-apple-darwin10 -mmacosx-version-min=10.6 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_MACOSX_10_6_KERNEL 49 // SSP_MACOSX_10_6_KERNEL: "-stack-protector" "1" 50 51 // Test default stack protector values for Darwin platforms with -ffreestanding 52 53 // RUN: %clang -ffreestanding -target armv7k-apple-watchos2.0 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_FREE_WATCHOS 54 // SSP_FREE_WATCHOS-NOT: "-stack-protector" 55 // RUN: %clang -ffreestanding -target arm64-apple-ios8.0.0 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_FREE_IOS 56 // SSP_FREE_IOS-NOT: "-stack-protector" 57 // RUN: %clang -ffreestanding -target x86_64-apple-darwin10 -mmacosx-version-min=10.6 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_FREE_MACOSX 58 // SSP_FREE_MACOSX-NOT: "-stack-protector" 59 // RUN: %clang -ffreestanding -target x86_64-apple-darwin10 -mmacosx-version-min=10.5 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_FREE_MACOSX_10_5 60 // SSP_FREE_MACOSX_10_5-NOT: "-stack-protector" 61 // RUN: %clang -ffreestanding -target x86_64-apple-darwin10 -mmacosx-version-min=10.6 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_FREE_MACOSX_10_6_KERNEL 62 // SSP_FREE_MACOSX_10_6_KERNEL-NOT: "-stack-protector" 63