glibc/math/test-math-iscanonical.cc
H.J. Lu dd3a7239fd test-math-iscanonical.cc: Replace bool with int
Fix GCC 7 compilation error:

test-math-iscanonical.cc: In function ‘void check_type()’:
test-math-iscanonical.cc:33:11: error: use of an operand of type ‘bool’ in ‘operator++’ is deprecated [-Werror=deprecated]
     errors++;
           ^~

Since not all non-zero error counts are errors, return errors != 0
instead.

	* math/test-math-iscanonical.cc (error): Replace bool with int.
	(do_test): Return errors != 0.

(cherry picked from commit cdd4155d6c and
 commit 758f1bfa2a)
2017-10-04 15:03:10 -07:00

49 lines
1.3 KiB
C++

/* Test for the C++ implementation of iscanonical.
Copyright (C) 2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
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>
static int errors;
template <class T>
static void
check_type ()
{
T val = 0;
/* Check if iscanonical is available in C++ mode (bug 22235). */
if (iscanonical (val) == 0)
errors++;
}
static int
do_test (void)
{
check_type<float> ();
check_type<double> ();
check_type<long double> ();
#if __HAVE_DISTINCT_FLOAT128
check_type<_Float128> ();
#endif
return errors != 0;
}
#include <support/test-driver.c>