OSDN Git Service

Subzero: Fix build warnings/errors under g++.
authorJim Stichnoth <stichnot@chromium.org>
Tue, 17 Nov 2015 05:40:20 +0000 (21:40 -0800)
committerJim Stichnoth <stichnot@chromium.org>
Tue, 17 Nov 2015 05:40:20 +0000 (21:40 -0800)
BUG= none
TEST= make -j32 -f Makefile.standalone CXX=g++ LLVM_EXTRA_WARNINGS="-Wno-unknown-pragmas -Wno-unused-parameter -Wno-comment -Wno-enum-compare -Wno-strict-aliasing" STDLIB_FLAGS=
(this command will compile but fail to link)

R=jpp@chromium.org

Review URL: https://codereview.chromium.org/1452993002 .

src/IceAssemblerARM32.cpp
src/IceTargetLoweringX8632.cpp
src/IceTargetLoweringX8664.cpp
src/IceTargetLoweringX86BaseImpl.h

index 51a45cc..30fe5a6 100644 (file)
@@ -155,6 +155,9 @@ IValueT encodeShift(OperandARM32::ShiftKind Shift) {
   case OperandARM32::RRX:
     return 3; // 0b11
   }
+
+  llvm::report_fatal_error("Unknown Shift value");
+  return 0;
 }
 
 // Returns the bits in the corresponding masked value.
index e8bd771..3525ca3 100644 (file)
@@ -88,12 +88,12 @@ const char *MachineTraits<TargetX8632>::TargetName = "X8632";
 
 template <>
 std::array<llvm::SmallBitVector, RCX86_NUM>
-    TargetX86Base<TargetX8632>::TypeToRegisterSet = {};
+    TargetX86Base<TargetX8632>::TypeToRegisterSet = {{}};
 
 template <>
 std::array<llvm::SmallBitVector,
            TargetX86Base<TargetX8632>::Traits::RegisterSet::Reg_NUM>
-    TargetX86Base<TargetX8632>::RegisterAliases = {};
+    TargetX86Base<TargetX8632>::RegisterAliases = {{}};
 
 template <>
 llvm::SmallBitVector
index 4987646..6abf3bc 100644 (file)
@@ -88,12 +88,12 @@ const char *MachineTraits<TargetX8664>::TargetName = "X8664";
 
 template <>
 std::array<llvm::SmallBitVector, RCX86_NUM>
-    TargetX86Base<TargetX8664>::TypeToRegisterSet = {};
+    TargetX86Base<TargetX8664>::TypeToRegisterSet = {{}};
 
 template <>
 std::array<llvm::SmallBitVector,
            TargetX86Base<TargetX8664>::Traits::RegisterSet::Reg_NUM>
-    TargetX86Base<TargetX8664>::RegisterAliases = {};
+    TargetX86Base<TargetX8664>::RegisterAliases = {{}};
 
 template <>
 llvm::SmallBitVector
index 729bc91..71460d5 100644 (file)
@@ -5511,7 +5511,7 @@ namespace {
 template <typename T> bool isPositiveZero(T Val) {
   static_assert(std::is_floating_point<T>::value,
                 "Input type must be floating point");
-  return Val == 0 && !signbit(Val);
+  return Val == 0 && !std::signbit(Val);
 }
 
 } // end of anonymous namespace