summaryrefslogtreecommitdiff
path: root/gcc/toplev.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2005-02-24 09:24:17 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2005-02-24 09:24:17 +0000
commit45b9d334696f9936957a7a9cc8dd64882b7ff3f5 (patch)
tree42cf31816d33415d61bb35885b0514d50dcdc5b0 /gcc/toplev.c
parent80951d2e57660f3260ec1f7028ffd2314233d434 (diff)
downloadgcc-45b9d334696f9936957a7a9cc8dd64882b7ff3f5.tar.gz
PR middle-end/18902
* c-opts.c (c_common_post_options): Set flag_complex_method to 2 for c99. * common.opt (fcx-limited-range): New. * opts.c (set_fast_math_flags): Set flag_cx_limited_range. * toplev.c (flag_complex_method): Initialize to 1. (process_options): Set flag_complex_method to 0 if flag_cx_limited_range. * doc/invoke.texi (-fcx-limited-range): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95493 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r--gcc/toplev.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index ae564f05f10..e7947eba2eb 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -269,7 +269,7 @@ int flag_pcc_struct_return = DEFAULT_PCC_STRUCT_RETURN;
1 means wide ranges of inputs must work for complex divide.
2 means C99-like requirements for complex multiply and divide. */
-int flag_complex_method = 0;
+int flag_complex_method = 1;
/* Nonzero means that we don't want inlining by virtue of -fno-inline,
not just because the tree inliner turned us off. */
@@ -1948,6 +1948,10 @@ process_options (void)
/* The presence of IEEE signaling NaNs, implies all math can trap. */
if (flag_signaling_nans)
flag_trapping_math = 1;
+
+ /* With -fcx-limited-range, we do cheap and quick complex arithmetic. */
+ if (flag_cx_limited_range)
+ flag_complex_method = 0;
}
/* Initialize the compiler back end. */