Files
swift-mirror/include/swift/Basic/LLVMInitialize.h
Anthony Latsis ea5d89d0d0 tools: Set Swift bug report message in some executable targets
If these programs crash, we want them to print the Swift bug report
message, not the default LLVM one, which leads to
https://github.com/llvm/llvm-project/issues.

While here, hoist the setting of the bug report message to the
START_PROGRAM macro so that we don't forget to set it in the future.
2025-09-19 12:05:31 +01:00

44 lines
1.6 KiB
C++

//===--- LLVMInitialize.h ---------------------------------------*- C++ -*-===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2025 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
//
// A file that declares macros for initializing all parts of LLVM that various
// binaries in swift use. Please call PROGRAM_START in the main routine of all
// binaries, and INITIALIZE_LLVM in anything that uses Clang or LLVM IR.
//
//===----------------------------------------------------------------------===//
#ifndef SWIFT_BASIC_LLVMINITIALIZE_H
#define SWIFT_BASIC_LLVMINITIALIZE_H
#include "swift/Basic/Compiler.h"
#include "llvm/Support/InitLLVM.h"
#include "llvm/Support/ManagedStatic.h"
#include "llvm/Support/PrettyStackTrace.h"
#include "llvm/Support/Signals.h"
#include "llvm/Support/TargetSelect.h"
#define PROGRAM_START(argc, argv) \
llvm::InitLLVM _INITIALIZE_LLVM(argc, argv); \
llvm::setBugReportMsg(SWIFT_CRASH_BUG_REPORT_MESSAGE "\n")
#define INITIALIZE_LLVM() \
do { \
llvm::InitializeAllTargets(); \
llvm::InitializeAllTargetMCs(); \
llvm::InitializeAllAsmPrinters(); \
llvm::InitializeAllAsmParsers(); \
llvm::InitializeAllDisassemblers(); \
llvm::InitializeAllTargetInfos(); \
} while (0)
#endif // SWIFT_BASIC_LLVMINITIALIZE_H