[PATCH] D104667: Improve the diagnostic of DiagnosticInfoStackSize (and warn-stack-size in particular)

Nick Desaulniers via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 21 13:29:00 PDT 2021


nickdesaulniers added a comment.

In D104667#2831505 <https://reviews.llvm.org/D104667#2831505>, @MaskRay wrote:

> In D104667#2831488 <https://reviews.llvm.org/D104667#2831488>, @nickdesaulniers wrote:
>
>> GCC trunk: `warning: the frame size of 80 bytes is larger than 0 bytes [-Wframe-larger-than=]`
>> Clang trunk: `warning: stack frame size of 88 bytes in function 'bar' [-Wframe-larger-than]`
>>
>> looks like the frontend doesn't use this particular text at all?
>
> This diagnostic is emitted by clang (`clang/lib/CodeGen/CodeGenAction.cpp`).
>
> -Wframe-larger-than= also records the module flag metadata "warn-stack-size" which can be useful for LTO.
>
>   % fclang -Wframe-larger-than=100 a.c  -o x          
>   a.c:1:5: warning: stack frame size of 888 bytes in function 'main' [-Wframe-larger-than]
>   int main(){
>       ^
>   1 warning generated.
>   % fclang -Wframe-larger-than=100 -flto=thin -fuse-ld=lld a.c -o x
>   ld.lld: warning: stack size limit exceeded (888) in main

Can we try to make the FE match what's printed during LTO? It's odd that they differ, IMO. Also, GCC prints the threshold value, as does our backend; but the frontend still does not.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D104667/new/

https://reviews.llvm.org/D104667



More information about the llvm-commits mailing list