summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2016-12-29 01:14:41 +0000
committerReid Kleckner <rnk@google.com>2016-12-29 01:14:41 +0000
commit32f171fec4bd3ef10bb76ebe3e804c78bbe3aa8b (patch)
tree3f7ea16ecc5fd1fadc8934463d668a6ad9b68147
parent6658cc9ead672908c2cbc286feda38ac462369f4 (diff)
downloadbcm5719-llvm-32f171fec4bd3ef10bb76ebe3e804c78bbe3aa8b.tar.gz
bcm5719-llvm-32f171fec4bd3ef10bb76ebe3e804c78bbe3aa8b.zip
Fix mingw build by moving the static const data member before the bitfields
Apparently GCC targeting Windows breaks bitfields on static data members: struct Foo { unsigned X : 16; static const int M = 42; unsigned Y : 16; }; static_assert(sizeof(Foo) == 4, "asdf"); // fails Who knew. llvm-svn: 290700
-rw-r--r--llvm/include/llvm/IR/GlobalValue.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/include/llvm/IR/GlobalValue.h b/llvm/include/llvm/IR/GlobalValue.h
index 403d1a7a61a..c6398aaa484 100644
--- a/llvm/include/llvm/IR/GlobalValue.h
+++ b/llvm/include/llvm/IR/GlobalValue.h
@@ -85,6 +85,9 @@ protected:
}
Type *ValueType;
+
+ static const unsigned GlobalValueSubClassDataBits = 18;
+
// All bitfields use unsigned as the underlying type so that MSVC will pack
// them.
unsigned Linkage : 4; // The linkage of this global
@@ -100,8 +103,6 @@ protected:
/// Function::intrinsicID() returns Intrinsic::not_intrinsic.
unsigned HasLLVMReservedName : 1;
- static const unsigned GlobalValueSubClassDataBits = 18;
-
private:
friend class Constant;
OpenPOWER on IntegriCloud