disable maintenance of errno
authorburley <burley@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 May 1999 04:38:14 +0000 (04:38 +0000)
committerburley <burley@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 May 1999 04:38:14 +0000 (04:38 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26897 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/expr.c
gcc/f/ChangeLog
gcc/f/com.c
gcc/f/news.texi
gcc/flags.h
gcc/toplev.c

index 74ea41b..89a5ef3 100644 (file)
@@ -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"
index 828462f..17fa1be 100644 (file)
@@ -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.  */
index 83c9b41..265a565 100644 (file)
@@ -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.
index 0329c87..5af3522 100644 (file)
@@ -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
index 7620c78..9b29318 100644 (file)
@@ -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
index 2c0ed40..df73698 100644 (file)
@@ -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;
index 6920b26..7a1277c 100644 (file)
@@ -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;