mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-23 04:01:16 +00:00

A linker normally has two stages: symbol resolution and "moving stuff". In lib/Linker there is the complication of lazy linking some globals, but it was still far more mixed than it needed to. This splits the linker into a lower level IRMover and the linker proper. The IRMover just takes a list of globals to move and a callback that lets the user control what is lazy linked. The main motivation is that now tools/gold (and soon lld) can use their own symbol resolution to instruct IRMover what to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255254 91177308-0d34-0410-b5e6-96231b3b80d8
26 lines
705 B
C++
26 lines
705 B
C++
//===- LinkDiagnosticInfo.h -------------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_LIB_LINKER_LINK_DIAGNOSTIC_INFO_H
|
|
#define LLVM_LIB_LINKER_LINK_DIAGNOSTIC_INFO_H
|
|
|
|
#include "llvm/IR/DiagnosticInfo.h"
|
|
|
|
namespace llvm {
|
|
class LinkDiagnosticInfo : public DiagnosticInfo {
|
|
const Twine &Msg;
|
|
|
|
public:
|
|
LinkDiagnosticInfo(DiagnosticSeverity Severity, const Twine &Msg);
|
|
void print(DiagnosticPrinter &DP) const override;
|
|
};
|
|
}
|
|
|
|
#endif
|