diff options
Diffstat (limited to 'compiler-rt/lib/gwp_asan/utilities.h')
-rw-r--r-- | compiler-rt/lib/gwp_asan/utilities.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/compiler-rt/lib/gwp_asan/utilities.h b/compiler-rt/lib/gwp_asan/utilities.h new file mode 100644 index 000000000000..71d525f9e14c --- /dev/null +++ b/compiler-rt/lib/gwp_asan/utilities.h @@ -0,0 +1,31 @@ +//===-- utilities.h ---------------------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "gwp_asan/definitions.h" + +#include <stddef.h> +#include <stdint.h> + +namespace gwp_asan { +// Checks that `Condition` is true, otherwise fails in a platform-specific way +// with `Message`. +void Check(bool Condition, const char *Message); + +enum class AlignmentStrategy { + // Default => POWER_OF_TWO on most platforms, BIONIC for Android Bionic. + DEFAULT, + POWER_OF_TWO, + BIONIC, + PERFECT, +}; + +// Returns the real size of a right-aligned allocation. +size_t rightAlignedAllocationSize( + size_t RealAllocationSize, + AlignmentStrategy Align = AlignmentStrategy::DEFAULT); +} // namespace gwp_asan |