summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-10-25 18:39:30 +0000
committerknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-10-25 18:39:30 +0000
commit3da9449263c587415756bcea44b9e1ec5a3643dd (patch)
tree3a29f059ce8c1c9a6acc70c0b6df25d159e4b9db
parent057f1f3020cf73dd79a1945578bb496a9aa82018 (diff)
* eval.c, gc.c: adopt a common set of alloca() #ifdef's. This
fixes the build with Intel C Compiler for Linux. * eval.c (rb_f_require): declare old_func with a real type, not just type modifiers. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2995 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog8
-rw-r--r--eval.c20
-rw-r--r--gc.c18
3 files changed, 31 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 1362de0bf3..63e1bcc769 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Sat Oct 26 03:28:43 2002 Akinori MUSHA <knu@iDaemons.org>
+
+ * eval.c, gc.c: use a common set of alloca() #ifdef's. This fixes
+ the build with Intel C Compiler for Linux.
+
+ * eval.c (rb_f_require): declare old_func with a real type, not
+ just type modifiers.
+
Fri Oct 25 02:55:01 2002 Minero Aoki <aamine@loveruby.net>
* string.c (rb_str_split_m): RSTRING(str)->ptr might become NULL.
diff --git a/eval.c b/eval.c
index cadd420126..5374e41580 100644
--- a/eval.c
+++ b/eval.c
@@ -35,17 +35,19 @@
# endif
# endif /* atarist */
#else
-# if defined(HAVE_ALLOCA_H)
+# ifdef HAVE_ALLOCA_H
# include <alloca.h>
-# elif !defined(alloca)
-char *alloca();
-# endif
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca /* predefined by HP cc +Olibcalls */
+void *alloca ();
+# endif
+# endif /* AIX */
+# endif /* HAVE_ALLOCA_H */
#endif /* __GNUC__ */
-#ifdef _AIX
-#pragma alloca
-#endif
-
#ifdef HAVE_STDARG_PROTOTYPES
#include <stdarg.h>
#define va_init_list(a,b) va_start(a,b)
@@ -5601,7 +5603,7 @@ rb_f_require(obj, fname)
{
int volatile old_vmode = scope_vmode;
NODE *const volatile old_node = ruby_current_node;
- const volatile old_func = ruby_frame->last_func;
+ const volatile ID old_func = ruby_frame->last_func;
ruby_current_node = 0;
ruby_sourcefile = rb_source_filename(RSTRING(fname)->ptr);
diff --git a/gc.c b/gc.c
index 0ef797077e..87807d50c5 100644
--- a/gc.c
+++ b/gc.c
@@ -38,19 +38,25 @@ void rb_io_fptr_finalize _((struct OpenFile*));
#endif
/* Make alloca work the best possible way. */
-#ifndef __GNUC__
-# if HAVE_ALLOCA_H
+#ifdef __GNUC__
+# ifndef atarist
+# ifndef alloca
+# define alloca __builtin_alloca
+# endif
+# endif /* atarist */
+#else
+# ifdef HAVE_ALLOCA_H
# include <alloca.h>
# else
# ifdef _AIX
-# pragma alloca
+ #pragma alloca
# else
# ifndef alloca /* predefined by HP cc +Olibcalls */
void *alloca ();
# endif
-# endif
-# endif
-#endif
+# endif /* AIX */
+# endif /* HAVE_ALLOCA_H */
+#endif /* __GNUC__ */
#ifndef GC_MALLOC_LIMIT
#if defined(MSDOS) || defined(__human68k__)