+Sat Feb 1 12:15:09 1997 Craig Burley <burley@gnu.ai.mit.edu>
+
+ * 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 <burley@gnu.ai.mit.edu>
+
+ * Version 0.5.19 released.
+
Fri Dec 6 12:23:55 1996 Craig Burley <burley@gnu.ai.mit.edu>
* g77.c: Default to assuming "f77" is in $LANGUAGES, since
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)
FFEINFO_kindtypeREALDOUBLE, 0,
FFETARGET_charactersizeNONE,
FFEEXPR_contextLET);
- code = FFECOM_gfrtPOW_ZZ;
+ code = FFECOM_gfrtPOW_ZZ; /* Overlapping result okay. */
break;
default:
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. */
assert ("bad COS COMPLEX kind type" == NULL);
ix = FFECOM_gfrt;
}
+ dest_used = NULL; /* These don't work with overlapping result. */
}
else
{
assert ("bad EXP COMPLEX kind type" == NULL);
ix = FFECOM_gfrt;
}
+ dest_used = NULL; /* These don't work with overlapping result. */
}
else
{
assert ("bad LOG COMPLEX kind type" == NULL);
ix = FFECOM_gfrt;
}
+ dest_used = NULL; /* These don't work with overlapping result. */
}
else
{
assert ("bad SIN COMPLEX kind type" == NULL);
ix = FFECOM_gfrt;
}
+ dest_used = NULL; /* These don't work with overlapping result. */
}
else
{
assert ("bad SQRT COMPLEX kind type" == NULL);
ix = FFECOM_gfrt;
}
+ dest_used = NULL; /* These don't work with overlapping result. */
}
else
{
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)),
@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
@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
#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;