[llvm] r206445 - MC: rework static_assert to be MSVC compatible
Saleem Abdulrasool
compnerd at compnerd.org
Wed Apr 16 23:17:21 PDT 2014
Author: compnerd
Date: Thu Apr 17 01:17:20 2014
New Revision: 206445
URL: http://llvm.org/viewvc/llvm-project?rev=206445&view=rev
Log:
MC: rework static_assert to be MSVC compatible
Visual Studio does not permit referencing a structure member as a static field
for sizeof calculations. Resort to a pointer cast which is compatible across
Visual Studio and other compilers.
Modified:
llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp
Modified: llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp?rev=206445&r1=206444&r2=206445&view=diff
==============================================================================
--- llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp (original)
+++ llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp Thu Apr 17 01:17:20 2014
@@ -632,10 +632,8 @@ void WinCOFFObjectWriter::ExecutePostLay
const MCAsmLayout &Layout) {
// "Define" each section & symbol. This creates section & symbol
// entries in the staging area.
- // FIXME: this used to be
- // sizeof(COFF::AuxiliaryFile::FileName) == COFF::SymbolSize
- // but VS2013 can't compile that.
- static_assert(sizeof(COFF::AuxiliaryFile) == COFF::SymbolSize,
+
+ static_assert(sizeof(((COFF::AuxiliaryFile *)0)->FileName) == COFF::SymbolSize,
"size mismatch for COFF::AuxiliaryFile::FileName");
for (auto FI = Asm.file_names_begin(), FE = Asm.file_names_end();
FI != FE; ++FI) {
More information about the llvm-commits
mailing list