aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorCraig Burley <craig@jcb-sc.com>1999-05-12 04:38:14 +0000
committerCraig Burley <burley@gcc.gnu.org>1999-05-12 00:38:14 -0400
commit41af162ca78944f562a35c32287de901abd9c84f (patch)
treef7c4558b2172417e3b2b03bb7c224145bce433f2 /gcc
parent7d9a55eb5b7415e6ccdfa4cfb87c1dfdacff2379 (diff)
downloadgcc-41af162ca78944f562a35c32287de901abd9c84f.zip
gcc-41af162ca78944f562a35c32287de901abd9c84f.tar.gz
gcc-41af162ca78944f562a35c32287de901abd9c84f.tar.bz2
disable maintenance of errno
From-SVN: r26897
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/expr.c2
-rw-r--r--gcc/f/ChangeLog6
-rw-r--r--gcc/f/com.c1
-rw-r--r--gcc/f/news.texi7
-rw-r--r--gcc/flags.h5
-rw-r--r--gcc/toplev.c5
7 files changed, 32 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 74ea41b..89a5ef3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+Wed May 12 07:27:31 1999 Craig Burley <craig@jcb-sc.com>
+
+ Allow front end (like g77's) to override maintenance of errno:
+ * expr.c (expand_builtin): Bother with errno only if
+ flag_errno_math.
+ * flags.h: Declare flag_errno_math.
+ * toplev.c: Define flag_errno_math.
+
Tue May 11 23:55:49 1999 Jeffrey A Law (law@cygnus.com)
* fixproto: Change "mkdir" calls to "mkdir -p"
diff --git a/gcc/expr.c b/gcc/expr.c
index 828462f..17fa1be 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -8757,7 +8757,7 @@ expand_builtin (exp, target, subtarget, mode, ignore)
/* Check the results by default. But if flag_fast_math is turned on,
then assume sqrt will always be called with valid arguments. */
- if (! flag_fast_math)
+ if (flag_errno_math && ! flag_fast_math)
{
/* Don't define the builtin FP instructions
if your machine is not IEEE. */
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog
index 83c9b41..265a565 100644
--- a/gcc/f/ChangeLog
+++ b/gcc/f/ChangeLog
@@ -1,3 +1,9 @@
+Wed May 12 07:30:05 1999 Craig Burley <craig@jcb-sc.com>
+
+ * com.c (lang_init_options): Disable back end's maintenance
+ of errno.
+ * news.texi: Document dropping of errno.
+
1999-05-10 18:21 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
* lang-specs.h: Pass -$ to the preprocessor.
diff --git a/gcc/f/com.c b/gcc/f/com.c
index 0329c87..5af3522 100644
--- a/gcc/f/com.c
+++ b/gcc/f/com.c
@@ -14958,6 +14958,7 @@ lang_init_options ()
flag_move_all_movables = 1;
flag_reduce_all_givs = 1;
flag_argument_noalias = 2;
+ flag_errno_math = 0;
}
void
diff --git a/gcc/f/news.texi b/gcc/f/news.texi
index 7620c78..9b29318 100644
--- a/gcc/f/news.texi
+++ b/gcc/f/news.texi
@@ -9,7 +9,7 @@
@c in the standalone derivations of this file (e.g. NEWS).
@set copyrights-news 1995-1999
-@set last-update-news 1999-05-10
+@set last-update-news 1999-05-12
@include root.texi
@@ -273,6 +273,11 @@ that are not in @code{EQUIVALENCE} areas
and not @code{SAVE}'d.
@end ifclear
+@item
+@code{g77} no longer generates code to maintain @code{errno},
+a C-language concept,
+when performing operations such as the @code{SqRt} intrinsic.
+
@ifclear USERVISONLY
@item
A substantial portion of the @code{g77} front end's code-generation component
diff --git a/gcc/flags.h b/gcc/flags.h
index 2c0ed40..df73698 100644
--- a/gcc/flags.h
+++ b/gcc/flags.h
@@ -291,6 +291,11 @@ extern int flag_volatile_static;
extern int flag_fast_math;
+/* Nonzero means the front end generally wants `errno' maintained by math
+ operations, like built-in SQRT, unless overridden by flag_fast_math. */
+
+extern int flag_errno_math;
+
/* Nonzero means to run loop optimizations twice. */
extern int flag_rerun_loop_opt;
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 6920b26..7a1277c 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -558,6 +558,11 @@ int flag_no_peephole = 0;
int flag_fast_math = 0;
+/* Nonzero means the front end generally wants `errno' maintained by math
+ operations, like built-in SQRT, unless overridden by flag_fast_math. */
+
+int flag_errno_math = 1;
+
/* Nonzero means all references through pointers are volatile. */
int flag_volatile;