Win32 portability fixes


git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@85 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/skeletons/OBJECT_IDENTIFIER.c b/skeletons/OBJECT_IDENTIFIER.c
index c910a8c..1e4fe59 100644
--- a/skeletons/OBJECT_IDENTIFIER.c
+++ b/skeletons/OBJECT_IDENTIFIER.c
@@ -359,11 +359,15 @@
 	unsigned LE = 1;
 	unsigned isLittleEndian = *(char *)≤
 #endif
-	uint8_t buffer[arcval_size];
 	uint8_t *tp, *tend;
 	unsigned int cache;
 	uint8_t *bp = arcbuf;
 	int bits;
+#ifdef	__GNUC__
+	uint8_t buffer[arcval_size];
+#else
+	uint8_t *buffer = alloca(arcval_size);
+#endif
 
 	if(isLittleEndian && !prepared_order) {
 		uint8_t *a = arcval + arcval_size - 1;