Define C11 macros such as FLT_DECIMAL_DIG for C++17

* testsuite/18_support/headers/cfloat/values_c++17.cc: New test.

From-SVN: r272615
This commit is contained in:
Jonathan Wakely 2019-06-24 13:09:47 +01:00 committed by Jonathan Wakely
parent efe8764f72
commit ff164b601b
4 changed files with 49 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2019-06-24 Jonathan Wakely <jwakely@redhat.com>
* ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG)
(FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN)
(DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17.
2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
* config/rs6000/darwin.h: Handle GCC target pragma.

View File

@ -210,7 +210,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#endif /* C99 */
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) \
|| (defined (__cplusplus) && __cplusplus >= 201703L)
/* Versions of DECIMAL_DIG for each floating-point type. */
#undef FLT_DECIMAL_DIG
#undef DBL_DECIMAL_DIG

View File

@ -1,3 +1,7 @@
2019-06-24 Jonathan Wakely <jwakely@redhat.com>
* testsuite/18_support/headers/cfloat/values_c++17.cc: New test.
2019-06-20 Jonathan Wakely <jwakely@redhat.com>
* acinclude.m4 (GLIBCXX_ENABLE_DEBUG): Only do debug build for final

View File

@ -0,0 +1,37 @@
// { dg-options "-std=gnu++17" }
// { dg-do compile { target c++17 } }
// Copyright (C) 2019 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
#include <cfloat>
#include "values.cc"
namespace gnu17
{
double d1 = DBL_DECIMAL_DIG;
double d2 = DBL_HAS_SUBNORM;
double d3 = DBL_TRUE_MIN;
float f1 = FLT_DECIMAL_DIG;
float f2 = FLT_HAS_SUBNORM;
float f3 = FLT_TRUE_MIN;
long double ld1 = LDBL_DECIMAL_DIG;
long double ld2 = LDBL_HAS_SUBNORM;
long double ld3 = LDBL_TRUE_MIN;
}