xref: /llvm-project/clang/test/Misc/backend-stack-frame-diagnostics-fallback.cpp (revision c62745e1678e26185dc93ea30f858c91c03323f9)
1 // REQUIRES: x86-registered-target
2 // RUN: %clang_cc1 %s -fwarn-stack-size=0 -emit-codegen-only -triple=i386-apple-darwin 2>&1 | FileCheck %s
3 
4 // TODO: Emit rich diagnostics for thunks and move this into the appropriate test file.
5 // Until then, test that we fall back and display the LLVM backend diagnostic.
6 namespace frameSizeThunkWarning {
7   struct A {
8     virtual void f();
9   };
10 
11   struct B : virtual A {
12     virtual void f();
13   };
14 
15   // CHECK: warning: stack frame size ([[#]]) exceeds limit ([[#]]) in 'frameSizeThunkWarning::B::f()'
16   // CHECK: warning: <unknown>:0:0: stack frame size ([[#]]) exceeds limit ([[#]]) in function '_ZTv0_n12_N21frameSizeThunkWarning1B1fEv'
f()17   void B::f() {
18     volatile int x = 0; // Ensure there is stack usage.
19   }
20 }
21