Try again to fix unused variable warning on lld-x86_64-darwin13 after r287439.
authorDaniel Sanders <daniel_l_sanders@apple.com>
Sat, 19 Nov 2016 14:47:41 +0000 (14:47 +0000)
committerDaniel Sanders <daniel_l_sanders@apple.com>
Sat, 19 Nov 2016 14:47:41 +0000 (14:47 +0000)
The previous attempt didn't work. I assume LLVM_ATTRIBUTE_UNUSED isn't
available on that machine.

llvm-svn: 287442

llvm/lib/Target/BPF/MCTargetDesc/BPFMCCodeEmitter.cpp
llvm/utils/TableGen/CodeEmitterGen.cpp

index 91a457d..47f1651 100644 (file)
@@ -20,7 +20,6 @@
 #include "llvm/MC/MCSubtargetInfo.h"
 #include "llvm/MC/MCSymbol.h"
 #include "llvm/ADT/Statistic.h"
-#include "llvm/Support/Compiler.h"
 #include "llvm/Support/EndianStream.h"
 #include "llvm/Support/raw_ostream.h"
 using namespace llvm;
@@ -31,7 +30,7 @@ namespace {
 class BPFMCCodeEmitter : public MCCodeEmitter {
   BPFMCCodeEmitter(const BPFMCCodeEmitter &) = delete;
   void operator=(const BPFMCCodeEmitter &) = delete;
-  const MCInstrInfo &MCII LLVM_ATTRIBUTE_UNUSED; // Unused in NDEBUG builds.
+  const MCInstrInfo &MCII;
   const MCRegisterInfo &MRI;
   bool IsLittleEndian;
 
index ef44757..9bcdebd 100644 (file)
@@ -356,7 +356,8 @@ void CodeEmitterGen::run(raw_ostream &o) {
     << "      RequiredFeatures[Inst.getOpcode()];\n"
     << "  if (MissingFeatures) {\n"
     << "    std::ostringstream Msg;\n"
-    << "    Msg << \"Attempting to emit \" << MCII.getName(Inst.getOpcode()).str()\n"
+    << "    Msg << \"Attempting to emit \" << "
+       "MCII.getName(Inst.getOpcode()).str()\n"
     << "        << \" instruction but the \";\n"
     << "    for (unsigned i = 0; i < 8 * sizeof(MissingFeatures); ++i)\n"
     << "      if (MissingFeatures & (1ULL << i))\n"
@@ -364,6 +365,10 @@ void CodeEmitterGen::run(raw_ostream &o) {
     << "    Msg << \"predicate(s) are not met\";\n"
     << "    report_fatal_error(Msg.str());\n"
     << "  }\n"
+    << "#else\n"
+    << "// Silence unused variable warning on targets that don't use MCII for "
+       "other purposes (e.g. BPF).\n"
+    << "(void)MCII;\n"
     << "#endif // NDEBUG\n";
   o << "}\n";
   o << "#endif\n";