61 lines · c
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-exception6//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, const 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, const void *Ptr);45void NORETURN reportMisalignedPointer(AllocatorAction Action, const void *Ptr);46void NORETURN reportDeallocTypeMismatch(AllocatorAction Action, const void *Ptr,47 u8 TypeA, u8 TypeB);48void NORETURN reportDeleteSizeMismatch(const void *Ptr, uptr Size,49 uptr ExpectedSize);50 51// C wrappers errors.52void NORETURN reportAlignmentNotPowerOfTwo(uptr Alignment);53void NORETURN reportInvalidPosixMemalignAlignment(uptr Alignment);54void NORETURN reportCallocOverflow(uptr Count, uptr Size);55void NORETURN reportPvallocOverflow(uptr Size);56void NORETURN reportInvalidAlignedAllocAlignment(uptr Size, uptr Alignment);57 58} // namespace scudo59 60#endif // SCUDO_REPORT_H_61