Clang Project

clang_source_code/test/Driver/stack-protector.c
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