diff options
Diffstat (limited to 'toolchain/gcc/3.4.2/300-pr17541.patch')
-rw-r--r-- | toolchain/gcc/3.4.2/300-pr17541.patch | 234 |
1 files changed, 234 insertions, 0 deletions
diff --git a/toolchain/gcc/3.4.2/300-pr17541.patch b/toolchain/gcc/3.4.2/300-pr17541.patch new file mode 100644 index 0000000000..ca5fa09abb --- /dev/null +++ b/toolchain/gcc/3.4.2/300-pr17541.patch @@ -0,0 +1,234 @@ +# DP: 2004-09-21 Bud Davis <bdavis9659@comcast.net> +# DP: +# DP: PR fortran/17541 +# DP: * bld.c (ffebld_constant_new_real2_val): Fix typo, +# DP: +# DP: PR fortran/17541 +# DP: * g77.f-torture/execute/pr17541.f: New test. + +Index: gcc/gcc/f/bld.c +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/f/Attic/bld.c,v +retrieving revision 1.16.14.1 +retrieving revision 1.16.14.2 +diff -u -r1.16.14.1 -r1.16.14.2 +--- gcc/gcc/f/bld.c 12 Jul 2004 17:58:36 -0000 1.16.14.1 ++++ gcc/gcc/f/bld.c 21 Sep 2004 12:54:27 -0000 1.16.14.2 +@@ -1333,7 +1333,7 @@ + nc = malloc_new_kp (ffebld_constant_pool(), + "FFEBLD_constREAL2", + sizeof (*nc)); +- nc->consttype = FFEBLD_constREAL1; ++ nc->consttype = FFEBLD_constREAL2; + nc->u.real2 = val; + nc->hook = FFECOM_constantNULL; + nc->llink = NULL; +Index: gcc/gcc/testsuite/g77.f-torture/execute/pr17541.f +=================================================================== +RCS file: gcc/gcc/testsuite/g77.f-torture/execute/pr17541.f +diff -N gcc/gcc/testsuite/g77.f-torture/execute/pr17541.f +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ gcc/gcc/testsuite/g77.f-torture/execute/pr17541.f 21 Sep 2004 12:54:35 -0000 1.1.2.1 +@@ -0,0 +1,202 @@ ++ program test ++ implicit none ++! check all types of data statements ++! pr 17541 ++ real r(2) ++ double precision s(2) ++ integer*1 ib(2) ++ integer*2 ih(2) ++ integer*4 iw(2) ++ integer*8 id(3) ++ logical*1 lb(2) ++ logical*2 lh(2) ++ logical*4 lw(2) ++ logical*8 ld(2) ++ character*1 a(2) ++ character*5 b(2) ++ complex c1(2) ++ complex*8 c2(2) ++ data r / 1.0,2.0 / ++ data s / 2.d0,1.d0/ ++ data ib / 1,-1 / ++ data ih / 2,100/ ++ data iw / 4,3560000 / ++ data id / 8,Z'ABCDEF01',Z'5555AAAA' / ++ data a / 'a', 'z' / ++ data b / 'xyz','abc'/ ++ data c1 /(1.0,2.0),(-1.0,-2.0)/ ++ data c2 /(1.d0,2.d0),(-1.d0,-2.d0)/ ++ data lb / .TRUE.,.FALSE. / ++ data lh / .TRUE.,.FALSE. / ++ data lw / .TRUE.,.FALSE. / ++ data ld / .TRUE.,.FALSE. / ++ logical dbug ++ data dbug /.FALSE./ ++! check the reals first ++ if (r(1).ne.1.0) then ++ if (dbug) then ++ print*,r(1), ' should be 1.0 ' ++ else ++ call abort ++ endif ++ endif ++ if (r(2).ne.2.0) then ++ if (dbug) then ++ print*,r(2), ' should be 2.0 ' ++ else ++ call abort ++ endif ++ endif ++ if (s(1).ne.2.d0) then ++ if (dbug) then ++ print*,s(1), ' xxshould be 2.d0 ' ++ else ++ call abort ++ endif ++ endif ++ if (s(2).ne.1.d0) then ++ if (dbug) then ++ print*,s(2), ' should be 1.d0 ' ++ else ++ call abort ++ endif ++ endif ++! now the integers ++ if (ib(1).ne.1) then ++ if (dbug) then ++ print*,ib(1), ' should be 1 ' ++ else ++ call abort ++ endif ++ endif ++ if (ib(2).ne.-1) then ++ if (dbug) then ++ print*,ib(2), ' should be -1 ' ++ else ++ call abort ++ endif ++ endif ++ if (ih(1).ne.2) then ++ if (dbug) then ++ print*,ih(2), ' should be 2 ' ++ else ++ call abort ++ endif ++ endif ++ if (ih(2).ne.100) then ++ if (dbug) then ++ print*,ih(2), ' should be 100 ' ++ else ++ call abort ++ endif ++ endif ++ if (iw(1).ne.4) then ++ if (dbug) then ++ print*,iw(1), ' should be 4 ' ++ else ++ call abort ++ endif ++ endif ++ if (iw(2).ne.3560000) then ++ if (dbug) then ++ print*,iw(2), ' should be 3560000 ' ++ else ++ call abort ++ endif ++ endif ++ if (id(1).ne.8) then ++ if (dbug) print*,id(1), ' should be 8 ' ++ call abort ++ endif ++ if (id(2).ne.Z'ABCDEF01') then ++ if (dbug) print*,id(2), " should be Z'ABCDEF01' " ++ call abort ++ endif ++ if (id(3).ne.Z'5555AAAA') then ++ if (dbug) print*,id(2), " should be Z'5555AAAA' " ++ call abort ++ endif ++! complex ++ if (c1(1).ne.(1.0,2.0)) then ++ if (dbug) then ++ print*,c1(1), ' should be (1.0,2.0) ' ++ else ++ call abort ++ endif ++ endif ++ if (c1(2).ne.(-1.0,-2.0)) then ++ if (dbug) then ++ print*,c1(2), ' should be (-1.0,-2.0) ' ++ else ++ call abort ++ endif ++ endif ++ if (c2(1).ne.(1.d0,2.d0)) then ++ if (dbug) then ++ print*,c2(1), ' should be (1.0,2.0) ' ++ else ++ call abort ++ endif ++ endif ++ if (c2(2).ne.(-1.d0,-2.d0)) then ++ if (dbug) then ++ print*,c2(2), ' should be (-1.0,-2.0) ' ++ else ++ call abort ++ endif ++ endif ++! character ++ if (a(1).ne.'a') then ++ if (dbug) then ++ print*,a(1), ' should be a ' ++ else ++ call abort ++ endif ++ endif ++ if (b(1).ne.'xyz') then ++ if (dbug) then ++ print*,b(1), ' should be xyz ' ++ else ++ call abort ++ endif ++ endif ++!logicals ++ if (.NOT.lb(1)) then ++ if (dbug) print*,lb(1), ' should be .T. ' ++ call abort ++ endif ++ if (lb(2)) then ++ if (dbug) print*,lb(2), ' should be .F. ' ++ call abort ++ endif ++ if (.NOT.lh(1)) then ++ if (dbug) print*,lh(1), ' should be .T. ' ++ call abort ++ endif ++ if (lh(2)) then ++ if (dbug) print*,lh(2), ' should be .F. ' ++ call abort ++ endif ++ if (.NOT.lw(1)) then ++ if (dbug) print*,lw(1), ' should be .T. ' ++ call abort ++ endif ++ if (lw(2)) then ++ if (dbug) print*,lw(2), ' should be .F. ' ++ call abort ++ endif ++ if (.NOT.ld(1)) then ++ if (dbug) then ++ print*,ld(1), ' should be .T. ' ++ else ++ call abort ++ endif ++ endif ++ if (ld(2)) then ++ if (dbug) then ++ print*,ld(2), ' should be .F. ' ++ else ++ call abort ++ endif ++ endif ++ end |