Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
6d433196
Commit
6d433196
authored
Feb 22, 1998
by
Craig Burley
Committed by
Jeff Law
Feb 22, 1998
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Various changes from Craig. See the appropriate ChangeLog files.
From-SVN: r18182
parent
575094a2
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
212 additions
and
66 deletions
+212
-66
gcc/f/ChangeLog
+39
-0
gcc/f/com-rt.def
+1
-1
gcc/f/com.c
+7
-0
gcc/f/intdoc.c
+4
-12
gcc/f/intdoc.in
+90
-7
gcc/f/intrin.c
+42
-36
gcc/f/intrin.def
+4
-4
gcc/f/news.texi
+9
-0
libf2c/ChangeLog
+7
-0
libf2c/f2cext.c
+3
-3
libf2c/libF77/signal_.c
+6
-3
No files found.
gcc/f/ChangeLog
View file @
6d433196
...
@@ -14,6 +14,45 @@ Sun Jan 11 02:14:47 1998 Craig Burley <burley@gnu.org>
...
@@ -14,6 +14,45 @@ Sun Jan 11 02:14:47 1998 Craig Burley <burley@gnu.org>
* stb.c (ffestb_R10014_, ffestb_R10016_, ffestb_R10018_,
* stb.c (ffestb_R10014_, ffestb_R10016_, ffestb_R10018_,
ffestb_R100110_): Restructure `for' loop for style.
ffestb_R100110_): Restructure `for' loop for style.
Tue Dec 23 14:58:04 1997 Craig Burley <burley@gnu.org>
* com.c (ffecom_gfrt_basictype):
(ffecom_gfrt_kindtype):
(ffecom_make_gfrt_):
(FFECOM_rttypeVOIDSTAR_): New return type `void *', for
the SIGNAL intrinsic.
* com-rt.def (FFECOM_rttypeSIGNAL): Now returns `void *'.
* intdoc.c: Replace `p' kind specifier with `7'.
* intrin.c (ffeintrin_check_, ffeintrin_init_0): Replace
`p' kind specifier with `7'.
* intrin.def (FFEINTRIN_impLOC, FFEINTRIN_impSIGNAL_func,
FFEINTRIN_impSIGNAL_subr): Replace `p' specifier with `7'.
Also, SIGNAL now returns a `void *' status, not `int'.
Mon Dec 22 12:41:07 1997 Craig Burley <burley@gnu.org>
* intrin.c (ffeintrin_init_0): Remove duplicate
check for `!'.
Sun Dec 14 02:49:58 1997 Craig Burley <burley@gnu.org>
* intrin.c (ffeintrin_init_0): Fix up indentation a bit.
Fix bug that prevented checking of arguments other
than the first.
* intdoc.c: Fix up indentation a bit.
Mon Dec 1 19:12:36 1997 Craig Burley <burley@gnu.org>
* intrin.c (ffeintrin_check_): Fix up indentation a bit more.
Sun Nov 30 22:22:22 1997 Craig Burley <burley@gnu.org>
* intdoc.c: Minor fix-ups.
* intrin.c (ffeintrin_check_): Fix up indentation a bit.
Fri Oct 10 13:00:48 1997 Craig Burley <burley@gnu.ai.mit.edu>
Fri Oct 10 13:00:48 1997 Craig Burley <burley@gnu.ai.mit.edu>
* ste.c (ffeste_begin_iterdo_): Fix loop setup so iteration
* ste.c (ffeste_begin_iterdo_): Fix loop setup so iteration
...
...
gcc/f/com-rt.def
View file @
6d433196
...
@@ -225,7 +225,7 @@ DEFGFRT (FFECOM_gfrtRENAME, "G77_rename_0", FFECOM_rttypeINTEGER_, "&a&a", FALSE
...
@@ -225,7 +225,7 @@ DEFGFRT (FFECOM_gfrtRENAME, "G77_rename_0", FFECOM_rttypeINTEGER_, "&a&a", FALSE
DEFGFRT (FFECOM_gfrtSECNDS, "G77_secnds_0", FFECOM_rttypeREAL_F2C_, "&f", FALSE, FALSE)
DEFGFRT (FFECOM_gfrtSECNDS, "G77_secnds_0", FFECOM_rttypeREAL_F2C_, "&f", FALSE, FALSE)
DEFGFRT (FFECOM_gfrtSECOND, "G77_second_0", FFECOM_rttypeREAL_F2C_, 0, FALSE, FALSE)
DEFGFRT (FFECOM_gfrtSECOND, "G77_second_0", FFECOM_rttypeREAL_F2C_, 0, FALSE, FALSE)
DEFGFRT (FFECOM_gfrtSIGN, "r_sign", FFECOM_rttypeREAL_F2C_, "&f&f", FALSE, FALSE)
DEFGFRT (FFECOM_gfrtSIGN, "r_sign", FFECOM_rttypeREAL_F2C_, "&f&f", FALSE, FALSE)
DEFGFRT (FFECOM_gfrtL_SIGNAL, "G77_signal_0", FFECOM_rttype
FTNINT
_, "&i0", FALSE, FALSE)
DEFGFRT (FFECOM_gfrtL_SIGNAL, "G77_signal_0", FFECOM_rttype
VOIDSTAR
_, "&i0", FALSE, FALSE)
DEFGFRT (FFECOM_gfrtSIN, "r_sin", FFECOM_rttypeREAL_F2C_, "&f", FALSE, FALSE)
DEFGFRT (FFECOM_gfrtSIN, "r_sin", FFECOM_rttypeREAL_F2C_, "&f", FALSE, FALSE)
DEFGFRT (FFECOM_gfrtSINH, "r_sinh", FFECOM_rttypeREAL_F2C_, "&f", FALSE, FALSE)
DEFGFRT (FFECOM_gfrtSINH, "r_sinh", FFECOM_rttypeREAL_F2C_, "&f", FALSE, FALSE)
DEFGFRT (FFECOM_gfrtSLEEP, "G77_sleep_0", FFECOM_rttypeVOID_, "&i", FALSE, FALSE)
DEFGFRT (FFECOM_gfrtSLEEP, "G77_sleep_0", FFECOM_rttypeVOID_, "&i", FALSE, FALSE)
...
...
gcc/f/com.c
View file @
6d433196
...
@@ -345,6 +345,7 @@ tree ffecom_f2c_ptr_to_ftnint_type_node;
...
@@ -345,6 +345,7 @@ tree ffecom_f2c_ptr_to_ftnint_type_node;
typedef
enum
typedef
enum
{
{
FFECOM_rttypeVOID_
,
FFECOM_rttypeVOID_
,
FFECOM_rttypeVOIDSTAR_
,
/* C's `void *' type. */
FFECOM_rttypeFTNINT_
,
/* f2c's `ftnint' type. */
FFECOM_rttypeFTNINT_
,
/* f2c's `ftnint' type. */
FFECOM_rttypeINTEGER_
,
/* f2c's `integer' type. */
FFECOM_rttypeINTEGER_
,
/* f2c's `integer' type. */
FFECOM_rttypeLONGINT_
,
/* f2c's `longint' type. */
FFECOM_rttypeLONGINT_
,
/* f2c's `longint' type. */
...
@@ -7448,6 +7449,10 @@ ffecom_make_gfrt_ (ffecomGfrt ix)
...
@@ -7448,6 +7449,10 @@ ffecom_make_gfrt_ (ffecomGfrt ix)
ttype
=
void_type_node
;
ttype
=
void_type_node
;
break
;
break
;
case
FFECOM_rttypeVOIDSTAR_
:
ttype
=
TREE_TYPE
(
null_pointer_node
);
/* `void *'. */
break
;
case
FFECOM_rttypeFTNINT_
:
case
FFECOM_rttypeFTNINT_
:
ttype
=
ffecom_f2c_ftnint_type_node
;
ttype
=
ffecom_f2c_ftnint_type_node
;
break
;
break
;
...
@@ -11632,6 +11637,7 @@ ffecom_gfrt_basictype (ffecomGfrt gfrt)
...
@@ -11632,6 +11637,7 @@ ffecom_gfrt_basictype (ffecomGfrt gfrt)
switch
(
ffecom_gfrt_type_
[
gfrt
])
switch
(
ffecom_gfrt_type_
[
gfrt
])
{
{
case
FFECOM_rttypeVOID_
:
case
FFECOM_rttypeVOID_
:
case
FFECOM_rttypeVOIDSTAR_
:
return
FFEINFO_basictypeNONE
;
return
FFEINFO_basictypeNONE
;
case
FFECOM_rttypeFTNINT_
:
case
FFECOM_rttypeFTNINT_
:
...
@@ -11678,6 +11684,7 @@ ffecom_gfrt_kindtype (ffecomGfrt gfrt)
...
@@ -11678,6 +11684,7 @@ ffecom_gfrt_kindtype (ffecomGfrt gfrt)
switch
(
ffecom_gfrt_type_
[
gfrt
])
switch
(
ffecom_gfrt_type_
[
gfrt
])
{
{
case
FFECOM_rttypeVOID_
:
case
FFECOM_rttypeVOID_
:
case
FFECOM_rttypeVOIDSTAR_
:
return
FFEINFO_kindtypeNONE
;
return
FFEINFO_kindtypeNONE
;
case
FFECOM_rttypeFTNINT_
:
case
FFECOM_rttypeFTNINT_
:
...
...
gcc/f/intdoc.c
View file @
6d433196
...
@@ -494,7 +494,7 @@ external procedure.\n\
...
@@ -494,7 +494,7 @@ external procedure.\n\
if
((
argi
[
0
]
==
'*'
)
if
((
argi
[
0
]
==
'*'
)
||
(
argi
[
0
]
==
'n'
)
||
(
argi
[
0
]
==
'n'
)
||
(
argi
[
0
]
==
'+'
)
||
(
argi
[
0
]
==
'+'
)
||
(
argi
[
0
]
==
'p'
))
||
(
argi
[
0
]
==
'p'
))
printf
(
"-1, @var{%s}-2, @dots{}, @var{%s}-n"
,
printf
(
"-1, @var{%s}-2, @dots{}, @var{%s}-n"
,
argc
,
argc
);
argc
,
argc
);
}
}
...
@@ -559,7 +559,7 @@ this intrinsic is valid only when used as the argument to\n\
...
@@ -559,7 +559,7 @@ this intrinsic is valid only when used as the argument to\n\
}
}
#if 0
#if 0
else if ((c[0] == 'I')
else if ((c[0] == 'I')
&& (c[1] == '
p
'))
&& (c[1] == '
7
'))
printf (", the exact type being wide enough to hold a pointer\n\
printf (", the exact type being wide enough to hold a pointer\n\
on the target system (typically @code{INTEGER(KIND=1)} or @code{INTEGER(KIND=4)}).\n\n");
on the target system (typically @code{INTEGER(KIND=1)} or @code{INTEGER(KIND=4)}).\n\n");
#endif
#endif
...
@@ -730,10 +730,6 @@ types of all the arguments.\n\n");
...
@@ -730,10 +730,6 @@ types of all the arguments.\n\n");
argument_name_string
(
imp
,
0
));
argument_name_string
(
imp
,
0
));
break
;
break
;
case
'p'
:
printf
(
"@code{INTEGER} wide enough to hold a pointer"
);
break
;
default:
default:
assert
(
"Ia"
==
NULL
);
assert
(
"Ia"
==
NULL
);
break
;
break
;
...
@@ -848,7 +844,7 @@ types of all the arguments.\n\n");
...
@@ -848,7 +844,7 @@ types of all the arguments.\n\n");
break
;
break
;
default:
default:
assert
(
"
N
1"
==
NULL
);
assert
(
"
E
1"
==
NULL
);
break
;
break
;
}
}
break
;
break
;
...
@@ -1209,10 +1205,6 @@ print_type_string (char *c)
...
@@ -1209,10 +1205,6 @@ print_type_string (char *c)
printf
(
"@code{INTEGER(KIND=%d)}"
,
(
kind
-
'0'
));
printf
(
"@code{INTEGER(KIND=%d)}"
,
(
kind
-
'0'
));
break
;
break
;
case
'p'
:
printf
(
"@code{INTEGER(KIND=0)}"
);
break
;
default:
default:
assert
(
"Ia"
==
NULL
);
assert
(
"Ia"
==
NULL
);
break
;
break
;
...
@@ -1336,7 +1328,7 @@ print_type_string (char *c)
...
@@ -1336,7 +1328,7 @@ print_type_string (char *c)
break
;
break
;
default:
default:
assert
(
"
arg
type?"
==
NULL
);
assert
(
"type?"
==
NULL
);
break
;
break
;
}
}
}
}
gcc/f/intdoc.in
View file @
6d433196
...
@@ -2190,12 +2190,13 @@ DEFDOC (SIGNAL_subr, "Muck with signal handling.", "\
...
@@ -2190,12 +2190,13 @@ DEFDOC (SIGNAL_subr, "Muck with signal handling.", "\
If
@var{
@2
@}
is
a
an
@code{
EXTERNAL
}
routine
,
arranges
for
it
to
be
If
@var{
@2
@}
is
a
an
@code{
EXTERNAL
}
routine
,
arranges
for
it
to
be
invoked
with
a
single
integer
argument
(
of
system
-
dependent
length
)
invoked
with
a
single
integer
argument
(
of
system
-
dependent
length
)
when
signal
@var{
@1
@}
occurs
.
when
signal
@var{
@1
@}
occurs
.
If
@var{
@
1
@}
is
an
integer
,
it
can
be
If
@var{
@
2
@}
is
an
integer
,
it
can
be
used
to
turn
off
handling
of
signal
@var{
@
2
@}
or
revert
to
its
default
used
to
turn
off
handling
of
signal
@var{
@
1
@}
or
revert
to
its
default
action
.
action
.
See
@code{
signal
(
2
)
}
.
See
@code{
signal
(
2
)
}
.
Note
that
@var{
@2
@}
will
be
called
using
C
conventions
,
so
its
value
in
Note
that
@var{
@2
@}
will
be
called
using
C
conventions
,
so
the
value
of
its
argument
in
Fortran
terms
Fortran
terms
is
obtained
by
applying
@code{
%
LOC
()
}
(
or
@var{
LOC
()
}
)
to
it
.
Fortran
terms
is
obtained
by
applying
@code{
%
LOC
()
}
(
or
@var{
LOC
()
}
)
to
it
.
The
value
returned
by
@code{
signal
(
2
)
}
is
written
to
@var{
@3
@}
,
if
The
value
returned
by
@code{
signal
(
2
)
}
is
written
to
@var{
@3
@}
,
if
...
@@ -2205,24 +2206,106 @@ Otherwise the return value is ignored.
...
@@ -2205,24 +2206,106 @@ Otherwise the return value is ignored.
Some
non
-
GNU
implementations
of
Fortran
provide
this
intrinsic
as
Some
non
-
GNU
implementations
of
Fortran
provide
this
intrinsic
as
only
a
function
,
not
as
a
subroutine
,
or
do
not
support
the
only
a
function
,
not
as
a
subroutine
,
or
do
not
support
the
(
optional
)
@var{
@3
@}
argument
.
(
optional
)
@var{
@3
@}
argument
.
@emph{
Warning
:}
Use
of
the
@code
{
libf2c
}
run
-
time
library
function
@samp
{
signal_
}
directly
(
such
as
via
@samp
{
EXTERNAL
SIGNAL
})
requires
use
of
the
@code
{
%
VAL
()}
construct
to
pass
an
@code
{
INTEGER
}
value
(
such
as
@samp
{
SIG_IGN
}
or
@samp
{
SIG_DFL
})
for
the
@var
{
@2
@
}
argument
.
However
,
while
@samp
{
CALL
SIGNAL
(
@var
{
signum
},
%
VAL
(
SIG_IGN
))}
works
when
@samp
{
SIGNAL
}
is
treated
as
an
external
procedure
(
and
resolves
,
at
link
time
,
to
@code
{
libf2c
}
'
s
@samp
{
signal_
}
routine
),
this
construct
is
not
valid
when
@samp
{
SIGNAL
}
is
recognized
as
the
intrinsic
of
that
name
.
Therefore
,
for
maximum
portability
and
reliability
,
code
such
references
to
the
@samp
{
SIGNAL
}
facility
as
follows
:
@smallexample
INTRINSIC
SIGNAL
@dots
{}
CALL
SIGNAL
(
@var
{
signum
},
SIG_IGN
)
@end
smallexample
@code
{
g77
}
will
compile
such
a
call
correctly
,
while
other
compilers
will
generally
either
do
so
as
well
or
reject
the
@samp
{
INTRINSIC
SIGNAL
}
statement
via
a
diagnostic
,
allowing
you
to
take
appropriate
action
.
")
")
DEFDOC (SIGNAL_func, "
Muck
with
signal
handling
.
", "
\
DEFDOC (SIGNAL_func, "
Muck
with
signal
handling
.
", "
\
If
@var
{
@2
@
}
is
a
an
@code
{
EXTERNAL
}
routine
,
arranges
for
it
to
be
If
@var
{
@2
@
}
is
a
an
@code
{
EXTERNAL
}
routine
,
arranges
for
it
to
be
invoked
with
a
single
integer
argument
(
of
system
-
dependent
length
)
invoked
with
a
single
integer
argument
(
of
system
-
dependent
length
)
when
signal
@var
{
@1
@
}
occurs
.
when
signal
@var
{
@1
@
}
occurs
.
If
@var{
@
1
@}
is
an
integer
,
it
can
be
If
@var
{
@
2
@
}
is
an
integer
,
it
can
be
used
to
turn
off
handling
of
signal
@var{
@
2
@}
or
revert
to
its
default
used
to
turn
off
handling
of
signal
@var
{
@
1
@
}
or
revert
to
its
default
action
.
action
.
See
@code
{
signal
(
2
)}.
See
@code
{
signal
(
2
)}.
Note
that
@var{
@2
@}
will
be
called
using
C
conventions
,
so
its
value
in
Note
that
@var
{
@2
@
}
will
be
called
using
C
conventions
,
Fortran
terms
is
obtained
by
applying
@code{
%
LOC
()
}
(
or
@var{
LOC
()
}
)
to
it
.
so
the
value
of
its
argument
in
Fortran
terms
is
obtained
by
applying
@code
{
%
LOC
()}
(
or
@var
{
LOC
()})
to
it
.
The
value
returned
by
@code
{
signal
(
2
)}
is
returned
.
The
value
returned
by
@code
{
signal
(
2
)}
is
returned
.
Due
to
the
side
effects
performed
by
this
intrinsic
,
the
function
Due
to
the
side
effects
performed
by
this
intrinsic
,
the
function
form
is
not
recommended
.
form
is
not
recommended
.
@emph
{
Warning
:
}
If
the
returned
value
is
stored
in
an
@code
{
INTEGER
(
KIND
=
1
)}
(
default
@code
{
INTEGER
})
argument
,
truncation
of
the
original
return
value
occurs
on
some
systems
(
such
as
Alphas
,
which
have
64
-
bit
pointers
but
32
-
bit
default
integers
),
with
no
warning
issued
by
@code
{
g77
}
under
normal
circumstances
.
Therefore
,
the
following
code
fragment
might
silently
fail
on
some
systems
:
@smallexample
INTEGER
RTN
EXTERNAL
MYHNDL
RTN
=
SIGNAL
(
@var
{
signum
},
MYHNDL
)
@dots
{}
!
Restore
original
handler
:
RTN
=
SIGNAL
(
@var
{
signum
},
RTN
)
@end
smallexample
The
reason
for
the
failure
is
that
@samp
{
RTN
}
might
not
hold
all
the
information
on
the
original
handler
for
the
signal
,
thus
restoring
an
invalid
handler
.
This
bug
could
manifest
itself
as
a
spurious
run
-
time
failure
at
an
arbitrary
point
later
during
the
program
'
s
execution
,
for
example
.
@emph
{
Warning
:
}
Use
of
the
@code
{
libf2c
}
run
-
time
library
function
@samp
{
signal_
}
directly
(
such
as
via
@samp
{
EXTERNAL
SIGNAL
})
requires
use
of
the
@code
{
%
VAL
()}
construct
to
pass
an
@code
{
INTEGER
}
value
(
such
as
@samp
{
SIG_IGN
}
or
@samp
{
SIG_DFL
})
for
the
@var
{
@2
@
}
argument
.
However
,
while
@samp
{
RTN
=
SIGNAL
(
@var
{
signum
},
%
VAL
(
SIG_IGN
))}
works
when
@samp
{
SIGNAL
}
is
treated
as
an
external
procedure
(
and
resolves
,
at
link
time
,
to
@code
{
libf2c
}
'
s
@samp
{
signal_
}
routine
),
this
construct
is
not
valid
when
@samp
{
SIGNAL
}
is
recognized
as
the
intrinsic
of
that
name
.
Therefore
,
for
maximum
portability
and
reliability
,
code
such
references
to
the
@samp
{
SIGNAL
}
facility
as
follows
:
@smallexample
INTRINSIC
SIGNAL
@dots
{}
RTN
=
SIGNAL
(
@var
{
signum
},
SIG_IGN
)
@end
smallexample
@code
{
g77
}
will
compile
such
a
call
correctly
,
while
other
compilers
will
generally
either
do
so
as
well
or
reject
the
@samp
{
INTRINSIC
SIGNAL
}
statement
via
a
diagnostic
,
allowing
you
to
take
appropriate
action
.
")
")
DEFDOC (KILL_func, "
Signal
a
process
.
", "
\
DEFDOC (KILL_func, "
Signal
a
process
.
", "
\
...
...
gcc/f/intrin.c
View file @
6d433196
...
@@ -398,6 +398,10 @@ ffeintrin_check_ (ffeintrinImp imp, ffebldOp op,
...
@@ -398,6 +398,10 @@ ffeintrin_check_ (ffeintrinImp imp, ffebldOp op,
case
6
:
case
6
:
akt
=
3
;
akt
=
3
;
break
;
break
;
case
7
:
akt
=
ffecom_pointer_kind
();
break
;
}
}
}
}
okay
&=
anynum
||
(
ffeinfo_kindtype
(
i
)
==
akt
);
okay
&=
anynum
||
(
ffeinfo_kindtype
(
i
)
==
akt
);
...
@@ -593,6 +597,10 @@ ffeintrin_check_ (ffeintrinImp imp, ffebldOp op,
...
@@ -593,6 +597,10 @@ ffeintrin_check_ (ffeintrinImp imp, ffebldOp op,
case
6
:
case
6
:
kt
=
3
;
kt
=
3
;
break
;
break
;
case
7
:
kt
=
ffecom_pointer_kind
();
break
;
}
}
}
}
break
;
break
;
...
@@ -603,10 +611,6 @@ ffeintrin_check_ (ffeintrinImp imp, ffebldOp op,
...
@@ -603,10 +611,6 @@ ffeintrin_check_ (ffeintrinImp imp, ffebldOp op,
kt
=
1
;
kt
=
1
;
break
;
break
;
case
'p'
:
kt
=
ffecom_pointer_kind
();
break
;
case
'='
:
case
'='
:
need_col
=
TRUE
;
need_col
=
TRUE
;
/* Fall through. */
/* Fall through. */
...
@@ -991,6 +995,10 @@ ffeintrin_check_ (ffeintrinImp imp, ffebldOp op,
...
@@ -991,6 +995,10 @@ ffeintrin_check_ (ffeintrinImp imp, ffebldOp op,
case
6
:
case
6
:
akt
=
3
;
akt
=
3
;
break
;
break
;
case
7
:
akt
=
ffecom_pointer_kind
();
break
;
}
}
}
}
okay
&=
anynum
||
(
ffeinfo_kindtype
(
i
)
==
akt
);
okay
&=
anynum
||
(
ffeinfo_kindtype
(
i
)
==
akt
);
...
@@ -1569,14 +1577,14 @@ ffeintrin_init_0 ()
...
@@ -1569,14 +1577,14 @@ ffeintrin_init_0 ()
if
((
c
[
0
]
!=
'-'
)
if
((
c
[
0
]
!=
'-'
)
&&
(
c
[
0
]
!=
'A'
)
&&
(
c
[
0
]
!=
'A'
)
&&
(
c
[
0
]
!=
'C'
)
&&
(
c
[
0
]
!=
'C'
)
&&
(
c
[
0
]
!=
'I'
)
&&
(
c
[
0
]
!=
'I'
)
&&
(
c
[
0
]
!=
'L'
)
&&
(
c
[
0
]
!=
'L'
)
&&
(
c
[
0
]
!=
'R'
)
&&
(
c
[
0
]
!=
'R'
)
&&
(
c
[
0
]
!=
'B'
)
&&
(
c
[
0
]
!=
'B'
)
&&
(
c
[
0
]
!=
'F'
)
&&
(
c
[
0
]
!=
'F'
)
&&
(
c
[
0
]
!=
'N'
)
&&
(
c
[
0
]
!=
'N'
)
&&
(
c
[
0
]
!=
'S'
))
&&
(
c
[
0
]
!=
'S'
))
{
{
fprintf
(
stderr
,
"%s: bad return-base-type
\n
"
,
fprintf
(
stderr
,
"%s: bad return-base-type
\n
"
,
ffeintrin_imps_
[
i
].
name
);
ffeintrin_imps_
[
i
].
name
);
...
@@ -1584,10 +1592,9 @@ ffeintrin_init_0 ()
...
@@ -1584,10 +1592,9 @@ ffeintrin_init_0 ()
}
}
if
((
c
[
1
]
!=
'-'
)
if
((
c
[
1
]
!=
'-'
)
&&
(
c
[
1
]
!=
'='
)
&&
(
c
[
1
]
!=
'='
)
&&
((
c
[
1
]
<
'1'
)
&&
((
c
[
1
]
<
'1'
)
||
(
c
[
1
]
>
'9'
))
||
(
c
[
1
]
>
'9'
))
&&
(
c
[
1
]
!=
'C'
)
&&
(
c
[
1
]
!=
'C'
))
&&
(
c
[
1
]
!=
'p'
))
{
{
fprintf
(
stderr
,
"%s: bad return-kind-type
\n
"
,
fprintf
(
stderr
,
"%s: bad return-kind-type
\n
"
,
ffeintrin_imps_
[
i
].
name
);
ffeintrin_imps_
[
i
].
name
);
...
@@ -1613,8 +1620,8 @@ ffeintrin_init_0 ()
...
@@ -1613,8 +1620,8 @@ ffeintrin_init_0 ()
}
}
if
((
c
[
colon
+
1
]
!=
'-'
)
if
((
c
[
colon
+
1
]
!=
'-'
)
&&
(
c
[
colon
+
1
]
!=
'*'
)
&&
(
c
[
colon
+
1
]
!=
'*'
)
&&
((
c
[
colon
+
1
]
<
'0'
)
&&
((
c
[
colon
+
1
]
<
'0'
)
||
(
c
[
colon
+
1
]
>
'9'
)))
||
(
c
[
colon
+
1
]
>
'9'
)))
{
{
fprintf
(
stderr
,
"%s: bad COL-spec
\n
"
,
fprintf
(
stderr
,
"%s: bad COL-spec
\n
"
,
ffeintrin_imps_
[
i
].
name
);
ffeintrin_imps_
[
i
].
name
);
...
@@ -1625,7 +1632,7 @@ ffeintrin_init_0 ()
...
@@ -1625,7 +1632,7 @@ ffeintrin_init_0 ()
{
{
while
((
c
[
0
]
!=
'='
)
while
((
c
[
0
]
!=
'='
)
&&
(
c
[
0
]
!=
','
)
&&
(
c
[
0
]
!=
','
)
&&
(
c
[
0
]
!=
'\0'
))
&&
(
c
[
0
]
!=
'\0'
))
++
c
;
++
c
;
if
(
c
[
0
]
!=
'='
)
if
(
c
[
0
]
!=
'='
)
{
{
...
@@ -1635,28 +1642,27 @@ ffeintrin_init_0 ()
...
@@ -1635,28 +1642,27 @@ ffeintrin_init_0 ()
}
}
if
((
c
[
1
]
==
'?'
)
if
((
c
[
1
]
==
'?'
)
||
(
c
[
1
]
==
'!'
)
||
(
c
[
1
]
==
'!'
)
||
(
c
[
1
]
==
'!'
)
||
(
c
[
1
]
==
'+'
)
||
(
c
[
1
]
==
'+'
)
||
(
c
[
1
]
==
'*'
)
||
(
c
[
1
]
==
'*'
)
||
(
c
[
1
]
==
'n'
)
||
(
c
[
1
]
==
'n'
)
||
(
c
[
1
]
==
'p'
))
||
(
c
[
1
]
==
'p'
))
++
c
;
++
c
;
if
(((
c
[
1
]
!=
'-'
)
if
(((
c
[
1
]
!=
'-'
)
&&
(
c
[
1
]
!=
'A'
)
&&
(
c
[
1
]
!=
'A'
)
&&
(
c
[
1
]
!=
'C'
)
&&
(
c
[
1
]
!=
'C'
)
&&
(
c
[
1
]
!=
'I'
)
&&
(
c
[
1
]
!=
'I'
)
&&
(
c
[
1
]
!=
'L'
)
&&
(
c
[
1
]
!=
'L'
)
&&
(
c
[
1
]
!=
'R'
)
&&
(
c
[
1
]
!=
'R'
)
&&
(
c
[
1
]
!=
'B'
)
&&
(
c
[
1
]
!=
'B'
)
&&
(
c
[
1
]
!=
'F'
)
&&
(
c
[
1
]
!=
'F'
)
&&
(
c
[
1
]
!=
'N'
)
&&
(
c
[
1
]
!=
'N'
)
&&
(
c
[
1
]
!=
'S'
)
&&
(
c
[
1
]
!=
'S'
)
&&
(
c
[
1
]
!=
'g'
)
&&
(
c
[
1
]
!=
'g'
)
&&
(
c
[
1
]
!=
's'
))
&&
(
c
[
1
]
!=
's'
))
||
((
c
[
2
]
!=
'*'
)
||
((
c
[
2
]
!=
'*'
)
&&
((
c
[
2
]
<
'1'
)
&&
((
c
[
2
]
<
'1'
)
||
(
c
[
2
]
>
'9'
))
||
(
c
[
2
]
>
'9'
))
&&
(
c
[
2
]
!=
'A'
)))
&&
(
c
[
2
]
!=
'A'
)))
{
{
fprintf
(
stderr
,
"%s: bad arg-type
\n
"
,
fprintf
(
stderr
,
"%s: bad arg-type
\n
"
,
ffeintrin_imps_
[
i
].
name
);
ffeintrin_imps_
[
i
].
name
);
...
@@ -1693,13 +1699,13 @@ ffeintrin_init_0 ()
...
@@ -1693,13 +1699,13 @@ ffeintrin_init_0 ()
++
c
;
++
c
;
if
((
c
[
3
]
==
'&'
)
if
((
c
[
3
]
==
'&'
)
||
(
c
[
3
]
==
'i'
)
||
(
c
[
3
]
==
'i'
)
||
(
c
[
3
]
==
'w'
)
||
(
c
[
3
]
==
'w'
)
||
(
c
[
3
]
==
'x'
))
||
(
c
[
3
]
==
'x'
))
++
c
;
++
c
;
if
(
c
[
3
]
==
','
)
if
(
c
[
3
]
==
','
)
{
{
c
+=
4
;
c
+=
4
;
break
;
continue
;
}
}
if
(
c
[
3
]
!=
'\0'
)
if
(
c
[
3
]
!=
'\0'
)
{
{
...
...
gcc/f/intrin.def
View file @
6d433196
...
@@ -3038,8 +3038,8 @@ DEFSPEC (NONE,
...
@@ -3038,8 +3038,8 @@ DEFSPEC (NONE,
3 (Same size as CHARACTER*1)
3 (Same size as CHARACTER*1)
4 (Twice the size of 2)
4 (Twice the size of 2)
6 (Twice the size as 3)
6 (Twice the size as 3)
7 (Same size as `char *')
C Like 1 (F77), except (F90), if COL is COMPLEX, uses kind type of COL
C Like 1 (F77), except (F90), if COL is COMPLEX, uses kind type of COL
p ffecom_pointer_kind_
<return-modifier> is:
<return-modifier> is:
...
@@ -3309,7 +3309,7 @@ DEFIMP (LONG, "LONG", ,,, "I1:-:A=I6")
...
@@ -3309,7 +3309,7 @@ DEFIMP (LONG, "LONG", ,,, "I1:-:A=I6")
DEFIMP (LSTAT_func, "LSTAT_func", LSTAT,,, "I1:-:File=A1,SArray=I1(13)w")
DEFIMP (LSTAT_func, "LSTAT_func", LSTAT,,, "I1:-:File=A1,SArray=I1(13)w")
DEFIMP (LSTAT_subr, "LSTAT_subr", LSTAT,,, "--:-:File=A1,SArray=I1(13)w,Status=?I1w")
DEFIMP (LSTAT_subr, "LSTAT_subr", LSTAT,,, "--:-:File=A1,SArray=I1(13)w,Status=?I1w")
DEFIMP (LTIME, "LTIME", LTIME,,, "--:-:STime=I1,TArray=I1(9)w")
DEFIMP (LTIME, "LTIME", LTIME,,, "--:-:STime=I1,TArray=I1(9)w")
DEFIMP (LOC, "LOC", ,,, "I
p
:-:Entity=-*&&")
DEFIMP (LOC, "LOC", ,,, "I
7
:-:Entity=-*&&")
DEFIMP (LSHIFT, "LSHIFT", ,,, "I=:0:I=I*,Shift=I*")
DEFIMP (LSHIFT, "LSHIFT", ,,, "I=:0:I=I*,Shift=I*")
DEFIMP (MCLOCK, "MCLOCK", MCLOCK,,, "I1:-:")
DEFIMP (MCLOCK, "MCLOCK", MCLOCK,,, "I1:-:")
DEFIMP (MCLOCK8, "MCLOCK8", MCLOCK,,, "I2:-:")
DEFIMP (MCLOCK8, "MCLOCK8", MCLOCK,,, "I2:-:")
...
@@ -3326,8 +3326,8 @@ DEFIMP (SECNDS, "SECNDS", SECNDS,,, "R1:-:T=R1")
...
@@ -3326,8 +3326,8 @@ DEFIMP (SECNDS, "SECNDS", SECNDS,,, "R1:-:T=R1")
DEFIMP (SECOND_func, "SECOND_func", SECOND,SECOND,, "R1:-:")
DEFIMP (SECOND_func, "SECOND_func", SECOND,SECOND,, "R1:-:")
DEFIMP (SECOND_subr, "SECOND_subr", SECOND,,, "--:-:Seconds=R1w")
DEFIMP (SECOND_subr, "SECOND_subr", SECOND,,, "--:-:Seconds=R1w")
DEFIMP (SHORT, "SHORT", ,,, "I6:-:A=I*")
DEFIMP (SHORT, "SHORT", ,,, "I6:-:A=I*")
DEFIMP (SIGNAL_func, "SIGNAL_func", L_SIGNAL,,, "I
1
:-:Number=I*,Handler=s*")
DEFIMP (SIGNAL_func, "SIGNAL_func", L_SIGNAL,,, "I
7
:-:Number=I*,Handler=s*")
DEFIMP (SIGNAL_subr, "SIGNAL_subr", L_SIGNAL,,, "--:-:Number=I*,Handler=s*,Status=?I
1
w")
DEFIMP (SIGNAL_subr, "SIGNAL_subr", L_SIGNAL,,, "--:-:Number=I*,Handler=s*,Status=?I
7
w")
DEFIMP (SLEEP, "SLEEP", SLEEP,,, "--:-:Seconds=I1")
DEFIMP (SLEEP, "SLEEP", SLEEP,,, "--:-:Seconds=I1")
DEFIMP (SRAND, "SRAND", SRAND,,, "--:-:Seed=I*")
DEFIMP (SRAND, "SRAND", SRAND,,, "--:-:Seed=I*")
DEFIMP (STAT_func, "STAT_func", STAT,,, "I1:-:File=A1,SArray=I1(13)w")
DEFIMP (STAT_func, "STAT_func", STAT,,, "I1:-:File=A1,SArray=I1(13)w")
...
...
gcc/f/news.texi
View file @
6d433196
...
@@ -27,6 +27,15 @@ involve a combination of these elements.
...
@@ -27,6 +27,15 @@ involve a combination of these elements.
@heading
In
0
.
5
.
22
:
@heading
In
0
.
5
.
22
:
@itemize
@bullet
@itemize
@bullet
@item
@item
Fix
@code
{
SIGNAL
}
intrinsic
so
it
offers
portable
support
for
64
-
bit
systems
(
such
as
Digital
Alphas
running
GNU
/
Linux
).
@item
Support
@samp
{
FORMAT
(
I
<
@var
{
expr
}
>
)}
when
@var
{
expr
}
is
a
compile
-
time
constant
@code
{
INTEGER
}
expression
.
@item
Fix
code
generation
for
iterative
@code
{
DO
}
loops
that
Fix
code
generation
for
iterative
@code
{
DO
}
loops
that
have
one
or
more
references
to
the
iteration
variable
,
have
one
or
more
references
to
the
iteration
variable
,
or
to
aliases
of
it
,
in
their
control
expressions
.
or
to
aliases
of
it
,
in
their
control
expressions
.
...
...
libf2c/ChangeLog
View file @
6d433196
Tue Dec 23 22:56:01 1997 Craig Burley <burley@gnu.org>
* libF77/signal_.c (G77_signal_0): Return type is
now `void *', to cope with returning previous signal
handler on 64-bit systems like Alphas.
* f2cext.c (signal_): Changed accordingly.
Tue Sep 30 00:41:39 1997 Craig Burley <burley@gnu.ai.mit.edu>
Tue Sep 30 00:41:39 1997 Craig Burley <burley@gnu.ai.mit.edu>
Do a better job of printing the offending FORMAT string
Do a better job of printing the offending FORMAT string
...
...
libf2c/f2cext.c
View file @
6d433196
...
@@ -18,7 +18,7 @@ Boston, MA 02111-1307, USA. */
...
@@ -18,7 +18,7 @@ Boston, MA 02111-1307, USA. */
#include <f2c.h>
#include <f2c.h>
typedef
int
(
*
sig_proc
)(
int
);
typedef
void
*
sig_proc
;
/* For now, this will have to do. */
#ifdef Labort
#ifdef Labort
int
abort_
(
void
)
{
int
abort_
(
void
)
{
...
@@ -98,8 +98,8 @@ ftnint iargc_ (void) {
...
@@ -98,8 +98,8 @@ ftnint iargc_ (void) {
#endif
#endif
#ifdef Lsignal
#ifdef Lsignal
ftnint
signal_
(
integer
*
sigp
,
sig_proc
proc
)
{
void
*
signal_
(
integer
*
sigp
,
sig_proc
proc
)
{
extern
ftnint
G77_signal_0
(
integer
*
sigp
,
sig_proc
proc
);
extern
void
*
G77_signal_0
(
integer
*
sigp
,
sig_proc
proc
);
return
G77_signal_0
(
sigp
,
proc
);
return
G77_signal_0
(
sigp
,
proc
);
}
}
#endif
#endif
...
...
libf2c/libF77/signal_.c
View file @
6d433196
...
@@ -2,13 +2,16 @@
...
@@ -2,13 +2,16 @@
#include "signal1.h"
#include "signal1.h"
#ifdef KR_headers
#ifdef KR_headers
ftnint
G77_signal_0
(
sigp
,
proc
)
integer
*
sigp
;
sig_pf
proc
;
void
*
G77_signal_0
(
sigp
,
proc
)
integer
*
sigp
;
sig_pf
proc
;
#else
#else
ftnint
G77_signal_0
(
integer
*
sigp
,
sig_pf
proc
)
void
*
G77_signal_0
(
integer
*
sigp
,
sig_pf
proc
)
#endif
#endif
{
{
int
sig
;
int
sig
;
sig
=
(
int
)
*
sigp
;
sig
=
(
int
)
*
sigp
;
return
(
ftnint
)
signal
(
sig
,
proc
);
return
(
void
*
)
signal
(
sig
,
proc
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment