That looks like correct behavior, because the alignment of raw_lock inside ofstruct sub is still 4. But it does mean that there can be cases where thecompile-time check is not sufficient, so we might want the run-time checkas well, at least under some config option.