================
@@ -1759,20 +1759,29 @@ void 
CodeGenFunction::emitZeroOrPatternForAutoVarInit(QualType type,
                                                       const VarDecl &D,
                                                       Address Loc) {
   auto trivialAutoVarInit = getContext().getLangOpts().getTrivialAutoVarInit();
+  auto trivialAutoVarInitSizeBound =
+      getContext().getLangOpts().TrivialAutoVarInitSizeBound;
   CharUnits Size = getContext().getTypeSizeInChars(type);
   bool isVolatile = type.isVolatileQualified();
   if (!Size.isZero()) {
+    auto allocSize = 
CGM.getDataLayout().getTypeAllocSize(Loc.getElementType());
----------------
vitalybuka wrote:

I'd expect that it's kind of `bail out` measure which should not be consider as 
a contract by a end-user. So confusing should not be a concern.

Also how 
```
struct S {
  long a;
  long b;
  char c;
} var;
```

is better  then:
```
long a;
long b;
char c;
```

My impression was that your concern is buffers of hundreds of bytes, then maybe 
better to target just them?
If it 's `24 vs 16` maybe it should not use auto init at all?

https://github.com/llvm/llvm-project/pull/74777
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to