template <unsigned ORDER> struct Endian {
static constexpr const bool IS_LITTLE = ORDER == __ORDER_LITTLE_ENDIAN__;
static constexpr const bool IS_BIG = ORDER == __ORDER_BIG_ENDIAN__;
- template <typename T> static T to_big_endian(T value);
- template <typename T> static T to_little_endian(T value);
+ template <typename T> LIBC_INLINE static T to_big_endian(T value);
+ template <typename T> LIBC_INLINE static T to_little_endian(T value);
};
// Little Endian specializations
#ifndef LLVM_LIBC_SUPPORT_MACROS_CONFIG_H
#define LLVM_LIBC_SUPPORT_MACROS_CONFIG_H
-#define LIBC_INLINE inline
-
// LIBC_HAS_BUILTIN()
//
// Checks whether the compiler supports a Clang Feature Checking Macro, and if
#ifndef LLVM_LIBC_SRC_SUPPORT_MACROS_OPTIMIZATION_H
#define LLVM_LIBC_SRC_SUPPORT_MACROS_OPTIMIZATION_H
+#include "src/__support/macros/attributes.h" // LIBC_INLINE
#include "src/__support/macros/config.h" // LIBC_HAS_BUILTIN
#include "src/__support/macros/properties/compiler.h" // LIBC_COMPILER_IS_CLANG
// accidentally pass an integer.
namespace __llvm_libc::details {
template <typename T>
-constexpr LIBC_INLINE bool expects_bool_condition(T value, T expected) {
+LIBC_INLINE constexpr bool expects_bool_condition(T value, T expected) {
return __builtin_expect(value, expected);
}
} // namespace __llvm_libc::details