check for alloca
diff --git a/asn1c/sys-common.h b/asn1c/sys-common.h
index cac71c0..9ab1e6b 100644
--- a/asn1c/sys-common.h
+++ b/asn1c/sys-common.h
@@ -64,7 +64,9 @@
 #ifndef	EX_OSFILE
 #define	EX_OSFILE 72
 #endif
+#if defined HAVE_DECL_ALLOCA && !HAVE_DECL_ALLOCA
 #define	alloca _alloca
+#endif
 #define	snprintf _snprintf
 #endif	/* _WIN32 */
 
diff --git a/configure.ac b/configure.ac
index 78eee75..558acab 100644
--- a/configure.ac
+++ b/configure.ac
@@ -66,6 +66,7 @@
 AC_CHECK_FUNCS(strtoimax strtoll)
 AC_CHECK_FUNCS(mergesort)
 AC_CHECK_FUNCS(mkstemps)
+AC_CHECK_DECL(alloca)
 AC_TRY_LINK_FUNC([symlink],[AC_DEFINE([HAVE_SYMLINK], 1, [Define to 1 if you have the symlink function.])])
 
 AC_OUTPUT(				\