This is a multi-part message in MIME format.
--------------040800030003060507000405
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

nobu.nokada / softhome.net wrote:
> At Thu, 16 Jan 2003 15:38:09 +0900,
> Michal Rokos 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.
> 
> 
>>>What about ((void)0) ?
>>
>>	Again - gcc warns about 'code has no effect'...
> 
> 
> I've used this (void)0 trick many times, we have to replace
> them all to make gcc 3.2.2 quiet?
> 
> Anyhow, what it defines assert() in <assert.h> if NDEBUG?

	You're right - as usually :))

	Thank you for giving me a lesson :)

	Here's a small patch that does what nobu says.

		Michal



--------------040800030003060507000405
Content-Type: text/plain;
 nameubyWall2.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filenameubyWall2.diff"

Index: defines.h
RCS file: /src/ruby/defines.h,v
retrieving revision 1.26
diff -u -p -r1.26 defines.h
--- defines.h	16 Jan 2003 07:38:39 -0000	1.26
+++ defines.h	16 Jan 2003 12:15:03 -0000
@@ -137,10 +137,10 @@ void xfree _((void*));
 #define EXTERN extern
 #endif
 
+#if defined(sparc) || defined(__sparc__)
 static inline void
 flush_register_windows(void)
 {
-#if defined(sparc) || defined(__sparc__)
 # if defined(__sparc_v9__) || defined(__arch64__)
     asm volatile ("flushw" : :);
 # elif defined(linux) || defined(__linux__)
@@ -148,9 +148,11 @@ flush_register_windows(void)
 # else /* Solaris, OpenBSD, NetBSD, etc. */
     asm volatile ("ta  0x03");
 # endif /* trap always to flush register windows if we are on a Sparc system */
-#endif 
 }
-#define FLUSH_REGISTER_WINDOWS	flush_register_windows()
+#  define FLUSH_REGISTER_WINDOWS flush_register_windows()
+#else
+#  define FLUSH_REGISTER_WINDOWS ((void)0)
+#endif 
 
 #if defined(DOSISH)
 #define PATH_SEP ";"
Index: eval.c
RCS file: /src/ruby/eval.c,v
retrieving revision 1.386
diff -u -p -r1.386 eval.c
--- eval.c	16 Jan 2003 07:38:39 -0000	1.386
+++ eval.c	16 Jan 2003 12:16:26 -0000
@@ -938,7 +938,7 @@ static void call_trace_func _((char*,NOD
 #define SET_CURRENT_SOURCE() (ruby_sourcefile  uby_current_node->nd_file, \
 			      ruby_sourceline  d_line(ruby_current_node))
 #else
-#define SET_CURRENT_SOURCE() do { } while (0)
+#define SET_CURRENT_SOURCE() ((void)0)
 #endif
 
 void

--------------040800030003060507000405--