*/
#ifndef EINA_ALLOCA_H
-#define EINA_ALLOCA_H
+# define EINA_ALLOCA_H
+
+# include <stdlib.h>
+# include <stddef.h>
/**
* @file eina_alloca.h
* depending on the platform.
*/
-#ifdef EINA_HAVE_ALLOCA_H
-# include <alloca.h>
-#elif !defined alloca
-# ifdef __GNUC__
-# define alloca __builtin_alloca
-# elif defined _AIX
-# define alloca __alloca
-# elif defined _MSC_VER
-# include <malloc.h>
-# define alloca _alloca
-# elif !defined EINA_HAVE_ALLOCA
-# ifdef __cplusplus
+# ifdef EINA_HAVE_ALLOCA_H
+# include <alloca.h>
+# elif !defined alloca
+# ifdef __GNUC__
+# define alloca __builtin_alloca
+# elif defined _AIX
+# define alloca __alloca
+# elif defined _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# elif !defined EINA_HAVE_ALLOCA
+# ifdef __cplusplus
extern "C"
-# endif
+# endif
/**
* Allocates memory in the stack frame of the caller, so it's automatically
* freed when the caller returns. See alloca(3) for detials.
*/
-void *alloca (long);
+void *alloca(size_t size);
+# endif
# endif
-#endif
#endif /* EINA_HAVE_ALLOCA_H */