From: Michal Rokos Date: 2003-01-16T15:38:09+09:00 Subject: Re: [Patch] Wall compilation Hi, nobu.nokada@softhome.net wrote: >> If you read the patch, please note change in defines.h >> FLUSH_REGISTER_WINDOWS is now defined everytime, but >> compilation with -O2 handles empty proc body quite well >> (ie. no code - no useless jumps). > > > Is it needed? Try -Wall compilation. It warns badly (gcc-3.2.2) about the code has no effect and so on, which looks ugly to me. This patch has the same result (code has no effect), but without warnings from compiler. > > >>Index: dln.c >>=================================================================== >>RCS file: /src/ruby/dln.c,v >>retrieving revision 1.48 >>diff -u -p -r1.48 dln.c >>--- dln.c 31 Dec 2002 10:53:14 -0000 1.48 >>+++ dln.c 15 Jan 2003 20:52:42 -0000 >>@@ -1304,7 +1304,7 @@ dln_load(file) >> >> char *buf; >> /* Load the file as an object one */ >>- init_funcname(&buf, file); >>+ init_funcname(&buf, (char *)file); > > > Second argument of init_funcname() is const char*, so this cast > doesn't seem necessery. My bad. Sorry. It seems that prototype was changed. So this is really useless. >>Index: eval.c >>=================================================================== >>RCS file: /src/ruby/eval.c,v >>retrieving revision 1.384 >>diff -u -p -r1.384 eval.c >>--- eval.c 15 Jan 2003 08:07:41 -0000 1.384 >>+++ eval.c 15 Jan 2003 20:52:50 -0000 >>@@ -938,7 +938,7 @@ static void call_trace_func _((char*,NOD >> #define SET_CURRENT_SOURCE() (ruby_sourcefile = ruby_current_node->nd_file, \ >> ruby_sourceline = nd_line(ruby_current_node)) >> #else >>-#define SET_CURRENT_SOURCE() 0 >>+#define SET_CURRENT_SOURCE() do { } while (0) > > > What about ((void)0) ? Again - gcc warns about 'code has no effect'... >>@@ -2181,6 +2181,8 @@ call_trace_func(event, node, self, id, k >> if (state) JUMP_TAG(state); >> } >> >>+VALUE rb_check_array_type _((VALUE)); >>+ > > Isn't it declared in intern.h? Ahh, again... When I did this cleanup, it wasn't there. So sorry once again :) > >>Index: ext/readline/readline.c >>=================================================================== >>RCS file: /src/ruby/ext/readline/readline.c,v >>retrieving revision 1.11 >>diff -u -p -r1.11 readline.c >>--- ext/readline/readline.c 30 Aug 2002 10:41:57 -0000 1.11 >>+++ ext/readline/readline.c 15 Jan 2003 20:53:08 -0000 >>@@ -3,6 +3,7 @@ >> >> #include >> #include >>+#include >> #include >> #include > > > It may be better to surround with HAVE_UNISTD_H. > True. Unisth.h is needed for isatty(). > >>Index: ext/stringio/stringio.c >>=================================================================== >>RCS file: /src/ruby/ext/stringio/stringio.c,v >>retrieving revision 1.12 >>diff -u -p -r1.12 stringio.c >>--- ext/stringio/stringio.c 20 Dec 2002 11:23:40 -0000 1.12 >>+++ ext/stringio/stringio.c 15 Jan 2003 20:53:12 -0000 > > > This patch is OK. > :) Michal