1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00

[LTO] Constify the Module Hook function (NFC)

It use to be non-const for the sole purpose of custom handling of
commons symbol. This is moved now in the regular LTO handling now
and such we can constify the callback.

llvm-svn: 279438
This commit is contained in:
Mehdi Amini 2016-08-22 16:17:40 +00:00
parent 8a69174992
commit 91a6c36524
2 changed files with 4 additions and 4 deletions

View File

@ -87,8 +87,8 @@ struct Config {
/// A module hook may be used by a linker to perform actions during the LTO
/// pipeline. For example, a linker may use this function to implement
/// -save-temps, or to add its own resolved symbols to the module. If this
/// function returns false, any further processing for that task is aborted.
/// -save-temps. If this function returns false, any further processing for
/// that task is aborted.
///
/// Module hooks must be thread safe with respect to the linker's internal
/// data structures. A module hook will never be called concurrently from
@ -96,7 +96,7 @@ struct Config {
///
/// Note that in out-of-process backend scenarios, none of the hooks will be
/// called for ThinLTO tasks.
typedef std::function<bool(unsigned Task, Module &)> ModuleHookFn;
typedef std::function<bool(unsigned Task, const Module &)> ModuleHookFn;
/// This module hook is called after linking (regular LTO) or loading
/// (ThinLTO) the module, before modifying it.

View File

@ -47,7 +47,7 @@ Error Config::addSaveTemps(std::string OutputFileName,
auto setHook = [&](std::string PathSuffix, ModuleHookFn &Hook) {
// Keep track of the hook provided by the linker, which also needs to run.
ModuleHookFn LinkerHook = Hook;
Hook = [=](unsigned Task, Module &M) {
Hook = [=](unsigned Task, const Module &M) {
// If the linker's hook returned false, we need to pass that result
// through.
if (LinkerHook && !LinkerHook(Task, M))