From 6dac55416d33b6c726f7de6869603adc8f665db4 Mon Sep 17 00:00:00 2001 From: burley Date: Wed, 12 May 1999 04:38:14 +0000 Subject: [PATCH] disable maintenance of errno git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26897 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 8 ++++++++ gcc/expr.c | 2 +- gcc/f/ChangeLog | 6 ++++++ gcc/f/com.c | 1 + gcc/f/news.texi | 7 ++++++- gcc/flags.h | 5 +++++ gcc/toplev.c | 5 +++++ 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 + + 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 + + * 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 * 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; -- 2.7.4