[PATCH] D48958: [clang][ubsan] Implicit Cast Sanitizer - integer truncation - clang part

Vedant Kumar via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Jul 20 10:58:46 PDT 2018


vsk added inline comments.


================
Comment at: lib/CodeGen/CodeGenFunction.h:383
+  // This stack is used/maintained exclusively by the implicit cast sanitizer.
+  llvm::SmallVector<const CastExpr *, 8> CastExprStack;
+
----------------
lebedev.ri wrote:
> vsk wrote:
> > lebedev.ri wrote:
> > > vsk wrote:
> > > > Why not 0 instead of 8, given that in the common case, this stack is unused?
> > > No longer relevant.
> > I'm referring to CastExprStack within ScalarExprEmitter, which still allocates space for 8 pointers inline.
> Ah, you mean in the general case when the sanitizer is disabled?
> 
Yes. It's a relatively minor concern, but clang's stack can get pretty deep inside of CodeGenFunction. At one point we needed to outline code by hand to unbreak the ASan build. Later I think we just increased the stack size rlimit. I don't see a countervailing performance benefit of allocating more space inline, at least not here.


Repository:
  rC Clang

https://reviews.llvm.org/D48958





More information about the cfe-commits mailing list