efriedma added inline comments.
Comment at: lib/CodeGen/CGExpr.cpp:833
+ // Arrays don't have pass_object_size attributes, but if they have a constant
+ // size modifier it's the array size (C99 6.5.7.2p1).
+ if (auto *DecayedArrayTy = dyn_cast(ParamDecl->getType()))
-
george.burgess.iv added a comment.
> That said, one of the upsides of the current ubsan is that whether it will
> produce a diagnostic is predictable (as long as you don't use uninitialized
> data); you lose that to some extent with llvm.objectsize because it depends
> on the optimizer.
True.
vsk added a comment.
I backed out the part of this patch which deals with array parameters declared
like p[10] or p[static 10]: r320185.
Comment at: lib/CodeGen/CGExpr.cpp:833
+ // Arrays don't have pass_object_size attributes, but if they have a constant
+ // size modifier
efriedma added a comment.
> It's interesting to me that these array-bound checks don't seem to use
> @llvm.objectsize in some form already.
That would be a cool experiment. That said, one of the upsides of the current
ubsan is that whether it will produce a diagnostic is predictable (as long a
vsk closed this revision.
vsk added a comment.
Landed in r320128.
https://reviews.llvm.org/D40940
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
george.burgess.iv accepted this revision.
george.burgess.iv added a comment.
This revision is now accepted and ready to land.
LGTM. Thanks again!
https://reviews.llvm.org/D40940
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.ll
vsk updated this revision to Diff 126064.
vsk added a comment.
- Handle constant size modifiers while we're at it (e.g "int foo(int p[static
10])").
https://reviews.llvm.org/D40940
Files:
lib/CodeGen/CGExpr.cpp
lib/CodeGen/CodeGenFunction.h
test/CodeGen/ubsan-pass-object-size.c
Index: t
vsk updated this revision to Diff 126037.
vsk added a comment.
Thanks for your feedback.
- Give up on 0-sized types.
- Give up on pass_object_size(2 | 3).
https://reviews.llvm.org/D40940
Files:
lib/CodeGen/CGExpr.cpp
lib/CodeGen/CodeGenFunction.h
test/CodeGen/ubsan-pass-object-size.c
In
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/CGEx
vsk created this revision.
Herald added a reviewer: george.burgess.iv.
Teach UBSan's bounds check to opportunistically use pass_object_size
information to check array accesses.
rdar://33272922
https://reviews.llvm.org/D40940
Files:
lib/CodeGen/CGExpr.cpp
lib/CodeGen/CodeGenFunction.h
tes
10 matches
Mail list logo