1//===----------------------------------------------------------------------===//
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 Exceptions
6//
7//===----------------------------------------------------------------------===//
8
9#include "llvm/Transforms/Utils/TriggerCrashPass.h"
10
11using namespace llvm;
12
13PreservedAnalyses TriggerCrashModulePass::run(Module &,
14 ModuleAnalysisManager &) {
15 abort();
16 return PreservedAnalyses::all();
17}
18
19PreservedAnalyses TriggerCrashFunctionPass::run(Function &,
20 FunctionAnalysisManager &) {
21 abort();
22 return PreservedAnalyses::all();
23}
24
25namespace {
26class TriggerCrashFunctionLegacyPass : public FunctionPass {
27public:
28 static char ID;
29 TriggerCrashFunctionLegacyPass() : FunctionPass(ID) {}
30 bool runOnFunction(Function &F) override {
31 abort();
32 return false;
33 }
34 StringRef getPassName() const override { return "TriggerCrashFunctionPass"; }
35};
36} // namespace
37
38char TriggerCrashFunctionLegacyPass::ID = 0;
39
40FunctionPass *llvm::createTriggerCrashFunctionPass() {
41 return new TriggerCrashFunctionLegacyPass();
42}
43