Compiling the attached source with
clang -cc1 -emit-llvm test.c
generates incorrect code.
Note that the load is marked align 4,
even though it's actually unaligned.
The problem is that CodeGenFunction::EmitLValueForField
discards the alignment of base when calling
test.c (207 Bytes)
test.ll (707 Bytes)