]> gcc.gnu.org Git - gcc.git/commitdiff
[multiple changes]
authorFeng Wang <fengwang@gcc.gnu.org>
Tue, 16 Aug 2005 12:58:46 +0000 (12:58 +0000)
committerFeng Wang <fengwang@gcc.gnu.org>
Tue, 16 Aug 2005 12:58:46 +0000 (12:58 +0000)
2004-08-16  Huang Chun  <chunhuang73@hotmail.com>

* trans-expr.c (gfc_conv_power_op): Evaluate the expression before
expand.

2005-08-16  Feng Wang  <fengwang@nudt.edu.cn>

* gfortran.dg/power.f90: New test.

From-SVN: r103155

gcc/fortran/ChangeLog
gcc/fortran/trans-expr.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/power.f90 [new file with mode: 0644]

index 2d4a86a855089e1e8e2acf7483a4c86cec459a2c..1850b3127b4dd5749b71dfb0d356873b146d0513 100644 (file)
@@ -1,3 +1,8 @@
+2004-08-16  Huang Chun  <chunhuang73@hotmail.com>
+
+       * trans-expr.c (gfc_conv_power_op): Evaluate the expression before
+       expand.
+
 2005-08-14  Asher Langton  <langton2@llnl.gov>
 
        * parse.c (match): Enclosed macro in do...while(0) and braces.
index 0e4e55dc69dc602d825e11c74e649fe9f7fd564d..69b24109443ba1a2a806f85e95ececd349f6810f 100644 (file)
@@ -654,6 +654,7 @@ gfc_conv_power_op (gfc_se * se, gfc_expr * expr)
 
   gfc_init_se (&lse, se);
   gfc_conv_expr_val (&lse, expr->value.op.op1);
+  lse.expr = gfc_evaluate_now (lse.expr, &lse.pre);
   gfc_add_block_to_block (&se->pre, &lse.pre);
 
   gfc_init_se (&rse, se);
index 7d05ac7d2dc5d70df6303555db9d5e477c58e4a4..407be8cd0ce1db46c0c638c79468782ce60d693d 100644 (file)
@@ -1,3 +1,7 @@
+2005-08-16  Feng Wang  <fengwang@nudt.edu.cn>
+
+       * gfortran.dg/power.f90: New test.
+
 2005-08-16  Jakub Jelinek  <jakub@redhat.com>
 
        PR rtl-optimization/23299
diff --git a/gcc/testsuite/gfortran.dg/power.f90 b/gcc/testsuite/gfortran.dg/power.f90
new file mode 100644 (file)
index 0000000..5f6b6c6
--- /dev/null
@@ -0,0 +1,11 @@
+! { dg-do run }
+integer i
+i = 0
+if ( a (i) ** 5 .ne. 1) call abort ()
+contains
+function a (i)
+integer a, i
+i = i + 1
+a = i
+end function
+end
This page took 0.105083 seconds and 5 git commands to generate.