1//===-- report.h ------------------------------------------------*- C++ -*-===//
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-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef SCUDO_REPORT_H_
10#define SCUDO_REPORT_H_
11
12#include "internal_defs.h"
13
14namespace scudo {
15// Reports are *fatal* unless stated otherwise.
16
17// Generic error, adds newline to end of message.
18void NORETURN reportError(const char *Message);
19
20// Generic error, but the message is not modified.
21void NORETURN reportRawError(const char *Message);
22
23// Flags related errors.
24void NORETURN reportInvalidFlag(const char *FlagType, const char *Value);
25
26// Chunk header related errors.
27void NORETURN reportHeaderCorruption(void *Header, void *Ptr);
28
29// Sanity checks related error.
30void NORETURN reportSanityCheckError(const char *Field);
31
32// Combined allocator errors.
33void NORETURN reportAlignmentTooBig(uptr Alignment, uptr MaxAlignment);
34void NORETURN reportAllocationSizeTooBig(uptr UserSize, uptr TotalSize,
35 uptr MaxSize);
36void NORETURN reportOutOfBatchClass();
37void NORETURN reportOutOfMemory(uptr RequestedSize);
38enum class AllocatorAction : u8 {
39 Recycling,
40 Deallocating,
41 Reallocating,
42 Sizing,
43};
44void NORETURN reportInvalidChunkState(AllocatorAction Action, void *Ptr);
45void NORETURN reportMisalignedPointer(AllocatorAction Action, void *Ptr);
46void NORETURN reportDeallocTypeMismatch(AllocatorAction Action, void *Ptr,
47 u8 TypeA, u8 TypeB);
48void NORETURN reportDeleteSizeMismatch(void *Ptr, uptr Size, uptr ExpectedSize);
49
50// C wrappers errors.
51void NORETURN reportAlignmentNotPowerOfTwo(uptr Alignment);
52void NORETURN reportInvalidPosixMemalignAlignment(uptr Alignment);
53void NORETURN reportCallocOverflow(uptr Count, uptr Size);
54void NORETURN reportPvallocOverflow(uptr Size);
55void NORETURN reportInvalidAlignedAllocAlignment(uptr Size, uptr Alignment);
56
57} // namespace scudo
58
59#endif // SCUDO_REPORT_H_
60

Provided by KDAB

Privacy Policy
Improve your Profiling and Debugging skills
Find out more

source code of compiler-rt/lib/scudo/standalone/report.h