<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jun 9, 2015, at 4:31 PM, David Blaikie <<a href="mailto:dblaikie@gmail.com" class="">dblaikie@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Can probably be suppressed by casting one side to int, etc.<br class=""><br class="">Though we /probably/ should fix the warning to not fire on anonymous unions as they're often used as zero-space constants.</div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, Jun 9, 2015 at 4:27 PM, Kaelyn Takata <span dir="ltr" class=""><<a href="mailto:rikka@google.com" target="_blank" class="">rikka@google.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="">FYI, this causes a build failure with -Werror and -Wenum-compare:<div class=""><br class=""></div><div class="">lib/MC/MCSymbol.cpp:32:46: error: comparison between 'enum llvm::AlignOf<llvm::MCSymbol>::<anonymous>' and 'enum llvm::AlignOf<llvm::MCSymbol::NameEntryStorageTy>::<anonymous>' [-Werror=enum-compare]<br class=""></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br class=""></div></div></div></blockquote></div></div></div></blockquote><div>Sorry about that.  I’ll fix it now with the cast as suggested.</div><div><br class=""></div><div>Pete</div><blockquote type="cite" class=""><div class=""><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jun 9, 2015 at 1:58 PM, Pete Cooper <span dir="ltr" class=""><<a href="mailto:peter_cooper@apple.com" target="_blank" class="">peter_cooper@apple.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: pete<br class="">
Date: Tue Jun  9 15:58:03 2015<br class="">
New Revision: 239431<br class="">
<br class="">
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D239431-26view-3Drev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=A3AtBjvd0F2ZXuH7fM7H83exqgFdkOTZuZePtHS-rR4&s=W191Am6OnqVvxgyiL9r19U8FTBbkvqwRk7OaTZcbfts&e=" target="_blank" class="">http://llvm.org/viewvc/llvm-project?rev=239431&view=rev</a><br class="">
Log:<br class="">
Use AlignOf traits to enable static_assert.<br class="">
<br class="">
This is better than runtime asserts.  Thanks to David Blaikie for the help here.<br class="">
<br class="">
Modified:<br class="">
    llvm/trunk/lib/MC/MCSymbol.cpp<br class="">
<br class="">
Modified: llvm/trunk/lib/MC/MCSymbol.cpp<br class="">
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_MC_MCSymbol.cpp-3Frev-3D239431-26r1-3D239430-26r2-3D239431-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=A3AtBjvd0F2ZXuH7fM7H83exqgFdkOTZuZePtHS-rR4&s=ND2ehpkWhLcXxwnlAHsODVGYN4UZRPvlNM-9wHNiy7A&e=" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCSymbol.cpp?rev=239431&r1=239430&r2=239431&view=diff</a><br class="">
==============================================================================<br class="">
--- llvm/trunk/lib/MC/MCSymbol.cpp (original)<br class="">
+++ llvm/trunk/lib/MC/MCSymbol.cpp Tue Jun  9 15:58:03 2015<br class="">
@@ -28,9 +28,9 @@ void *MCSymbol::operator new(size_t s, c<br class="">
   // For safety, ensure that the alignment of a pointer is enough for an<br class="">
   // MCSymbol.  This also ensures we don't need padding between the name and<br class="">
   // symbol.<br class="">
-  // FIXME: Use static_assert when constexpr is supported.<br class="">
-  assert(alignOf<MCSymbol>() <= alignOf<NameEntryStorageTy>() &&<br class="">
-         "Bad alignment of MCSymbol");<br class="">
+  static_assert(AlignOf<MCSymbol>::Alignment <=<br class="">
+                AlignOf<NameEntryStorageTy>::Alignment,<br class="">
+                "Bad alignment of MCSymbol");<br class="">
   void *Storage = Ctx.allocate(Size, alignOf<NameEntryStorageTy>());<br class="">
   NameEntryStorageTy *Start = static_cast<NameEntryStorageTy*>(Storage);<br class="">
   NameEntryStorageTy *End = Start + (Name ? 1 : 0);<br class="">
<br class="">
<br class="">
_______________________________________________<br class="">
llvm-commits mailing list<br class="">
<a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank" class="">llvm-commits@cs.uiuc.edu</a><br class="">
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank" class="">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br class="">
</blockquote></div><br class=""></div>
</div></div><br class="">_______________________________________________<br class="">
llvm-commits mailing list<br class="">
<a href="mailto:llvm-commits@cs.uiuc.edu" class="">llvm-commits@cs.uiuc.edu</a><br class="">
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank" class="">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br class="">
<br class=""></blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></body></html>