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