1// -*- C++ -*- 2//===----------------------------------------------------------------------===// 3// 4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5// See https://llvm.org/LICENSE.txt for license information. 6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef _LIBCPP_CFLOAT 11#define _LIBCPP_CFLOAT 12 13/* 14 cfloat synopsis 15 16Macros: 17 18 FLT_ROUNDS 19 FLT_EVAL_METHOD // C99 20 FLT_RADIX 21 22 FLT_HAS_SUBNORM // C11 23 DBL_HAS_SUBNORM // C11 24 LDBL_HAS_SUBNORM // C11 25 26 FLT_MANT_DIG 27 DBL_MANT_DIG 28 LDBL_MANT_DIG 29 30 DECIMAL_DIG // C99 31 FLT_DECIMAL_DIG // C11 32 DBL_DECIMAL_DIG // C11 33 LDBL_DECIMAL_DIG // C11 34 35 FLT_DIG 36 DBL_DIG 37 LDBL_DIG 38 39 FLT_MIN_EXP 40 DBL_MIN_EXP 41 LDBL_MIN_EXP 42 43 FLT_MIN_10_EXP 44 DBL_MIN_10_EXP 45 LDBL_MIN_10_EXP 46 47 FLT_MAX_EXP 48 DBL_MAX_EXP 49 LDBL_MAX_EXP 50 51 FLT_MAX_10_EXP 52 DBL_MAX_10_EXP 53 LDBL_MAX_10_EXP 54 55 FLT_MAX 56 DBL_MAX 57 LDBL_MAX 58 59 FLT_EPSILON 60 DBL_EPSILON 61 LDBL_EPSILON 62 63 FLT_MIN 64 DBL_MIN 65 LDBL_MIN 66 67 FLT_TRUE_MIN // C11 68 DBL_TRUE_MIN // C11 69 LDBL_TRUE_MIN // C11 70*/ 71 72#if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) 73# include <__cxx03/cfloat> 74#else 75# include <__config> 76 77# include <float.h> 78 79# ifndef _LIBCPP_FLOAT_H 80# error <cfloat> tried including <float.h> but didn't find libc++'s <float.h> header. \ 81 This usually means that your header search paths are not configured properly. \ 82 The header search paths should contain the C++ Standard Library headers before \ 83 any C Standard Library, and you are probably using compiler flags that make that \ 84 not be the case. 85# endif 86 87# if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 88# pragma GCC system_header 89# endif 90#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) 91 92#endif // _LIBCPP_CFLOAT 93