Files
swift-mirror/lib/Demangling/CrashReporter.h
Alastair Houghton 3f49b8be32 [Demangling] Fix duplicate _gCRAnnotations symbol problems.
Moved the _gCRAnnotations declarations to their own object module,
which will help to avoid duplicate symbol problems (at least with .a
files).

Also tweaked things to make it so that the demangler and runtime
versions of the message setting code will interoperate (and so that
they'll interoperate better with other implementations that might
creep in from somewhere, like the one in LLVMSupport).

rdar://91095592
2022-03-31 13:04:09 +01:00

51 lines
1.6 KiB
C++

//===--- CrashReporter.h - Crash Reporter integration -----------*- C++ -*-===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2022 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
//
//===----------------------------------------------------------------------===//
//
// Declares gCRAnnotations. This lets us link with other static libraries
// that also declare gCRAnnotations, because we'll pull in their copy
// (assuming they're linked first).
//
//===----------------------------------------------------------------------===//
#ifndef SWIFT_DEMANGLING_CRASHREPORTER_H
#define SWIFT_DEMANGLING_CRASHREPORTER_H
#if SWIFT_HAVE_CRASHREPORTERCLIENT
// For SWIFT_LIBRARY_VISIBILITY
#include "../../stdlib/public/SwiftShims/Visibility.h"
#include <inttypes.h>
#define CRASHREPORTER_ANNOTATIONS_VERSION 5
#define CRASHREPORTER_ANNOTATIONS_SECTION "__crash_info"
struct crashreporter_annotations_t {
uint64_t version; // unsigned long
uint64_t message; // char *
uint64_t signature_string; // char *
uint64_t backtrace; // char *
uint64_t message2; // char *
uint64_t thread; // uint64_t
uint64_t dialog_mode; // unsigned int
uint64_t abort_cause; // unsigned int
};
extern "C" {
SWIFT_LIBRARY_VISIBILITY
extern struct crashreporter_annotations_t gCRAnnotations;
}
#endif // SWIFT_HAVE_CRASHREPORTERCLIENT
#endif // SWIFT_DEMANGLING_CRASHREPORTER_H