1// 1999-06-05 2// Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr> 3 4// Copyright (C) 1999-2015 Free Software Foundation, Inc. 5// 6// This file is part of the GNU ISO C++ Library. This library is free 7// software; you can redistribute it and/or modify it under the 8// terms of the GNU General Public License as published by the 9// Free Software Foundation; either version 3, or (at your option) 10// any later version. 11 12// This library is distributed in the hope that it will be useful, 13// but WITHOUT ANY WARRANTY; without even the implied warranty of 14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15// GNU General Public License for more details. 16 17// You should have received a copy of the GNU General Public License along 18// with this library; see the file COPYING3. If not see 19// <http://www.gnu.org/licenses/>. 20 21#include <cmath> 22#include <testsuite_hooks.h> 23 24// test compilation. 25int 26test01() 27{ 28 float a = 1.f; 29 float b; 30 std::modf(a, &b); 31 return 0; 32} 33 34// need more extravagant checks than this, of course, but this used to core... 35int 36test02() 37{ 38 std::sin(static_cast<float>(0)); 39 return 0; 40} 41 42// as did this. 43int 44test03() 45{ 46 double powtest __attribute__((unused)) = std::pow(2., 0); 47 return 0; 48} 49 50// this used to abort. 51int 52test04() 53{ 54 bool test __attribute__((unused)) = true; 55 float x[2] = {1, 2}; 56 float y = 3.4; 57 std::modf(y, &x[0]); 58 VERIFY(x[1] == 2); 59 return 0; 60} 61 62int 63main() 64{ 65 test01(); 66 test02(); 67 test03(); 68 test04(); 69 return 0; 70} 71