Merged to 8.0 in r353825.
On Thu, Feb 7, 2019 at 4:13 PM Erich Keane via cfe-commits <cfe-commits@lists.llvm.org> wrote: > > Author: erichkeane > Date: Thu Feb 7 07:14:11 2019 > New Revision: 353411 > > URL: http://llvm.org/viewvc/llvm-project?rev=353411&view=rev > Log: > Fix r350643 to limit COFF emission to <= 32 BYTES instead of BITS. > > The patch in r350643 incorrectly sets the COFF emission based on bits > instead of bytes. This patch converts the 32 via CharUnits to bits to > compare the correct values. > > Change-Id: Icf38a16470ad5ae3531374969c033557ddb0d323 > > Modified: > cfe/trunk/lib/CodeGen/CodeGenModule.cpp > cfe/trunk/test/CodeGen/microsoft-no-common-align.c > > Modified: cfe/trunk/lib/CodeGen/CodeGenModule.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.cpp?rev=353411&r1=353410&r2=353411&view=diff > ============================================================================== > --- cfe/trunk/lib/CodeGen/CodeGenModule.cpp (original) > +++ cfe/trunk/lib/CodeGen/CodeGenModule.cpp Thu Feb 7 07:14:11 2019 > @@ -3775,13 +3775,15 @@ static bool isVarDeclStrongDefinition(co > } > } > > - // Microsoft's link.exe doesn't support alignments greater than 32 for > common > - // symbols, so symbols with greater alignment requirements cannot be > common. > + // Microsoft's link.exe doesn't support alignments greater than 32 bytes > for > + // common symbols, so symbols with greater alignment requirements cannot be > + // common. > // Other COFF linkers (ld.bfd and LLD) support arbitrary power-of-two > // alignments for common symbols via the aligncomm directive, so this > // restriction only applies to MSVC environments. > if (Context.getTargetInfo().getTriple().isKnownWindowsMSVCEnvironment() && > - Context.getTypeAlignIfKnown(D->getType()) > 32) > + Context.getTypeAlignIfKnown(D->getType()) > > + Context.toBits(CharUnits::fromQuantity(32))) > return true; > > return false; > > Modified: cfe/trunk/test/CodeGen/microsoft-no-common-align.c > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/microsoft-no-common-align.c?rev=353411&r1=353410&r2=353411&view=diff > ============================================================================== > --- cfe/trunk/test/CodeGen/microsoft-no-common-align.c (original) > +++ cfe/trunk/test/CodeGen/microsoft-no-common-align.c Thu Feb 7 07:14:11 > 2019 > @@ -6,3 +6,6 @@ TooLargeAlignment TooBig; > // CHECK: @TooBig = dso_local global <16 x float> zeroinitializer, align 64 > NormalAlignment JustRight; > // CHECK: @JustRight = common dso_local global <1 x float> zeroinitializer, > align 4 > + > +TooLargeAlignment *IsAPointer; > +// CHECK: @IsAPointer = common dso_local global <16 x float>* null, align 8 > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits