From ebbf4038d0897ffa190ba18c45fab302116f8e60 Mon Sep 17 00:00:00 2001 From: downsj Date: Wed, 19 Feb 1997 10:36:36 +0000 Subject: [PATCH] f77 0.5.19.1. --- gnu/usr.bin/gcc/f/ChangeLog | 18 ++++++++++++++++++ gnu/usr.bin/gcc/f/com.c | 18 ++++++++++++++---- gnu/usr.bin/gcc/f/news.texi | 25 ++++++++++++++++++++++++- gnu/usr.bin/gcc/f/zzz.c | 2 +- 4 files changed, 57 insertions(+), 6 deletions(-) diff --git a/gnu/usr.bin/gcc/f/ChangeLog b/gnu/usr.bin/gcc/f/ChangeLog index b432f0f3cb7..031133da65e 100644 --- a/gnu/usr.bin/gcc/f/ChangeLog +++ b/gnu/usr.bin/gcc/f/ChangeLog @@ -1,3 +1,21 @@ +Sat Feb 1 12:15:09 1997 Craig Burley + + * Version 0.5.19.1 released. + + * com.c (ffecom_expr_, ffecom_expr_intrinsic_, + ffecom_tree_divide_): FFECOM_gfrtPOW_ZI, + FFECOM_gfrtCONJG, FFECOM_gfrtDCONJG, + FFECOM_gfrtCCOS, FFECOM_gfrtCDCOS, + FFECOM_gfrtCLOG, FFECOM_gfrtCDLOG, + FFECOM_gfrtCSIN, FFECOM_gfrtCDSIN, + FFECOM_gfrtCSQRT, FFECOM_gfrtCDSQRT, + FFECOM_gfrtDIV_CC, FFECOM_gfrtDIV_ZZ: These all require + result to _not_ overlap one or more inputs. + +Sat Dec 7 07:15:17 1996 Craig Burley + + * Version 0.5.19 released. + Fri Dec 6 12:23:55 1996 Craig Burley * g77.c: Default to assuming "f77" is in $LANGUAGES, since diff --git a/gnu/usr.bin/gcc/f/com.c b/gnu/usr.bin/gcc/f/com.c index 96386eb5bf2..e6661c6b53a 100644 --- a/gnu/usr.bin/gcc/f/com.c +++ b/gnu/usr.bin/gcc/f/com.c @@ -2579,14 +2579,17 @@ ffecom_expr_ (ffebld expr, tree dest_tree, case FFEINFO_basictypeCOMPLEX: if (ffeinfo_kindtype (ffebld_info (left)) == FFEINFO_kindtypeREAL1) - code = FFECOM_gfrtPOW_CI; + code = FFECOM_gfrtPOW_CI; /* Overlapping result okay. */ else - code = FFECOM_gfrtPOW_ZI; + { + code = FFECOM_gfrtPOW_ZI; + dest_used = NULL; /* This one doesn't work with overlapping result. */ + } break; default: assert ("bad pow_*i" == NULL); - code = FFECOM_gfrtPOW_CI; + code = FFECOM_gfrtPOW_CI; /* Overlapping result okay. */ break; } if (ffeinfo_kindtype (ffebld_info (left)) != rtkt) @@ -2633,7 +2636,7 @@ ffecom_expr_ (ffebld expr, tree dest_tree, FFEINFO_kindtypeREALDOUBLE, 0, FFETARGET_charactersizeNONE, FFEEXPR_contextLET); - code = FFECOM_gfrtPOW_ZZ; + code = FFECOM_gfrtPOW_ZZ; /* Overlapping result okay. */ break; default: @@ -3360,6 +3363,7 @@ ffecom_expr_intrinsic_ (ffebld expr, tree dest_tree, assert ("bad CONJG kind type" == NULL); ix = FFECOM_gfrt; } + dest_used = NULL; /* These don't work with overlapping result. */ goto library; /* :::::::::::::::::::: */ case FFEINTRIN_impCOS: /* Plus impCCOS, impCDCOS, impDCOS. */ @@ -3374,6 +3378,7 @@ ffecom_expr_intrinsic_ (ffebld expr, tree dest_tree, assert ("bad COS COMPLEX kind type" == NULL); ix = FFECOM_gfrt; } + dest_used = NULL; /* These don't work with overlapping result. */ } else { @@ -3438,6 +3443,7 @@ ffecom_expr_intrinsic_ (ffebld expr, tree dest_tree, assert ("bad EXP COMPLEX kind type" == NULL); ix = FFECOM_gfrt; } + dest_used = NULL; /* These don't work with overlapping result. */ } else { @@ -3513,6 +3519,7 @@ ffecom_expr_intrinsic_ (ffebld expr, tree dest_tree, assert ("bad LOG COMPLEX kind type" == NULL); ix = FFECOM_gfrt; } + dest_used = NULL; /* These don't work with overlapping result. */ } else { @@ -3666,6 +3673,7 @@ ffecom_expr_intrinsic_ (ffebld expr, tree dest_tree, assert ("bad SIN COMPLEX kind type" == NULL); ix = FFECOM_gfrt; } + dest_used = NULL; /* These don't work with overlapping result. */ } else { @@ -3705,6 +3713,7 @@ ffecom_expr_intrinsic_ (ffebld expr, tree dest_tree, assert ("bad SQRT COMPLEX kind type" == NULL); ix = FFECOM_gfrt; } + dest_used = NULL; /* These don't work with overlapping result. */ } else { @@ -8736,6 +8745,7 @@ ffecom_tree_divide_ (tree tree_type, tree left, tree right, ix = FFECOM_gfrtDIV_CC; else ix = FFECOM_gfrtDIV_ZZ; + dest_used = NULL; /* These don't work with overlapping result. */ left = ffecom_1 (ADDR_EXPR, build_pointer_type (TREE_TYPE (left)), diff --git a/gnu/usr.bin/gcc/f/news.texi b/gnu/usr.bin/gcc/f/news.texi index 91b1ef5f54e..f0faa2d7806 100644 --- a/gnu/usr.bin/gcc/f/news.texi +++ b/gnu/usr.bin/gcc/f/news.texi @@ -5,7 +5,7 @@ @c The text of this file appears in the file BUGS @c in the G77 distribution, as well as in the G77 manual. -@c 1996-12-03 +@c 1996-02-01 @ifclear NEWSONLY @node News @@ -20,6 +20,29 @@ @c @samp{libU77} is present and to be built and installed @c along with the rest of @samp{libf2c}. +@heading In 0.5.19.1: +@itemize @bullet +Code-generation bugs afflicting operations on complex +data have been fixed. + +These bugs occurred when assigning the result of an +operation to a complex variable (or array element) +that also served as an input to that operation. + +The operations affected by this bug were: @samp{CONJG()}, +@samp{DCONJG()}, @samp{CCOS()}, @samp{CDCOS()}, +@samp{CLOG()}, @samp{CDLOG()}, @samp{CSIN()}, @samp{CDSIN()}, +@samp{CSQRT()}, @samp{CDSQRT()}, complex division, and +raising a @code{DOUBLE COMPLEX} operand to an @code{INTEGER} +power. +(The related generic and @samp{Z}-prefixed intrinsics, +such as @samp{ZSIN()}, also were affected.) + +For example, @samp{C = CSQRT(C)}, @samp{Z = Z/C}, and @samp{Z = Z**I} +(where @samp{C} is @code{COMPLEX} and @samp{Z} is +@code{DOUBLE COMPLEX}) have been fixed. +@end itemize + @heading In 0.5.19: @itemize @bullet @item diff --git a/gnu/usr.bin/gcc/f/zzz.c b/gnu/usr.bin/gcc/f/zzz.c index 55d18a4faca..55ea8226c3f 100644 --- a/gnu/usr.bin/gcc/f/zzz.c +++ b/gnu/usr.bin/gcc/f/zzz.c @@ -51,6 +51,6 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #endif /* !defined (__TIME__) */ #endif /* !defined (FFEZZZ_TIME) */ -char *ffezzz_version_string = "0.5.19"; +char *ffezzz_version_string = "0.5.19.1"; char *ffezzz_date = FFEZZZ_DATE; char *ffezzz_time = FFEZZZ_TIME; -- 2.20.1