1//===----------------------------------------------------------------------===//
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// \file
10// Hardning mode macros.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_LIBC_SRC___SUPPORT_MACROS_HARDENING_H
15#define LLVM_LIBC_SRC___SUPPORT_MACROS_HARDENING_H
16
17#define LIBC_HARDENING_MODE_NONE 0x0000'000F
18#define LIBC_HARDENING_MODE_FAST 0x0000'00F0
19#define LIBC_HARDENING_MODE_EXTENSIVE 0x0000'0F00
20#define LIBC_HARDENING_MODE_DEBUG 0x0000'F000
21
22#ifndef LIBC_COPT_HARDENING_MODE
23#define LIBC_COPT_HARDENING_MODE LIBC_HARDENING_MODE_NONE
24#endif
25
26#if (LIBC_COPT_HARDENING_MODE != LIBC_HARDENING_MODE_NONE && \
27 LIBC_COPT_HARDENING_MODE != LIBC_HARDENING_MODE_FAST && \
28 LIBC_COPT_HARDENING_MODE != LIBC_HARDENING_MODE_EXTENSIVE && \
29 LIBC_COPT_HARDENING_MODE != LIBC_HARDENING_MODE_DEBUG)
30#error \
31 "LIBC_COPT_HARDENING_MODE must be defined with one of the following values: \
32LIBC_HARDENING_MODE_NONE, LIBC_HARDENING_MODE_FAST, \
33LIBC_HARDENING_MODE_EXTENSIVE, LIBC_HARDENING_MODE_DEBUG"
34#endif
35
36#endif // LLVM_LIBC_SRC___SUPPORT_MACROS_HARDENING_H
37