Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP3:GA
glibc-utils.4896
isinf-cxx11-conflict.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File isinf-cxx11-conflict.patch of Package glibc-utils.4896
2016-02-24 Andreas Schwab <schwab@suse.de> * math/test-math-isinff.cc (do_test): Only call isinfl and isnanl if !NO_LONG_DOUBLE. 2016-02-14 Jakub Jelinek <jakub@redhat.com> Jonathan Wakely <jwakely@redhat.com> Carlos O'Donell <carlos@redhat.com> [BZ 19439] * math/Makefile (tests): Add test-math-isinff. (CFLAGS-test-math-isinff.cc): Use -std=gnu++11. * math/bits/mathcalls.h [__USE_MISC]: Use '|| __MATH_DECLARING_DOUBLE == 0' to relax definition of functions not in C++11 and which don't conflict e.g. isinff, isinfl etc. * math/test-math-isinff.cc: New file. 2016-01-11 Jonathan Wakely <jwakely.gcc@gmail.com> Adhemerval Zanella <adhemerval.zanella@linaro.org> [BZ #19439] * math/bits/mathcalls.h [!__cplusplus || __cplusplus < 201103L] (isinf): Do not declare prototype. [!__cplusplus || __cplusplus < 201103L] (isnan): Likewise. Index: glibc-2.22/math/Makefile =================================================================== --- glibc-2.22.orig/math/Makefile +++ glibc-2.22/math/Makefile @@ -108,6 +108,7 @@ tests = test-matherr test-fenv atest-exp test-tgmath-ret bug-nextafter bug-nexttoward bug-tgmath1 \ test-tgmath-int test-tgmath2 test-powl tst-CMPLX tst-CMPLX2 test-snan \ test-fenv-tls test-fenv-preserve test-fenv-return test-fenvinline \ + test-math-isinff \ $(tests-static) tests-static = test-fpucw-static test-fpucw-ieee-static # We do the `long double' tests only if this data type is available and @@ -184,6 +185,8 @@ CPPFLAGS-test-ildoubl.c = -U__LIBC_INTER $(libm-test-fast-math-cflags) +CFLAGS-test-math-isinff.cc = -std=gnu++11 + # The -lieee module sets the _LIB_VERSION_ switch to IEEE mode # for error handling in the -lm functions. install-lib += libieee.a Index: glibc-2.22/math/bits/mathcalls.h =================================================================== --- glibc-2.22.orig/math/bits/mathcalls.h +++ glibc-2.22/math/bits/mathcalls.h @@ -196,9 +196,13 @@ __MATHDECL_1 (int,__finite,, (_Mdouble_ _Mdouble_END_NAMESPACE #ifdef __USE_MISC +# if (!defined __cplusplus \ + || __cplusplus < 201103L /* isinf conflicts with C++11. */ \ + || __MATH_DECLARING_DOUBLE == 0) /* isinff or isinfl don't. */ /* Return 0 if VALUE is finite or NaN, +1 if it is +Infinity, -1 if it is -Infinity. */ __MATHDECL_1 (int,isinf,, (_Mdouble_ __value)) __attribute__ ((__const__)); +# endif /* Return nonzero if VALUE is finite and not NaN. */ __MATHDECL_1 (int,finite,, (_Mdouble_ __value)) __attribute__ ((__const__)); @@ -230,8 +234,12 @@ __END_NAMESPACE_C99 __MATHDECL_1 (int,__isnan,, (_Mdouble_ __value)) __attribute__ ((__const__)); #if defined __USE_MISC || defined __USE_XOPEN +# if (!defined __cplusplus \ + || __cplusplus < 201103L /* isnan conflicts with C++11. */ \ + || __MATH_DECLARING_DOUBLE == 0) /* isnanf or isnanl don't. */ /* Return nonzero if VALUE is not a number. */ __MATHDECL_1 (int,isnan,, (_Mdouble_ __value)) __attribute__ ((__const__)); +# endif /* Bessel functions. */ __MATHCALL (j0,, (_Mdouble_)); Index: glibc-2.22/math/test-math-isinff.cc =================================================================== --- /dev/null +++ glibc-2.22/math/test-math-isinff.cc @@ -0,0 +1,53 @@ +/* Test for bug 19439. + Copyright (C) 2016 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Marek Polacek <polacek@redhat.com>, 2012. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#define _GNU_SOURCE 1 +#include <math.h> +#include <stdio.h> +#include <stdlib.h> + +static int +do_test (void) +{ + /* Verify that isinff, isinfl, isnanf, and isnanlf are defined + in the header under C++11 and can be called. Without the + header fix this test will not compile. */ + if (isinff (1.0f) + || !isinff (INFINITY) +#ifndef NO_LONG_DOUBLE + || isinfl (1.0L) + || !isinfl (INFINITY) +#endif + || isnanf (2.0f) + || !isnanf (NAN) +#ifndef NO_LONG_DOUBLE + || isnanl (2.0L) + || !isnanl (NAN) +#endif + ) + { + printf ("FAIL: Failed to call is* functions.\n"); + exit (1); + } + printf ("PASS: Able to call isinff, isinfl, isnanf, and isnanl.\n"); + exit (0); +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c"
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor