aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2011-05-25 02:15:58 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2011-05-25 02:15:58 +0000
commit30a435d83ab076958e210c724f090d0c6a27781a (patch)
treef1d213918c085cd76f339c47f6e7075674d74817 /gcc/testsuite
parent82625907a67dd38b3a55d7f4d506c10b4268b297 (diff)
downloadgcc-30a435d83ab076958e210c724f090d0c6a27781a.zip
gcc-30a435d83ab076958e210c724f090d0c6a27781a.tar.gz
gcc-30a435d83ab076958e210c724f090d0c6a27781a.tar.bz2
re PR rtl-optimization/48757 (internal compiler error: in compensate_edge, at reg-stack.c:2788)
2011-05-24 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/48757 * ira-build.c (loop_with_eh_edge_p): Rename to loop_with_complex_edge_p, check edges on complexity, make function conditional. (mark_loops_for_removal): Make call of loop_with_complex_edge_p conditional. 2011-05-24 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/48757 * gfortran.dg/pr48757.f: New test case. From-SVN: r174165
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr48757.f54
2 files changed, 59 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 14ef5be..b39b4c7 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/48757
+ * gfortran.dg/pr48757.f: New test case.
+
2011-05-24 Jason Merrill <jason@redhat.com>
* g++.dg/cpp0x/access01.C: New.
diff --git a/gcc/testsuite/gfortran.dg/pr48757.f b/gcc/testsuite/gfortran.dg/pr48757.f
new file mode 100644
index 0000000..e89a596
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr48757.f
@@ -0,0 +1,54 @@
+! { dg-do compile { target i?86-*-* x86_64-*-* } }
+! { dg-options "-O2 -w" }
+C fconc64.F, from CERNLIB (simplified)
+
+ FUNCTION DFCONC(X,TAU,M)
+ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+ COMPLEX*16 WGAMMA,WLOGAM
+ COMPLEX*16 CGM,CLG,CRG,I,A,B,C,TI,R,RR,U(0:3),V(0:3),W(19)
+ LOGICAL LM0,LM1,LTA
+ CHARACTER NAME*(*)
+ CHARACTER*80 ERRTXT
+ PARAMETER (NAME = 'RFCONC/DFCONC')
+ DIMENSION T(7),H(9),S(5),P(11),D(-1:6)
+ PARAMETER (PI = 3.14159 26535 89793 24D+0)
+ PARAMETER (RPI = 1.77245 38509 05516 03D+0)
+ PARAMETER (I = (0,1))
+ PARAMETER (Z1 = 1, HF = Z1/2, TH = 1+HF, C1 = Z1/10, C2 = Z1/5)
+ PARAMETER (RPH = 2/PI, RPW = 2/RPI, TW = 20, NMAX = 200)
+ DATA EPS /1D-14/
+ ASSIGN 1 TO JP
+ GO TO 20
+ 1 ASSIGN 2 TO JP
+ GO TO 20
+ 2 IF(LM1) FC=2*FC/SQRT(1-X1)
+ GO TO 99
+ 12 ASSIGN 3 TO JP
+ GO TO 20
+ 3 IF(LM1) FC=SIGN(HF,1-X)*(TAU**2+HF**2)*SQRT(ABS(X**2-1))*FC
+ GO TO 99
+ 13 ASSIGN 4 TO JP
+ GO TO 20
+ 4 R1=EXP((TI-HF)*LOG(X+X)+CLG(1+TI)-CLG((TH-FM)+TI))*
+ 1 R*((HF-FM)+TI)/TI
+ FC=RPW*R1
+ IF(LM1) FC=FC/SQRT(1-X1)
+ GO TO 99
+ 20 IF(LTA) THEN
+ IF(ABS(R-RR) .LT. EPS) GO TO JP, (1,2,3,4)
+ ELSE
+ W(1)=X1*A*B/C
+ R=1+W(1)
+ DO 23 N = 1,NMAX
+ RR=R
+ W(1)=W(1)*X1*(A+FN)*(B+FN)/((C+FN)*(FN+1))
+ IF(ABS(R-RR) .LT. EPS) GO TO JP, (1,2,3,4)
+ 23 CONTINUE
+ END IF
+ 99 DFCONC=FC
+ RETURN
+ 101 FORMAT('ILLEGAL ARGUMENT(S) X = ',D15.8,' TAU = ',D15.8,
+ 1 ' M = ',I3)
+ 102 FORMAT('CONVERGENCE PROBLEM FOR HYPERGEOMETRIC FUNCTION, X = ',
+ 1 D15.8)
+ END