<div dir="ltr">Attempted fix in r186310.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jul 15, 2013 at 12:13 AM, Kai Nacke <span dir="ltr"><<a href="mailto:kai.nacke@redstar.de" target="_blank">kai.nacke@redstar.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Craig!<br>
<br>
The windows build with VS2012 results in:<br>
<br>
d:\opensource\llvm\llvm-git\<u></u>lib\support\Windows/Path.inc(<u></u>591): error C3861: 'array_lengthof': identifier not found [D:\OpenSource\LLVM\build-x64-<u></u>git\lib\Support\LLVMSupport.<u></u>vcxproj]<br>

<br>
Regards<span class="HOEnZb"><font color="#888888"><br>
Kai</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
On 15.07.2013 06:27, Craig Topper wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Author: ctopper<br>
Date: Sun Jul 14 23:27:47 2013<br>
New Revision: 186301<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=186301&view=rev" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project?rev=186301&view=rev</a><br>
Log:<br>
Use llvm::array_lengthof to replace sizeof(array)/sizeof(array[0])<u></u>.<br>
<br>
Modified:<br>
     llvm/trunk/lib/MC/<u></u>MCAsmBackend.cpp<br>
     llvm/trunk/lib/Support/Unix/<u></u>Signals.inc<br>
     llvm/trunk/lib/Support/<u></u>Windows/Path.inc<br>
     llvm/trunk/lib/Target/ARM/<u></u>ARMISelLowering.cpp<br>
     llvm/trunk/lib/Target/PowerPC/<u></u>PPCAsmPrinter.cpp<br>
     llvm/trunk/lib/Target/R600/<u></u>AMDGPUISelLowering.cpp<br>
     llvm/trunk/lib/Target/R600/<u></u>AMDILISelLowering.cpp<br>
     llvm/trunk/lib/Transforms/<u></u>InstCombine/InstCombineAddSub.<u></u>cpp<br>
<br>
Modified: llvm/trunk/lib/MC/<u></u>MCAsmBackend.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAsmBackend.cpp?rev=186301&r1=186300&r2=186301&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/MC/<u></u>MCAsmBackend.cpp?rev=186301&<u></u>r1=186300&r2=186301&view=diff</a><br>

==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/MC/<u></u>MCAsmBackend.cpp (original)<br>
+++ llvm/trunk/lib/MC/<u></u>MCAsmBackend.cpp Sun Jul 14 23:27:47 2013<br>
@@ -8,6 +8,7 @@<br>
  //===-------------------------<u></u>------------------------------<u></u>---------------===//<br>
<br>
  #include "llvm/MC/MCAsmBackend.h"<br>
+#include "llvm/ADT/STLExtras.h"<br>
  #include "llvm/MC/MCFixupKindInfo.h"<br>
  using namespace llvm;<br>
<br>
@@ -37,7 +38,6 @@ MCAsmBackend::<u></u>getFixupKindInfo(MCFixupKi<br>
      { "FK_SecRel_8", 0, 64, 0 }<br>
    };<br>
<br>
-  assert((size_t)Kind <= sizeof(Builtins) / sizeof(Builtins[0]) &&<br>
-         "Unknown fixup kind");<br>
+  assert((size_t)Kind <= array_lengthof(Builtins) && "Unknown fixup kind");<br>
    return Builtins[Kind];<br>
  }<br>
<br>
Modified: llvm/trunk/lib/Support/Unix/<u></u>Signals.inc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Unix/Signals.inc?rev=186301&r1=186300&r2=186301&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/<u></u>Support/Unix/Signals.inc?rev=<u></u>186301&r1=186300&r2=186301&<u></u>view=diff</a><br>

==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Support/Unix/<u></u>Signals.inc (original)<br>
+++ llvm/trunk/lib/Support/Unix/<u></u>Signals.inc Sun Jul 14 23:27:47 2013<br>
@@ -55,8 +55,7 @@ static std::vector<std::pair<void(*)(<u></u>voi<br>
  static const int IntSigs[] = {<br>
    SIGHUP, SIGINT, SIGPIPE, SIGTERM, SIGUSR1, SIGUSR2<br>
  };<br>
-static const int *const IntSigsEnd =<br>
-  IntSigs + sizeof(IntSigs) / sizeof(IntSigs[0]);<br>
+static const int *const IntSigsEnd = array_endof(IntSigs);<br>
<br>
  // KillSigs - Signals that represent that we have a bug, and our prompt<br>
  // termination has been ordered.<br>
@@ -75,8 +74,7 @@ static const int KillSigs[] = {<br>
    , SIGEMT<br>
  #endif<br>
  };<br>
-static const int *const KillSigsEnd =<br>
-  KillSigs + sizeof(KillSigs) / sizeof(KillSigs[0]);<br>
+static const int *const KillSigsEnd = array_endof(KillSigs);<br>
<br>
  static unsigned NumRegisteredSignals = 0;<br>
  static struct {<br>
@@ -86,8 +84,7 @@ static struct {<br>
<br>
<br>
  static void RegisterHandler(int Signal) {<br>
-  assert(NumRegisteredSignals <<br>
-         sizeof(RegisteredSignalInfo)/<u></u>sizeof(RegisteredSignalInfo[0]<u></u>) &&<br>
+  assert(NumRegisteredSignals < array_lengthof(<u></u>RegisteredSignalInfo) &&<br>
           "Out of space for signal handlers!");<br>
<br>
    struct sigaction NewHandler;<br>
<br>
Modified: llvm/trunk/lib/Support/<u></u>Windows/Path.inc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/Path.inc?rev=186301&r1=186300&r2=186301&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/<u></u>Support/Windows/Path.inc?rev=<u></u>186301&r1=186300&r2=186301&<u></u>view=diff</a><br>

==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Support/<u></u>Windows/Path.inc (original)<br>
+++ llvm/trunk/lib/Support/<u></u>Windows/Path.inc Sun Jul 14 23:27:47 2013<br>
@@ -588,7 +588,7 @@ static bool isReservedName(StringRef pat<br>
      return true;<br>
<br>
    // Then compare against the list of ancient reserved names<br>
-  for (size_t i = 0; i < sizeof(sReservedNames) / sizeof(const char *); ++i) {<br>
+  for (size_t i = 0; i < array_lengthof(sReservedNames)<u></u>; ++i) {<br>
      if (path.equals_lower(<u></u>sReservedNames[i]))<br>
        return true;<br>
    }<br>
<br>
Modified: llvm/trunk/lib/Target/ARM/<u></u>ARMISelLowering.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp?rev=186301&r1=186300&r2=186301&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>ARM/ARMISelLowering.cpp?rev=<u></u>186301&r1=186300&r2=186301&<u></u>view=diff</a><br>

==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/ARM/<u></u>ARMISelLowering.cpp (original)<br>
+++ llvm/trunk/lib/Target/ARM/<u></u>ARMISelLowering.cpp Sun Jul 14 23:27:47 2013<br>
@@ -2732,7 +2732,7 @@ ARMTargetLowering::<u></u>StoreByValRegs(CCStat<br>
      lastRegToSaveIndex = REnd - ARM::R0;<br>
    } else {<br>
      firstRegToSaveIndex = CCInfo.getFirstUnallocated<br>
-      (GPRArgRegs, sizeof(GPRArgRegs) / sizeof(GPRArgRegs[0]));<br>
+      (GPRArgRegs, array_lengthof(GPRArgRegs));<br>
      lastRegToSaveIndex = 4;<br>
    }<br>
<br>
<br>
Modified: llvm/trunk/lib/Target/PowerPC/<u></u>PPCAsmPrinter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp?rev=186301&r1=186300&r2=186301&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>PowerPC/PPCAsmPrinter.cpp?rev=<u></u>186301&r1=186300&r2=186301&<u></u>view=diff</a><br>

==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/PowerPC/<u></u>PPCAsmPrinter.cpp (original)<br>
+++ llvm/trunk/lib/Target/PowerPC/<u></u>PPCAsmPrinter.cpp Sun Jul 14 23:27:47 2013<br>
@@ -853,7 +853,7 @@ void PPCDarwinAsmPrinter::<u></u>EmitStartOfAsm<br>
<br>
    // FIXME: This is a total hack, finish mc'izing the PPC backend.<br>
    if (OutStreamer.<u></u>hasRawTextSupport()) {<br>
-    assert(Directive < sizeof(CPUDirectives) / sizeof(*CPUDirectives) &&<br>
+    assert(Directive < array_lengthof(CPUDirectives) &&<br>
             "CPUDirectives[] might not be up-to-date!");<br>
      OutStreamer.EmitRawText("\t.<u></u>machine " + Twine(CPUDirectives[Directive]<u></u>));<br>
    }<br>
<br>
Modified: llvm/trunk/lib/Target/R600/<u></u>AMDGPUISelLowering.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/R600/AMDGPUISelLowering.cpp?rev=186301&r1=186300&r2=186301&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>R600/AMDGPUISelLowering.cpp?<u></u>rev=186301&r1=186300&r2=<u></u>186301&view=diff</a><br>

==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/R600/<u></u>AMDGPUISelLowering.cpp (original)<br>
+++ llvm/trunk/lib/Target/R600/<u></u>AMDGPUISelLowering.cpp Sun Jul 14 23:27:47 2013<br>
@@ -82,7 +82,7 @@ AMDGPUTargetLowering::<u></u>AMDGPUTargetLoweri<br>
      (int)MVT::v2i32,<br>
      (int)MVT::v4i32<br>
    };<br>
-  size_t NumTypes = sizeof(types) / sizeof(*types);<br>
+  const size_t NumTypes = array_lengthof(types);<br>
<br>
    for (unsigned int x  = 0; x < NumTypes; ++x) {<br>
      MVT::SimpleValueType VT = (MVT::SimpleValueType)types[x]<u></u>;<br>
<br>
Modified: llvm/trunk/lib/Target/R600/<u></u>AMDILISelLowering.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/R600/AMDILISelLowering.cpp?rev=186301&r1=186300&r2=186301&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>R600/AMDILISelLowering.cpp?<u></u>rev=186301&r1=186300&r2=<u></u>186301&view=diff</a><br>

==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/R600/<u></u>AMDILISelLowering.cpp (original)<br>
+++ llvm/trunk/lib/Target/R600/<u></u>AMDILISelLowering.cpp Sun Jul 14 23:27:47 2013<br>
@@ -82,10 +82,10 @@ void AMDGPUTargetLowering::<u></u>InitAMDILLowe<br>
      (int)MVT::v2f64,<br>
      (int)MVT::v2i64<br>
    };<br>
-  size_t NumTypes = sizeof(types) / sizeof(*types);<br>
-  size_t NumFloatTypes = sizeof(FloatTypes) / sizeof(*FloatTypes);<br>
-  size_t NumIntTypes = sizeof(IntTypes) / sizeof(*IntTypes);<br>
-  size_t NumVectorTypes = sizeof(VectorTypes) / sizeof(*VectorTypes);<br>
+  const size_t NumTypes = array_lengthof(types);<br>
+  const size_t NumFloatTypes = array_lengthof(FloatTypes);<br>
+  const size_t NumIntTypes = array_lengthof(IntTypes);<br>
+  const size_t NumVectorTypes = array_lengthof(VectorTypes);<br>
<br>
    const AMDGPUSubtarget &STM = getTargetMachine().<u></u>getSubtarget<AMDGPUSubtarget>(<u></u>);<br>
    // These are the current register classes that are<br>
<br>
Modified: llvm/trunk/lib/Transforms/<u></u>InstCombine/InstCombineAddSub.<u></u>cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombineAddSub.cpp?rev=186301&r1=186300&r2=186301&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/<u></u>Transforms/InstCombine/<u></u>InstCombineAddSub.cpp?rev=<u></u>186301&r1=186300&r2=186301&<u></u>view=diff</a><br>

==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Transforms/<u></u>InstCombine/InstCombineAddSub.<u></u>cpp (original)<br>
+++ llvm/trunk/lib/Transforms/<u></u>InstCombine/InstCombineAddSub.<u></u>cpp Sun Jul 14 23:27:47 2013<br>
@@ -12,6 +12,7 @@<br>
  //===-------------------------<u></u>------------------------------<u></u>---------------===//<br>
<br>
  #include "InstCombine.h"<br>
+#include "llvm/ADT/STLExtras.h"<br>
  #include "llvm/Analysis/<u></u>InstructionSimplify.h"<br>
  #include "llvm/IR/DataLayout.h"<br>
  #include "llvm/Support/<u></u>GetElementPtrTypeIterator.h"<br>
@@ -659,7 +660,7 @@ Value *FAddCombine::simplifyFAdd(<u></u>AddendV<br>
      }<br>
    }<br>
<br>
-  assert((NextTmpIdx <= sizeof(TmpResult)/sizeof(<u></u>TmpResult[0]) + 1) &&<br>
+  assert((NextTmpIdx <= array_lengthof(TmpResult) + 1) &&<br>
           "out-of-bound access");<br>
<br>
    if (ConstAdd)<br>
<br>
<br>
______________________________<u></u>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/llvm-commits</a><br>
<br>
</blockquote>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>~Craig
</div>