Incorrect alignment when accessing a bitfield member of an unaligned struct

AMDG

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
EmitLValueForBitfield.

In Christ,
Steven Watanabe

test.c (207 Bytes)

test.ll (707 Bytes)

r159295.

-Eli