The pr19687.c test currently checks that a union initialization with empty initializer list initializes the whole union to zero. An empty initializer is a GNU extension that I believe should be equivalent to `= {0}` in this case, which does not require the initialization of anything but the first union member by my reading of the C11 standard (see https://reviews.llvm.org/D115994#3203445 below for relevant quotes).
Prior to D115924 constant folding ended up evaluating the `undef` initialization as zero, but now it retains the `undef`, thus breaking this test.