Arene Base
Fundamental Utilities For Safety Critical C++
Loading...
Searching...
No Matches
may_alias.hpp
Go to the documentation of this file.
1// Copyright 2024, Toyota Motor Corporation
2//
3// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
4
5#ifndef INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_COMPILER_SUPPORT_ATTRIBUTES_MAY_ALIAS_HPP_
6#define INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_COMPILER_SUPPORT_ATTRIBUTES_MAY_ALIAS_HPP_
7
8// IWYU pragma: private, include "arene/base/compiler_support/attributes.hpp"
9
10// NOLINTBEGIN(cppcoreguidelines-macro-usage) Explicitly providing compiler support macro functions
11// parasoft-begin-suppress AUTOSAR-A16_0_1-d-2 "Conditional defines permitted by A16-0-1 Permit #2"
12// parasoft-begin-suppress AUTOSAR-A16_0_1-a-2 "Conditional defines permitted by A16-0-1 Permit #2"
13
14/// @def ARENE_MAY_ALIAS
15/// @brief An alias for the @c __may_alias__ attribute, or a no-op if the attribute is not supported
16
17#if defined(__clang__) || defined(__GNUC__)
18#define ARENE_MAY_ALIAS __attribute__((__may_alias__))
19#else
20#define ARENE_MAY_ALIAS
21#endif
22
23// NOLINTEND(cppcoreguidelines-macro-usage) Explicitly providing compiler support macro functions
24// parasoft-end-suppress AUTOSAR-A16_0_1-d-2
25// parasoft-end-suppress AUTOSAR-A16_0_1-a-2
26
27#endif // INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_COMPILER_SUPPORT_ATTRIBUTES_MAY_ALIAS_HPP_