LCOV - code coverage report
Current view: top level - usr/include/c++/4.7.2 - cstdlib (source / functions) Hit Total Coverage
Test: stap.info Lines: 1 1 100.0 %
Date: 2013-03-08 Functions: 1 1 100.0 %
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : // -*- C++ -*- forwarding header.
       2                 :            : 
       3                 :            : // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
       4                 :            : // 2006, 2007, 2008, 2009, 2010, 2011
       5                 :            : // 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                 :            : // Under Section 7 of GPL version 3, you are granted additional
      19                 :            : // permissions described in the GCC Runtime Library Exception, version
      20                 :            : // 3.1, as published by the Free Software Foundation.
      21                 :            : 
      22                 :            : // You should have received a copy of the GNU General Public License and
      23                 :            : // a copy of the GCC Runtime Library Exception along with this program;
      24                 :            : // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
      25                 :            : // <http://www.gnu.org/licenses/>.
      26                 :            : 
      27                 :            : /** @file include/cstdlib
      28                 :            :  *  This is a Standard C++ Library file.  You should @c \#include this file
      29                 :            :  *  in your programs, rather than any of the @a *.h implementation files.
      30                 :            :  *
      31                 :            :  *  This is the C++ version of the Standard C Library header @c stdlib.h,
      32                 :            :  *  and its contents are (mostly) the same as that header, but are all
      33                 :            :  *  contained in the namespace @c std (except for names which are defined
      34                 :            :  *  as macros in C).
      35                 :            :  */
      36                 :            : 
      37                 :            : //
      38                 :            : // ISO C++ 14882: 20.4.6  C library
      39                 :            : //
      40                 :            : 
      41                 :            : #pragma GCC system_header
      42                 :            : 
      43                 :            : #include <bits/c++config.h>
      44                 :            : 
      45                 :            : #ifndef _GLIBCXX_CSTDLIB
      46                 :            : #define _GLIBCXX_CSTDLIB 1
      47                 :            : 
      48                 :            : #if !_GLIBCXX_HOSTED
      49                 :            : // The C standard does not require a freestanding implementation to
      50                 :            : // provide <stdlib.h>.  However, the C++ standard does still require
      51                 :            : // <cstdlib> -- but only the functionality mentioned in
      52                 :            : // [lib.support.start.term].
      53                 :            : 
      54                 :            : #define EXIT_SUCCESS 0
      55                 :            : #define EXIT_FAILURE 1
      56                 :            : 
      57                 :            : namespace std
      58                 :            : {
      59                 :            :   extern "C" void abort(void) throw () _GLIBCXX_NORETURN;
      60                 :            :   extern "C" int atexit(void (*)()) throw ();
      61                 :            :   extern "C" void exit(int) throw () _GLIBCXX_NORETURN;
      62                 :            : } // namespace std
      63                 :            : 
      64                 :            : #else
      65                 :            : 
      66                 :            : #include <stdlib.h>
      67                 :            : 
      68                 :            : // Get rid of those macros defined in <stdlib.h> in lieu of real functions.
      69                 :            : #undef abort
      70                 :            : #undef abs
      71                 :            : #undef atexit
      72                 :            : #undef atof
      73                 :            : #undef atoi
      74                 :            : #undef atol
      75                 :            : #undef bsearch
      76                 :            : #undef calloc
      77                 :            : #undef div
      78                 :            : #undef exit
      79                 :            : #undef free
      80                 :            : #undef getenv
      81                 :            : #undef labs
      82                 :            : #undef ldiv
      83                 :            : #undef malloc
      84                 :            : #undef mblen
      85                 :            : #undef mbstowcs
      86                 :            : #undef mbtowc
      87                 :            : #undef qsort
      88                 :            : #undef rand
      89                 :            : #undef realloc
      90                 :            : #undef srand
      91                 :            : #undef strtod
      92                 :            : #undef strtol
      93                 :            : #undef strtoul
      94                 :            : #undef system
      95                 :            : #undef wcstombs
      96                 :            : #undef wctomb
      97                 :            : 
      98                 :            : namespace std _GLIBCXX_VISIBILITY(default)
      99                 :            : {
     100                 :            : _GLIBCXX_BEGIN_NAMESPACE_VERSION
     101                 :            : 
     102                 :            :   using ::div_t;
     103                 :            :   using ::ldiv_t;
     104                 :            : 
     105                 :            :   using ::abort;
     106                 :            :   using ::abs;
     107                 :            :   using ::atexit;
     108                 :            :   using ::atof;
     109                 :            :   using ::atoi;
     110                 :            :   using ::atol;
     111                 :            :   using ::bsearch;
     112                 :            :   using ::calloc;
     113                 :            :   using ::div;
     114                 :            :   using ::exit;
     115                 :            :   using ::free;
     116                 :            :   using ::getenv;
     117                 :            :   using ::labs;
     118                 :            :   using ::ldiv;
     119                 :            :   using ::malloc;
     120                 :            : #ifdef _GLIBCXX_HAVE_MBSTATE_T
     121                 :            :   using ::mblen;
     122                 :            :   using ::mbstowcs;
     123                 :            :   using ::mbtowc;
     124                 :            : #endif // _GLIBCXX_HAVE_MBSTATE_T
     125                 :            :   using ::qsort;
     126                 :            :   using ::rand;
     127                 :            :   using ::realloc;
     128                 :            :   using ::srand;
     129                 :            :   using ::strtod;
     130                 :            :   using ::strtol;
     131                 :            :   using ::strtoul;
     132                 :            :   using ::system;
     133                 :            : #ifdef _GLIBCXX_USE_WCHAR_T
     134                 :            :   using ::wcstombs;
     135                 :            :   using ::wctomb;
     136                 :            : #endif // _GLIBCXX_USE_WCHAR_T
     137                 :            : 
     138                 :            : #ifndef __CORRECT_ISO_CPP_STDLIB_H_PROTO
     139                 :            :   inline long
     140                 :         12 :   abs(long __i) { return labs(__i); }
     141                 :            : 
     142                 :            :   inline ldiv_t
     143                 :            :   div(long __i, long __j) { return ldiv(__i, __j); }
     144                 :            : #endif
     145                 :            : 
     146                 :            : _GLIBCXX_END_NAMESPACE_VERSION
     147                 :            : } // namespace
     148                 :            : 
     149                 :            : #if _GLIBCXX_USE_C99
     150                 :            : 
     151                 :            : #undef _Exit
     152                 :            : #undef llabs
     153                 :            : #undef lldiv
     154                 :            : #undef atoll
     155                 :            : #undef strtoll
     156                 :            : #undef strtoull
     157                 :            : #undef strtof
     158                 :            : #undef strtold
     159                 :            : 
     160                 :            : namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
     161                 :            : {
     162                 :            : _GLIBCXX_BEGIN_NAMESPACE_VERSION
     163                 :            : 
     164                 :            : #if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
     165                 :            :   using ::lldiv_t;
     166                 :            : #endif
     167                 :            : #if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
     168                 :            :   extern "C" void (_Exit)(int) throw () _GLIBCXX_NORETURN;
     169                 :            : #endif
     170                 :            : #if !_GLIBCXX_USE_C99_DYNAMIC
     171                 :            :   using ::_Exit;
     172                 :            : #endif
     173                 :            : 
     174                 :            :   inline long long
     175                 :            :   abs(long long __x) { return __x >= 0 ? __x : -__x; }
     176                 :            : 
     177                 :            : #if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
     178                 :            :   using ::llabs;
     179                 :            : 
     180                 :            :   inline lldiv_t
     181                 :            :   div(long long __n, long long __d)
     182                 :            :   { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
     183                 :            : 
     184                 :            :   using ::lldiv;
     185                 :            : #endif
     186                 :            : 
     187                 :            : #if _GLIBCXX_USE_C99_LONG_LONG_CHECK || _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
     188                 :            :   extern "C" long long int (atoll)(const char *) throw ();
     189                 :            :   extern "C" long long int
     190                 :            :     (strtoll)(const char * __restrict, char ** __restrict, int) throw ();
     191                 :            :   extern "C" unsigned long long int
     192                 :            :     (strtoull)(const char * __restrict, char ** __restrict, int) throw ();
     193                 :            : #endif
     194                 :            : #if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
     195                 :            :   using ::atoll;
     196                 :            :   using ::strtoll;
     197                 :            :   using ::strtoull;
     198                 :            : #endif
     199                 :            :   using ::strtof;
     200                 :            :   using ::strtold;
     201                 :            : 
     202                 :            : _GLIBCXX_END_NAMESPACE_VERSION
     203                 :            : } // namespace __gnu_cxx
     204                 :            : 
     205                 :            : namespace std
     206                 :            : {
     207                 :            : #if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
     208                 :            :   using ::__gnu_cxx::lldiv_t;
     209                 :            : #endif
     210                 :            :   using ::__gnu_cxx::_Exit;
     211                 :            :   using ::__gnu_cxx::abs;
     212                 :            : #if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
     213                 :            :   using ::__gnu_cxx::llabs;
     214                 :            :   using ::__gnu_cxx::div;
     215                 :            :   using ::__gnu_cxx::lldiv;
     216                 :            : #endif
     217                 :            :   using ::__gnu_cxx::atoll;
     218                 :            :   using ::__gnu_cxx::strtof;
     219                 :            :   using ::__gnu_cxx::strtoll;
     220                 :            :   using ::__gnu_cxx::strtoull;
     221                 :            :   using ::__gnu_cxx::strtold;
     222                 :            : } // namespace std
     223                 :            : 
     224                 :            : #ifdef __GXX_EXPERIMENTAL_CXX0X__
     225                 :            : 
     226                 :            : namespace std
     227                 :            : {
     228                 :            : #if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
     229                 :            :   // types
     230                 :            :   using std::lldiv_t;
     231                 :            : 
     232                 :            :   // functions
     233                 :            :   using std::llabs;
     234                 :            :   using std::lldiv;
     235                 :            : #endif
     236                 :            : 
     237                 :            :   using std::atoll;
     238                 :            :   using std::strtoll;
     239                 :            :   using std::strtoull;
     240                 :            : 
     241                 :            :   using std::strtof;
     242                 :            :   using std::strtold;
     243                 :            : 
     244                 :            :   // overloads
     245                 :            :   using std::abs;
     246                 :            : #if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
     247                 :            :   using std::div;
     248                 :            : #endif
     249                 :            : } // namespace std
     250                 :            : 
     251                 :            : #endif // __GXX_EXPERIMENTAL_CXX0X__
     252                 :            : 
     253                 :            : #endif // _GLIBCXX_USE_C99
     254                 :            : 
     255                 :            : #endif // !_GLIBCXX_HOSTED
     256                 :            : 
     257                 :            : #endif

Generated by: LCOV version 1.9