rsmith added inline comments.
================
Comment at: lib/CodeGen/CGExpr.cpp:579
@@ -578,1 +578,3 @@
+ // Make sure we're not losing information. Alignment needs to be a power
of 2
+ assert(!AlignVal || (uint64_t)1 << llvm::Log2_64(AlignVal) == AlignVal);
llvm::Constant *StaticData[] = {
----------------
filcab wrote:
> Would it be acceptable to set AlignVal to 1 if it's 0?
Yes, that seems fine. The alignment check will never fire if `AlignVal` is zero
(that only happens if the type in question is incomplete, and we don't emit a
check for it in that case). Setting it to 1 should prevent the runtime library
from thinking that we detected an alignment problem.
It looks like the current patch will emit 255 as the alignment in that case;
that also seems fine as a way of indicating "no alignment check". I doubt we'll
ever need to deal with a real alignment value of 2^255 :)
http://reviews.llvm.org/D19667
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits