[PATCH] D22227: [ubsan] Disable bounds-check for flexible array ivars
Vedant Kumar via cfe-commits
cfe-commits at lists.llvm.org
Tue Oct 4 13:42:20 PDT 2016
vsk added a comment.
Thanks for the review!
I looked at the IR and confirmed that the ivars are laid out in the order they're defined, that the indirect ivar offsets make sense, and that the runtime ivar offsets match up with what we expect. E.g;
@"OBJC_IVAR_$_FlexibleArray1.chars" = global i64 0 ...
@"\01l_OBJC_$_INSTANCE_VARIABLES_FlexibleArray1" = private global { i32, i32, [1 x %struct._ivar_t] } ...
---
@"OBJC_IVAR_$_FlexibleArray2.chars" = global i64 0
@"OBJC_IVAR_$_FlexibleArray2.chars2" = global i64 0 ;; < This offset increases if we sandwich an int between chars and chars2.
@"\01l_OBJC_$_INSTANCE_VARIABLES_FlexibleArray2" = private global { i32, i32, [2 x %struct._ivar_t] } ...
https://reviews.llvm.org/D22227
More information about the cfe-commits
mailing list