mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-18 10:32:48 +02:00
Add operator<< for object::SectionedAddress
The main motivation for this is better failure messages in unit tests. Split off from D70394.
This commit is contained in:
parent
151a0b69c7
commit
53a4d76970
@ -155,6 +155,8 @@ inline bool operator==(const SectionedAddress &LHS,
|
||||
std::tie(RHS.SectionIndex, RHS.Address);
|
||||
}
|
||||
|
||||
raw_ostream &operator<<(raw_ostream &OS, const SectionedAddress &Addr);
|
||||
|
||||
/// This is a value type class that represents a single symbol in the list of
|
||||
/// symbols in the object file.
|
||||
class SymbolRef : public BasicSymbolRef {
|
||||
|
@ -32,6 +32,13 @@
|
||||
using namespace llvm;
|
||||
using namespace object;
|
||||
|
||||
raw_ostream &object::operator<<(raw_ostream &OS, const SectionedAddress &Addr) {
|
||||
OS << "SectionedAddress{" << format_hex(Addr.Address, 10);
|
||||
if (Addr.SectionIndex != SectionedAddress::UndefSection)
|
||||
OS << ", " << Addr.SectionIndex;
|
||||
return OS << "}";
|
||||
}
|
||||
|
||||
void ObjectFile::anchor() {}
|
||||
|
||||
ObjectFile::ObjectFile(unsigned int Type, MemoryBufferRef Source)
|
||||
|
@ -5,6 +5,7 @@ set(LLVM_LINK_COMPONENTS
|
||||
|
||||
add_llvm_unittest(ObjectTests
|
||||
MinidumpTest.cpp
|
||||
ObjectFileTest.cpp
|
||||
SymbolSizeTest.cpp
|
||||
SymbolicFileTest.cpp
|
||||
)
|
||||
|
20
unittests/Object/ObjectFileTest.cpp
Normal file
20
unittests/Object/ObjectFileTest.cpp
Normal file
@ -0,0 +1,20 @@
|
||||
//===- ObjectFileTest.cpp - Tests for ObjectFile.cpp ----------------------===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/Object/ObjectFile.h"
|
||||
#include "llvm/Support/ScopedPrinter.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
using namespace llvm;
|
||||
using namespace llvm::object;
|
||||
|
||||
TEST(SectionedAddress, StreamingOperator) {
|
||||
EXPECT_EQ("SectionedAddress{0x00000047}", to_string(SectionedAddress{0x47}));
|
||||
EXPECT_EQ("SectionedAddress{0x00000047, 42}",
|
||||
to_string(SectionedAddress{0x47, 42}));
|
||||
}
|
Loading…
Reference in New Issue
Block a user