brintos

brintos / llvm-project-archived public Read only

0
0
Text · 942 B · 6f168ea Raw
30 lines · cpp
1//===-- LinkInModulesPass.cpp - Module Linking pass --------------- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8/// \file9///10/// LinkInModulesPass implementation.11///12//===----------------------------------------------------------------------===//13 14#include "LinkInModulesPass.h"15#include "BackendConsumer.h"16 17using namespace llvm;18 19LinkInModulesPass::LinkInModulesPass(clang::BackendConsumer *BC) : BC(BC) {}20 21PreservedAnalyses LinkInModulesPass::run(Module &M, ModuleAnalysisManager &AM) {22  if (!BC)23    return PreservedAnalyses::all();24 25  if (BC->LinkInModules(&M))26    report_fatal_error("Bitcode module postopt linking failed, aborted!");27 28  return PreservedAnalyses::none();29}30