blob: f970bf909cbee0863c0ee0d75fbb970ed7ab0c16 [file] [log] [blame]
serge_sans_paillee67cbac2019-09-09 16:59:34 +02001// Check the correct function attributes are generated
2// RUN: %clang_cc1 -triple x86_64-linux -O0 -S -emit-llvm -o- %s -fstack-clash-protection | FileCheck %s
3
4// CHECK: define void @large_stack() #[[A:.*]] {
5void large_stack() {
6 volatile int stack[20000], i;
7 for (i = 0; i < sizeof(stack) / sizeof(int); ++i)
8 stack[i] = i;
9}
10
11// CHECK: define void @vla({{.*}}) #[[A:.*]] {
12void vla(int n) {
13 volatile int vla[n];
14 __builtin_memset(&vla[0], 0, 1);
15}
16
17// CHECK: define void @builtin_alloca({{.*}}) #[[A:.*]] {
18void builtin_alloca(int n) {
19 volatile void *mem = __builtin_alloca(n);
20}
21
22// CHECK: attributes #[[A]] = {{.*}} "probe-stack"="inline-asm"