Index: lib/CodeGen/CodeGenModule.cpp =================================================================== --- lib/CodeGen/CodeGenModule.cpp +++ lib/CodeGen/CodeGenModule.cpp @@ -3761,8 +3761,11 @@ } } } - // COFF doesn't support alignments greater than 32, so these cannot be - // in common. + + // MSVC doesn't support alignments greater than 32 for common symbols, so + // symbols with greater alignment requirements cannot be common. Non-MSVC COFF + // environments support arbitrary power-of-two alignments for common symbols + // via the aligncomm directive, so the restriction doesn't apply there. if (Context.getTargetInfo().getTriple().isKnownWindowsMSVCEnvironment() && Context.getTypeAlignIfKnown(D->getType()) > 32) return true;