llvm.org GIT mirror llvm / release_20 include / llvm / Config / alloca.h
release_20

Tree @release_20 (Download .tar.gz)

alloca.h @release_20raw · history · blame

/*
 *                     The LLVM Compiler Infrastructure
 *
 * This file was developed by the LLVM research group and is distributed under
 * the University of Illinois Open Source License. See LICENSE.TXT for details.
 *
 ******************************************************************************
 *
 * Description:
 *  This header file includes the infamous alloc.h header file if the
 *  autoconf system has found it.  It hides all of the autoconf details
 *  from the rest of the application source code.
 */

#ifndef _CONFIG_ALLOC_H
#define _CONFIG_ALLOC_H

#include "llvm/Config/config.h"

/*
 * This is a modified version of that suggested by the Autoconf manual.
 *  1) The #pragma is indented so that pre-ANSI C compilers ignore it.
 *  2) If alloca.h cannot be found, then try stdlib.h.  Some platforms
 *     (notably FreeBSD) defined alloca() there.
 */
#ifdef _MSC_VER
#include <malloc.h>
#define alloca _alloca
#elif defined(HAVE_ALLOCA_H)
#include <alloca.h>
#elif defined(__MINGW32__) && defined(HAVE_MALLOC_H)
#include <malloc.h>
#elif !defined(__GNUC__)
# ifdef _AIX
#   pragma alloca
# else
#   ifndef alloca
      char * alloca ();
#   endif
# endif
#else
# ifdef HAVE_STDLIB_H
#   include <stdlib.h>
# else
#   error "The function alloca() is required but not found!"
# endif
#endif

#endif