summaryrefslogtreecommitdiff
path: root/include/llvm/Config/alloca.h
diff options
context:
space:
mode:
authorEd Schouten <ed@FreeBSD.org>2009-06-02 17:52:33 +0000
committerEd Schouten <ed@FreeBSD.org>2009-06-02 17:52:33 +0000
commit009b1c42aa6266385f2c37e227516b24077e6dd7 (patch)
tree64ba909838c23261cace781ece27d106134ea451 /include/llvm/Config/alloca.h
Diffstat (limited to 'include/llvm/Config/alloca.h')
-rw-r--r--include/llvm/Config/alloca.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/include/llvm/Config/alloca.h b/include/llvm/Config/alloca.h
new file mode 100644
index 0000000000000..9990507ef0780
--- /dev/null
+++ b/include/llvm/Config/alloca.h
@@ -0,0 +1,49 @@
+/*
+ * The LLVM Compiler Infrastructure
+ *
+ * This file 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