1 // { dg-do compile }
2 
3 // 2006-02-07  Paolo Carlini  <pcarlini@suse.de>
4 //
5 // Copyright (C) 2006-2019 Free Software Foundation, Inc.
6 //
7 // This file is part of the GNU ISO C++ Library.  This library is free
8 // software; you can redistribute it and/or modify it under the
9 // terms of the GNU General Public License as published by the
10 // Free Software Foundation; either version 3, or (at your option)
11 // any later version.
12 //
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 // GNU General Public License for more details.
17 //
18 // You should have received a copy of the GNU General Public License along
19 // with this library; see the file COPYING3.  If not see
20 // <http://www.gnu.org/licenses/>.
21 
22 // 8.25 Additions to header <cstdlib>
23 
24 #include <tr1/cstdlib>
25 
26 #if _GLIBCXX_HOSTED
27 
test01()28 void test01()
29 {
30 #if _GLIBCXX_USE_C99_STDLIB
31 
32   long long i = 0;
33   const char* s = 0;
34   char** endptr = 0;
35   int base = 0;
36 
37   long long ret;
38   unsigned long long uret;
39   float fret;
40   long double ldret;
41 
42 #if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
43   long long numer = 0, denom = 0;
44   std::tr1::lldiv_t dret;
45 
46   ret = std::tr1::llabs(i);
47   dret = std::tr1::lldiv(numer, denom);
48 #endif
49 
50   ret = std::tr1::atoll(s);
51   ret = std::tr1::strtoll(s, endptr, base);
52   uret = std::tr1::strtoull(s, endptr, base);
53 
54   fret = std::tr1::strtof(s, endptr);
55   ldret = std::tr1::strtold(s, endptr);
56 
57   ret = std::tr1::abs(i);
58 
59   ret = ret; // Suppress unused warning.
60   uret = uret;
61   fret = fret;
62   ldret = ldret;
63 
64 #if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
65   dret = std::tr1::div(numer, denom);
66 
67   dret = dret;
68 #endif
69 
70 #endif
71 }
72 
73 #endif
74