"Fossies" - the Fresh Open Source Software Archive

Member "gnuastro-0.8/bootstrapped/lib/alloca.in.h" (28 Dec 2018, 2050 Bytes) of package /linux/privat/gnuastro-0.8.tar.lz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "alloca.in.h": 0.5_vs_0.6.

    1 /* Memory allocation on the stack.
    2 
    3    Copyright (C) 1995, 1999, 2001-2004, 2006-2018 Free Software Foundation,
    4    Inc.
    5 
    6    This program is free software; you can redistribute it and/or modify it
    7    under the terms of the GNU General Public License as published
    8    by the Free Software Foundation; either version 3, or (at your option)
    9    any later version.
   10 
   11    This program is distributed in the hope that it will be useful,
   12    but WITHOUT ANY WARRANTY; without even the implied warranty of
   13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   14    General Public License for more details.
   15 
   16    You should have received a copy of the GNU General Public
   17    License along with this program; if not, see
   18    <https://www.gnu.org/licenses/>.
   19   */
   20 
   21 /* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H
   22    means there is a real alloca function.  */
   23 #ifndef _GL_ALLOCA_H
   24 #define _GL_ALLOCA_H
   25 
   26 /* alloca (N) returns a pointer to N bytes of memory
   27    allocated on the stack, which will last until the function returns.
   28    Use of alloca should be avoided:
   29      - inside arguments of function calls - undefined behaviour,
   30      - in inline functions - the allocation may actually last until the
   31        calling function returns,
   32      - for huge N (say, N >= 65536) - you never know how large (or small)
   33        the stack is, and when the stack cannot fulfill the memory allocation
   34        request, the program just crashes.
   35  */
   36 
   37 #ifndef alloca
   38 # ifdef __GNUC__
   39 #  define alloca __builtin_alloca
   40 # elif defined _AIX
   41 #  define alloca __alloca
   42 # elif defined _MSC_VER
   43 #  include <malloc.h>
   44 #  define alloca _alloca
   45 # elif defined __DECC && defined __VMS
   46 #  define alloca __ALLOCA
   47 # elif defined __TANDEM && defined _TNS_E_TARGET
   48 #  ifdef  __cplusplus
   49 extern "C"
   50 #  endif
   51 void *_alloca (unsigned short);
   52 #  pragma intrinsic (_alloca)
   53 #  define alloca _alloca
   54 # elif defined __MVS__
   55 #  include <stdlib.h>
   56 # else
   57 #  include <stddef.h>
   58 #  ifdef  __cplusplus
   59 extern "C"
   60 #  endif
   61 void *alloca (size_t);
   62 # endif
   63 #endif
   64 
   65 #endif /* _GL_ALLOCA_H */