[前][次][番号順一覧][スレッド一覧]

ruby-changes:19777

From: naruse <ko1@a...>
Date: Mon, 30 May 2011 15:53:28 +0900 (JST)
Subject: [ruby-changes:19777] naruse:r31822 (trunk): * insns.def (opt_mult): as r31805, volatile it.

naruse	2011-05-30 15:53:21 +0900 (Mon, 30 May 2011)

  New Revision: 31822

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=31822

  Log:
    * insns.def (opt_mult): as r31805, volatile it.
      Without this, clang -O fails calculation.
    
    * numeric.c (fix_mul): ditto.
    
    * rational.c (f_imul): ditto.

  Modified files:
    trunk/ChangeLog
    trunk/insns.def
    trunk/numeric.c
    trunk/rational.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 31821)
+++ ChangeLog	(revision 31822)
@@ -1,3 +1,12 @@
+Mon May 30 15:44:16 2011  NARUSE, Yui  <naruse@r...>
+
+	* insns.def (opt_mult): as r31805, volatile it.
+	  Without this, clang -O fails calculation.
+
+	* numeric.c (fix_mul): ditto.
+
+	* rational.c (f_imul): ditto.
+
 Mon May 30 10:26:51 2011  NARUSE, Yui  <naruse@r...>
 
 	* numeric.c (int_pow): make sure to assign the result of x * z.
Index: insns.def
===================================================================
--- insns.def	(revision 31821)
+++ insns.def	(revision 31822)
@@ -1454,7 +1454,7 @@
 {
     if (FIXNUM_2_P(recv, obj) &&
 	BASIC_OP_UNREDEFINED_P(BOP_MULT)) {
-	long a, b, c;
+	long a, b;
 
 	a = FIX2LONG(recv);
 	if (a == 0) {
@@ -1462,7 +1462,7 @@
 	}
 	else {
 	    b = FIX2LONG(obj);
-	    c = a * b;
+	    volatile long c = a * b;
 
 	    if (FIXABLE(c) && c / a == b) {
 		val = LONG2FIX(c);
Index: numeric.c
===================================================================
--- numeric.c	(revision 31821)
+++ numeric.c	(revision 31822)
@@ -2386,7 +2386,7 @@
 #if SIZEOF_LONG * 2 <= SIZEOF_LONG_LONG
 	LONG_LONG d;
 #else
-	long c;
+	volatile long c;
 	VALUE r;
 #endif
 
Index: rational.c
===================================================================
--- rational.c	(revision 31821)
+++ rational.c	(revision 31822)
@@ -604,7 +604,7 @@
 f_imul(long a, long b)
 {
     VALUE r;
-    long c;
+    volatile long c;
 
     if (a == 0 || b == 0)
 	return ZERO;

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]