1
0
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:
Pavel Labath 2019-11-19 09:54:24 +01:00
parent 151a0b69c7
commit 53a4d76970
4 changed files with 30 additions and 0 deletions

View File

@ -155,6 +155,8 @@ inline bool operator==(const SectionedAddress &LHS,
std::tie(RHS.SectionIndex, RHS.Address); 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 /// This is a value type class that represents a single symbol in the list of
/// symbols in the object file. /// symbols in the object file.
class SymbolRef : public BasicSymbolRef { class SymbolRef : public BasicSymbolRef {

View File

@ -32,6 +32,13 @@
using namespace llvm; using namespace llvm;
using namespace object; 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() {} void ObjectFile::anchor() {}
ObjectFile::ObjectFile(unsigned int Type, MemoryBufferRef Source) ObjectFile::ObjectFile(unsigned int Type, MemoryBufferRef Source)

View File

@ -5,6 +5,7 @@ set(LLVM_LINK_COMPONENTS
add_llvm_unittest(ObjectTests add_llvm_unittest(ObjectTests
MinidumpTest.cpp MinidumpTest.cpp
ObjectFileTest.cpp
SymbolSizeTest.cpp SymbolSizeTest.cpp
SymbolicFileTest.cpp SymbolicFileTest.cpp
) )

View 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}));
}