When a forward reference is emitted, Visual Studio uses the name to match the forward reference to the definition. For unnamed structs and unions there is no name to perform this matching. Instead, references to unnamed types are expected to refer to the complete type definition.
The changes to CodeViewDebug omit the forward declaration for unnamed types.
The test DebugInfo/COFF/unnamed.ll was added to verify the correct emission of unnamed types.
The test DebugInfo/COFF/bitfields.ll needed an update because the source contains an unnamed struct.
Can you wrap this condition (which is duplicated below) into a helper, something like shouldAlwaysEmitCompleteClassType?