<div dir="ltr"><pre class="" id="comment_text_1" style="white-space:pre-wrap;width:50em;color:rgb(0,0,0)"><span style="font-family:arial,sans-serif">Sema::AddAlignment() defines MaxValidAlignment like this:</span><br></pre><pre class="" id="comment_text_1" style="white-space:pre-wrap;width:50em;color:rgb(0,0,0)">  // Alignment calculations can wrap around if it's greater than 2**28.
  unsigned MaxValidAlignment =
      Context.getTargetInfo().getTriple().isOSBinFormatCOFF() ? 8192
                                                              : 268435456;

But AggValueSlot stores Alignment as an unsigned short:

class AggValueSlot {
...
  unsigned short Alignment;

The max value for an unsigned short is 2**16 -1, but you are passing 2**16, which AddeAlignment says is okay.  However, it ends up getting stored as 0 in an unsigned short.

The fix is to make these sizes consistent, but I'm not sure which should be changed  (though I'm guessing Alignment should be unsigned instead of unsigned short).</pre></div>