mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:42:57 +01:00
[Small]BitVector::reference: Explicitly default copy construction as it is deprecated in C++11 in the presence of explicit copy assignment.
I tried making these private & friended to the BitVector, but that didn't work - there's one use of BitVector::reference in Clang that actually copies it into a local variable & uses it from there, rather than just using the result of op[] in a temporary expression. Whether or not this is desired is debatable (we could just fix that one use in Clang) & it's not clear which way the C++ standard falls on this for std::bitset's reference type (it has the same bug at least in libstdc++, but Clang's -Wdeprecated doesn't flag it, because it's in a standard header) While it was only BitVector::reference's copy ctor that was referenced by user code, I made SmallBitVector::reference's copy ctor public too, for consistency. llvm-svn: 231099
This commit is contained in:
parent
53212311bb
commit
d215bbe13e
@ -53,7 +53,7 @@ public:
|
||||
BitPos = Idx % BITWORD_SIZE;
|
||||
}
|
||||
|
||||
~reference() {}
|
||||
reference(const reference&) = default;
|
||||
|
||||
reference &operator=(reference t) {
|
||||
*this = bool(t);
|
||||
|
@ -66,6 +66,8 @@ public:
|
||||
public:
|
||||
reference(SmallBitVector &b, unsigned Idx) : TheVector(b), BitPos(Idx) {}
|
||||
|
||||
reference(const reference&) = default;
|
||||
|
||||
reference& operator=(reference t) {
|
||||
*this = bool(t);
|
||||
return *this;
|
||||
|
Loading…
Reference in New Issue
Block a user