mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 04:30:23 +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 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) { return S != That.S; }
|
||||
inline bool operator==(const PooledStringPtr &That) const { return S == That.S; }
|
||||
inline bool operator!=(const PooledStringPtr &That) const { return S != That.S; }
|
||||
};
|
||||
|
||||
} // End llvm namespace
|
||||
|
@ -30,6 +30,7 @@ add_llvm_unittest(SupportTests
|
||||
ProgramTest.cpp
|
||||
RegexTest.cpp
|
||||
SourceMgrTest.cpp
|
||||
StringPool.cpp
|
||||
SwapByteOrderTest.cpp
|
||||
ThreadLocalTest.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…
Reference in New Issue
Block a user