aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Config/alloca.h
blob: f27ef060dcb5113e2dddfe3562fcec3eb50fd863 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*
 * Header file: alloc.h
 *
 * 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 "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.
 */
#ifndef __GNUC__
#	ifdef HAVE_ALLOCA_H
#		include <alloca.h>
#	else
#		ifdef _AIX
 #			pragma alloca
#		else
#			ifndef alloca
				char * alloca ();
#			endif
#		endif
#	endif
#else
#	ifdef HAVE_ALLOCA_H
#		include <alloca.h>
#	else
#		ifdef HAVE_STDLIB_H
#			include <stdlib.h>
#		else
#			error "The function alloca() is required but not found!"
#		endif
#	endif
#endif

#endif