mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-04 21:31:03 +00:00
PR10140 - StringPool's PooledStringPtr has non-const operator== causing bad OR-result.
Mark conversion operator explicit and const qualify comparison operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211244 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
887a5c7f5d
commit
1260b844fd
@ -128,10 +128,10 @@ namespace llvm {
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline const char *operator*() const { return begin(); }
|
inline const char *operator*() const { return begin(); }
|
||||||
inline operator bool() const { return S != nullptr; }
|
inline explicit operator bool() const { return S != nullptr; }
|
||||||
|
|
||||||
inline bool operator==(const PooledStringPtr &That) { return S == That.S; }
|
inline bool operator==(const PooledStringPtr &That) const { return S == That.S; }
|
||||||
inline bool operator!=(const PooledStringPtr &That) { return S != That.S; }
|
inline bool operator!=(const PooledStringPtr &That) const { return S != That.S; }
|
||||||
};
|
};
|
||||||
|
|
||||||
} // End llvm namespace
|
} // End llvm namespace
|
||||||
|
@ -30,6 +30,7 @@ add_llvm_unittest(SupportTests
|
|||||||
ProgramTest.cpp
|
ProgramTest.cpp
|
||||||
RegexTest.cpp
|
RegexTest.cpp
|
||||||
SourceMgrTest.cpp
|
SourceMgrTest.cpp
|
||||||
|
StringPool.cpp
|
||||||
SwapByteOrderTest.cpp
|
SwapByteOrderTest.cpp
|
||||||
ThreadLocalTest.cpp
|
ThreadLocalTest.cpp
|
||||||
TimeValueTest.cpp
|
TimeValueTest.cpp
|
||||||
|
31
unittests/Support/StringPool.cpp
Normal file
31
unittests/Support/StringPool.cpp
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
//===- llvm/unittest/Support/ThreadLocalTest.cpp - Therad Local tests ---===//
|
||||||
|
//
|
||||||
|
// The LLVM Compiler Infrastructure
|
||||||
|
//
|
||||||
|
// This file is distributed under the University of Illinois Open Source
|
||||||
|
// License. See LICENSE.TXT for details.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
#include "llvm/Support/StringPool.h"
|
||||||
|
#include "gtest/gtest.h"
|
||||||
|
|
||||||
|
using namespace llvm;
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
TEST(PooledStringPtrTest, OperatorEquals) {
|
||||||
|
StringPool pool;
|
||||||
|
const PooledStringPtr a = pool.intern("a");
|
||||||
|
const PooledStringPtr b = pool.intern("b");
|
||||||
|
EXPECT_FALSE(a == b);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(PooledStringPtrTest, OperatorNotEquals) {
|
||||||
|
StringPool pool;
|
||||||
|
const PooledStringPtr a = pool.intern("a");
|
||||||
|
const PooledStringPtr b = pool.intern("b");
|
||||||
|
EXPECT_TRUE(a != b);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user