Files
swift-mirror/stdlib/public/RuntimeModule/modules/Runtime/Runtime.h
2026-01-14 21:44:28 +09:00

76 lines
2.4 KiB
C++

//===--- Runtime.h - Swift runtime imports ----------------------*- C++ -*-===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2023 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
//
//===----------------------------------------------------------------------===//
//
// Things to drag in from the Swift runtime.
//
//===----------------------------------------------------------------------===//
#ifndef SWIFT_BACKTRACING_RUNTIME_H
#define SWIFT_BACKTRACING_RUNTIME_H
#include <stdbool.h>
#include <stdlib.h>
#include "swift/Runtime/CrashInfo.h"
#ifdef __cplusplus
extern "C" {
#endif
// Can't import swift/Runtime/Debug.h because it assumes C++
void swift_reportWarning(uint32_t flags, const char *message);
// Returns true if the given function is a thunk function
bool _swift_backtrace_isThunkFunction(const char *rawName);
// Demangle the given raw name (supports Swift and C++)
char *_swift_backtrace_demangle(const char *rawName,
size_t rawNameLength,
char *outputBuffer,
size_t *outputBufferSize);
// Demangle the given Swift mangled identifier.
//
// An output buffer must be passed into which the demangled string will be written.
//
// The demangled result string is NOT null-terminated.
// The demangled string length is indicated through the outputBufferSize parameter.
//
// If the demangled result is truncated, the returned number will be greater than the
// initialized count written into the outputBufferSize.
//
// Introduced in Swift 6.3.
size_t _swift_runtime_demangle(
const char *rawName, size_t rawNameLength,
char *outputBuffer, size_t *outputBufferSize,
size_t flags
);
// Demangle the given Swift mangled identifier.
// This function always allocates a new buffer for the result to be returned.
// The demangled result string is NOT null-terminated.
// The demangled string length is indicated through the outputBufferSize parameter.
//
// Introduced in Swift 6.3.
char *_swift_runtime_demangle_allocate(
const char *rawName, size_t rawNameLength,
size_t *outputBufferSize,
size_t flags
);
#ifdef __cplusplus
}
#endif
#endif // SWIFT_BACKTRACING_RUNTIME_H