xref: /llvm-project/clang/test/Misc/backend-stack-frame-diagnostics-attributes.cpp (revision 5fc4828aa6c6df03bd98b1f066e85655383d0cce)
1*5fc4828aSYi Kong // Test the warn-stack-size function attribute is not generated when -Wframe-larger-than is ignored
2*5fc4828aSYi Kong // through pragma.
3*5fc4828aSYi Kong 
4*5fc4828aSYi Kong // RUN: %clang_cc1 -fwarn-stack-size=70 -emit-llvm -o - %s | FileCheck %s
5*5fc4828aSYi Kong // CHECK: "warn-stack-size"="70"
6*5fc4828aSYi Kong 
7*5fc4828aSYi Kong // RUN: %clang_cc1 -DIGNORED -fwarn-stack-size=70 -emit-llvm -o - %s | FileCheck %s --check-prefix=IGNORED
8*5fc4828aSYi Kong // IGNORED-NOT: "warn-stack-size"="70"
9*5fc4828aSYi Kong 
10*5fc4828aSYi Kong extern void doIt(char *);
11*5fc4828aSYi Kong 
12*5fc4828aSYi Kong #ifdef IGNORED
13*5fc4828aSYi Kong #pragma GCC diagnostic push
14*5fc4828aSYi Kong #pragma GCC diagnostic ignored "-Wframe-larger-than"
15*5fc4828aSYi Kong #endif
16*5fc4828aSYi Kong 
frameSizeAttr()17*5fc4828aSYi Kong void frameSizeAttr() {
18*5fc4828aSYi Kong   char buffer[80];
19*5fc4828aSYi Kong   doIt(buffer);
20*5fc4828aSYi Kong }
21*5fc4828aSYi Kong 
22*5fc4828aSYi Kong #ifdef IGNORED
23*5fc4828aSYi Kong #pragma GCC diagnostic pop
24*5fc4828aSYi Kong #endif
25