[IR] Switch static const to an enum to silence MSVC linker warnings
authorDavid Majnemer <david.majnemer@gmail.com>
Fri, 10 Jul 2015 22:46:02 +0000 (22:46 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Fri, 10 Jul 2015 22:46:02 +0000 (22:46 +0000)
Integral class statics are handled oddly in MSVC, we don't need them
in this case, use an enum instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241958 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/IR/Value.h
lib/IR/Value.cpp

index 484afc6d232c16eba353d767bb779bddae371147..17a80c82d1bcc565c119987dc91c5cec26e3509d 100644 (file)
@@ -104,8 +104,8 @@ protected:
   ///
   /// Note, this should *NOT* be used directly by any class other than User.
   /// User uses this value to find the Use list.
-  static const unsigned NumUserOperandsBits = 29;
-  unsigned NumUserOperands : 29;
+  enum : unsigned { NumUserOperandsBits = 29 };
+  unsigned NumUserOperands : NumUserOperandsBits;
 
   bool IsUsedByMD : 1;
   bool HasName : 1;
index 78d1adb5e7000177d2b5e094cdb8d062bacd4cf6..f554d590284fa895762527e7fa8eab569499e548 100644 (file)
@@ -39,8 +39,6 @@ using namespace llvm;
 //===----------------------------------------------------------------------===//
 //                                Value Class
 //===----------------------------------------------------------------------===//
-const unsigned Value::NumUserOperandsBits;
-
 static inline Type *checkType(Type *Ty) {
   assert(Ty && "Value defined with a null type: Error!");
   return Ty;