aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-11-01 12:43:59 +0000
committershyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-11-01 12:43:59 +0000
commit83c5219287937d3dffe60ebd85a5c1f808006238 (patch)
tree08e921559246a4dabedebd5e38e4c158621cf062
parent93880659c00b33c6429f6b9cd7a15ff9ee499a70 (diff)
downloadruby-83c5219287937d3dffe60ebd85a5c1f808006238.tar.gz
* main.c: <stdlib.h> is needed, to introduce the getenv(3)
prototype declaration. Without it a C compiler shall infer the getenv type as "int getenv(...);", but this is totally wrong, especially when your machine's sizeof(int) and sizeof(char*) differs. On such environment a return value of getenv(3), which is in fact a char*, might first casted into a int (loses data here), and then casted back to char* by automatic integral promotion fo fit to the prototype of ruby_set_debug_option(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog12
-rw-r--r--main.c3
2 files changed, 15 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 9bcd71433b..94f231b673 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+Mon Nov 1 21:25:57 2010 URABE Shyouhei <shyouhei@ruby-lang.org>
+
+ * main.c: <stdlib.h> is needed, to introduce the getenv(3)
+ prototype declaration. Without it a C compiler shall infer
+ the getenv type as "int getenv(...);", but this is totally
+ wrong, especially when your machine's sizeof(int) and
+ sizeof(char*) differs. On such environment a return value
+ of getenv(3), which is in fact a char*, might first casted
+ into a int (loses data here), and then casted back to char*
+ by automatic integral promotion fo fit to the prototype of
+ ruby_set_debug_option().
+
Sun Oct 31 23:27:09 2010 Koichi Sasada <ko1@atdot.net>
* gc.c (finalizer_table, objspace->final.table):
diff --git a/main.c b/main.c
index a782939ff3..e100cddba5 100644
--- a/main.c
+++ b/main.c
@@ -15,6 +15,9 @@
#ifdef HAVE_LOCALE_H
#include <locale.h>
#endif
+#ifdef RUBY_DEBUG_ENV
+#include <stdlib.h>
+#endif
RUBY_GLOBAL_SETUP