forked from OSchip/llvm-project
23 lines
1.1 KiB
C
23 lines
1.1 KiB
C
/// Check that stack frame size warnings behave the same when safe stack is enabled
|
|
|
|
// REQUIRES: x86-registered-target
|
|
|
|
// RUN: %clang_cc1 %s -fwarn-stack-size=48 -S -o - -triple=i386-apple-darwin 2>&1 | FileCheck --check-prefix=REGULAR %s
|
|
// RUN: %clang_cc1 %s -fwarn-stack-size=1060 -S -o - -triple=i386-apple-darwin 2>&1 | FileCheck --check-prefix=IGNORE %s
|
|
|
|
// RUN: %clang_cc1 %s -fsanitize=safe-stack -fwarn-stack-size=48 -S -o - -triple=i386-apple-darwin 2>&1 | FileCheck --check-prefix=SAFESTACK %s
|
|
// RUN: %clang_cc1 %s -fsanitize=safe-stack -fwarn-stack-size=1060 -S -o - -triple=i386-apple-darwin 2>&1 | FileCheck --check-prefix=IGNORE %s
|
|
|
|
extern void init(char *buf, int size);
|
|
extern int use_buf(char *buf, int size);
|
|
|
|
// REGULAR: warning: stack frame size ([[#]]) exceeds limit ([[#]]) in 'stackSizeWarning'
|
|
// SAFESTACK: warning: stack frame size ([[#]]) exceeds limit ([[#]]) in 'stackSizeWarning'
|
|
// IGNORE-NOT: stack frame size ([[#]]) exceeds limit ([[#]]) in 'stackSizeWarning'
|
|
void stackSizeWarning() {
|
|
char buf[1024];
|
|
init(buf, sizeof(buf));
|
|
if (buf[0] < 42)
|
|
use_buf(buf, sizeof(buf));
|
|
}
|