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