================ @@ -0,0 +1,62 @@ +//===-- Definition of macros from endian.h --------------------------------===// +// +// 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 +// +//===----------------------------------------------------------------------===// + +#ifndef __CLANG_ENDIAN_H +#define __CLANG_ENDIAN_H + +// If the system has an endian.h, let's use that instead. +#if __STDC_HOSTED__ && __has_include_next(<endian.h>) +# include_next <endian.h> +#else + +#include <stdint.h> + +// Implementation taken from llvm libc endian-macros.h. +#ifdef __cplusplus +#define __CLANG_ENDIAN_CAST(cast, type, value) (cast<type>(value)) +#else +#define __CLANG_ENDIAN_CAST(cast, type, value) ((type)(value)) +#endif + +#define LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__ +#define BIG_ENDIAN __ORDER_BIG_ENDIAN__ +#define BYTE_ORDER __BYTE_ORDER__ + +#if BYTE_ORDER == LITTLE_ENDIAN + +#define htobe16(x) __builtin_bswap16((x)) ---------------- daltenty wrote:
I'm not sure why they are here, the code was already that way in the original libc commits. I'll remove them. https://github.com/llvm/llvm-project/pull/186032 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
