Subzero: Enable errors for unused parameters.
Uses pragmas when including problematic LLVM headers, so that clang
doesn't warn about unused parameters -- a rampant problem in the LLVM
code. This way, we can increase clang's pickiness on Subzero code,
and also not drown in LLVM warnings.
BUG= none
R=jpp@chromium.org, jvoung@chromium.org
Review URL: https://codereview.chromium.org/1217433002
diff --git a/Makefile.standalone b/Makefile.standalone
index 77c603c..71f87c2 100644
--- a/Makefile.standalone
+++ b/Makefile.standalone
@@ -162,7 +162,7 @@
BASE_CXXFLAGS := -std=gnu++11 -Wall -Wextra -Werror -fno-rtti \
-fno-exceptions $(OPTLEVEL) $(ASSERTIONS) -g -pedantic \
- -Wno-error=unused-parameter $(CXX_EXTRA)
+ $(CXX_EXTRA)
CXXFLAGS := $(LLVM_CXXFLAGS) $(BASE_CXXFLAGS) $(CXX_DEFINES) $(HOST_FLAGS) \
$(STDLIB_FLAGS)
diff --git a/src/IceClFlags.cpp b/src/IceClFlags.cpp
index 130f45a..b5893c1 100644
--- a/src/IceClFlags.cpp
+++ b/src/IceClFlags.cpp
@@ -16,7 +16,11 @@
#include "IceClFlags.h"
#include "IceClFlagsExtra.h"
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-parameter"
#include "llvm/Support/CommandLine.h"
+#pragma clang diagnostic pop
namespace cl = llvm::cl;
diff --git a/src/IceClFlagsExtra.h b/src/IceClFlagsExtra.h
index 37f87de..8d5b118 100644
--- a/src/IceClFlagsExtra.h
+++ b/src/IceClFlagsExtra.h
@@ -15,7 +15,11 @@
#define SUBZERO_SRC_ICECLFLAGSEXTRA_H
#include "IceDefs.h"
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-parameter"
#include "llvm/IRReader/IRReader.h"
+#pragma clang diagnostic pop
namespace Ice {
diff --git a/src/IceCompileServer.cpp b/src/IceCompileServer.cpp
index 3b828cc..d36cdfd 100644
--- a/src/IceCompileServer.cpp
+++ b/src/IceCompileServer.cpp
@@ -17,6 +17,9 @@
#include "IceClFlagsExtra.h"
#include "IceELFStreamer.h"
#include "IceGlobalContext.h"
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-parameter"
// Include code to handle converting textual bitcode records to binary (for
// INPUT_IS_TEXTUAL_BITCODE).
#include "llvm/Bitcode/NaCl/NaClBitcodeMungeUtils.h"
@@ -25,6 +28,7 @@
#include "llvm/Support/Signals.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/StreamingMemoryObject.h"
+#pragma clang diagnostic pop
#include <fstream>
#include <iostream>
diff --git a/src/IceCompiler.cpp b/src/IceCompiler.cpp
index ff17d84..7764b71 100644
--- a/src/IceCompiler.cpp
+++ b/src/IceCompiler.cpp
@@ -23,12 +23,16 @@
#include "IceConverter.h"
#include "IceELFObjectWriter.h"
#include "PNaClTranslator.h"
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-parameter"
#include "llvm/ADT/STLExtras.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
#include "llvm/IRReader/IRReader.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/StreamingMemoryObject.h"
+#pragma clang diagnostic pop
namespace Ice {
diff --git a/src/IceConverter.cpp b/src/IceConverter.cpp
index d726241..d389a02 100644
--- a/src/IceConverter.cpp
+++ b/src/IceConverter.cpp
@@ -24,6 +24,9 @@
#include "IceTargetLowering.h"
#include "IceTypes.h"
#include "IceTypeConverter.h"
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-parameter"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
@@ -31,6 +34,7 @@
#include "llvm/IR/Instructions.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
+#pragma clang diagnostic pop
// TODO(kschimpf): Remove two namespaces being visible at once.
using namespace llvm;
diff --git a/src/IceGlobalContext.cpp b/src/IceGlobalContext.cpp
index 9589b53..450fbba 100644
--- a/src/IceGlobalContext.cpp
+++ b/src/IceGlobalContext.cpp
@@ -24,7 +24,11 @@
#include "IceTargetLowering.h"
#include "IceTimerTree.h"
#include "IceTypes.h"
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-parameter"
#include "llvm/Support/Timer.h"
+#pragma clang diagnostic pop
#include <algorithm> // max()
#include <cctype> // isdigit(), isupper()
diff --git a/src/IceGlobalInits.h b/src/IceGlobalInits.h
index 48658e1..08f4fe3 100644
--- a/src/IceGlobalInits.h
+++ b/src/IceGlobalInits.h
@@ -20,9 +20,13 @@
#include "IceDefs.h"
#include "IceGlobalContext.h"
#include "IceTypes.h"
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-parameter"
#include "llvm/Bitcode/NaCl/NaClBitcodeParser.h" // for NaClBitcodeRecord.
#include "llvm/IR/CallingConv.h"
#include "llvm/IR/GlobalValue.h" // for GlobalValue::LinkageTypes.
+#pragma clang diagnostic pop
#include <memory>
#include <utility>
diff --git a/src/IceTimerTree.cpp b/src/IceTimerTree.cpp
index de84ea5..879f06e 100644
--- a/src/IceTimerTree.cpp
+++ b/src/IceTimerTree.cpp
@@ -15,7 +15,11 @@
#include "IceTimerTree.h"
#include "IceDefs.h"
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-parameter"
#include "llvm/Support/Timer.h"
+#pragma clang diagnostic pop
namespace Ice {
diff --git a/src/PNaClTranslator.cpp b/src/PNaClTranslator.cpp
index 06b3bee..5382bcc 100644
--- a/src/PNaClTranslator.cpp
+++ b/src/PNaClTranslator.cpp
@@ -23,6 +23,9 @@
#include "IceGlobalInits.h"
#include "IceInst.h"
#include "IceOperand.h"
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-parameter"
#include "llvm/ADT/SmallString.h"
#include "llvm/Bitcode/NaCl/NaClBitcodeDecoders.h"
#include "llvm/Bitcode/NaCl/NaClBitcodeDefs.h"
@@ -32,6 +35,7 @@
#include "llvm/Support/Format.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/raw_ostream.h"
+#pragma clang diagnostic pop
namespace {
using namespace llvm;
diff --git a/unittest/BitcodeMunge.h b/unittest/BitcodeMunge.h
index f257d21..3586909 100644
--- a/unittest/BitcodeMunge.h
+++ b/unittest/BitcodeMunge.h
@@ -15,7 +15,10 @@
#ifndef SUBZERO_UNITTEST_BITCODEMUNGE_H
#define SUBZERO_UNITTEST_BITCODEMUNGE_H
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-parameter"
#include "llvm/Bitcode/NaCl/NaClBitcodeMunge.h"
+#pragma clang diagnostic pop
#include "IceClFlags.h"
diff --git a/unittest/IceParseInstsTest.cpp b/unittest/IceParseInstsTest.cpp
index 74603ce..d58ad5a 100644
--- a/unittest/IceParseInstsTest.cpp
+++ b/unittest/IceParseInstsTest.cpp
@@ -9,9 +9,12 @@
#include <string>
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-parameter"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Bitcode/NaCl/NaClBitcodeParser.h"
#include "llvm/Bitcode/NaCl/NaClLLVMBitCodes.h"
+#pragma clang diagnostic pop
#include "BitcodeMunge.h"
#include "unittests/Bitcode/NaClMungeTest.h"