Fix 19990525-0.f

From-SVN: r27145
This commit is contained in:
Craig Burley 1999-05-25 16:25:57 +00:00 committed by Craig Burley
parent 3ebc5c52e8
commit 47d98fa268
4 changed files with 70 additions and 0 deletions

View File

@ -1,3 +1,10 @@
Tue May 25 17:48:34 1999 Craig Burley <craig@jcb-sc.com>
Fix 19990525-0.f:
* com.c (ffecom_arg_ptr_to_expr): Strip off parens around
CHARACTER expression.
(ffecom_prepare_expr_): Ditto.
Tue May 18 03:52:04 1999 Craig Burley <craig@jcb-sc.com>
Support use of back end's improved open-coding of complex divide:

View File

@ -10600,6 +10600,9 @@ ffecom_arg_ptr_to_expr (ffebld expr, tree *length)
assert (ffeinfo_kindtype (ffebld_info (expr))
== FFEINFO_kindtypeCHARACTER1);
while (ffebld_op (expr) == FFEBLD_opPAREN)
expr = ffebld_left (expr);
catlist = ffecom_concat_list_new_ (expr, FFETARGET_charactersizeNONE);
switch (ffecom_concat_list_count_ (catlist))
{
@ -13042,6 +13045,12 @@ ffecom_prepare_expr_ (ffebld expr, ffebld dest UNUSED)
/* Generate whatever temporaries are needed to represent the result
of the expression. */
if (bt == FFEINFO_basictypeCHARACTER)
{
while (ffebld_op (expr) == FFEBLD_opPAREN)
expr = ffebld_left (expr);
}
switch (ffebld_op (expr))
{
default:

View File

@ -1,3 +1,7 @@
1999-05-25 Craig Burley <craig@jcb-sc.com>
* g77.f-torture/compile/19990525-0.f: New test.
Tue May 25 01:21:16 1999 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/990525-2.c: New test.

View File

@ -0,0 +1,50 @@
* Mailing-List: contact egcs-bugs-help@egcs.cygnus.com; run by ezmlm
* Precedence: bulk
* Sender: owner-egcs-bugs@egcs.cygnus.com
* From: "Bjorn R. Bjornsson" <brb@halo.hi.is>
* Subject: g77 char expr. as arg to subroutine bug
* To: egcs-bugs@egcs.cygnus.com
* Date: Tue, 25 May 1999 14:45:56 +0000 (GMT)
* Content-Type: text/plain; charset=US-ASCII
* X-UIDL: 06000c94269ed6dfe826493e52a818b9
*
* The following bug is in all snapshots starting
* from April 18. I have only tested this on Alpha linux,
* and with FFECOM_FASTER_ARRAY_REFS set to 1.
*
* Run the following through g77:
*
subroutine a
character*2 string1
character*2 string2
character*4 string3
string1 = 's1'
string2 = 's2'
c
c the next 2 lines are ok.
string3 = (string1 // string2)
call b(string1//string2)
c
c this line gives gcc/f/com.c:10660: failed assertion `hook'
call b((string1//string2))
end
*
* the output from:
*
* /usr/local/egcs-19990418/bin/g77 --verbose -c D.f
*
* is:
*
* on egcs-2.93.19 19990418 (gcc2 ss-980929 experimental) (from FSF-g77 version 0.5.24-19990418)
* Reading specs from /usr/local/egcs-19990418/lib/gcc-lib/alphaev56-unknown-linux-gnu/egcs-2.93.19/specs
* gcc version egcs-2.93.19 19990418 (gcc2 ss-980929 experimental)
* /usr/local/egcs-19990418/lib/gcc-lib/alphaev56-unknown-linux-gnu/egcs-2.93.19/f771 D.f -quiet -dumpbase D.f -version -fversion -o /tmp/ccNpaaaa.s
* GNU F77 version egcs-2.93.19 19990418 (gcc2 ss-980929 experimental) (alphaev56-unknown-linux-gnu) compiled by GNU C version egcs-2.93.19 19990418 (gcc2 ss-980929 experimental).
* GNU Fortran Front End version 0.5.24-19990418
* ../../../egcs-19990418/gcc/f/com.c:10351: failed assertion `hook'
* g77: Internal compiler error: program f771 got fatal signal 6
*
* Yours,
*
* Bjorn R. Bjornsson
* brb@halo.hi.is