george.burgess.iv added a comment.

Thanks for this!

It's interesting to me that these array-bound checks don't seem to use 
`@llvm.objectsize` in some form already. I can't find any notes about it 
grepping through git/source, so I'm happy with it.



================
Comment at: lib/CodeGen/CGExpr.cpp:819
+                                                   QualType EltTy) {
+  auto *DRE = dyn_cast<DeclRefExpr>(E->IgnoreImpCasts());
+  if (!DRE)
----------------
nit: would `IgnoreParenImpCasts` be better?


================
Comment at: lib/CodeGen/CGExpr.cpp:828
+  // Find the implicit size parameter.
+  auto SizeDeclIt = SizeArguments.find(PVD);
+  if (SizeDeclIt == SizeArguments.end())
----------------
We should probably only do this if the argument to `pass_object_size` is `0` or 
`1`. `2` and `3` give lower-bounds on size (and a default value of 0), which 
could result in false-positives.

(And please add a test that we don't do this for 2 or 3.)


https://reviews.llvm.org/D40940



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to