The documentation for -fcx-limited-range states: @item -fcx-limited-range @opindex fcx-limited-range When enabled, this option states that a range reduction step is not needed when performing complex division. The default is @option{-fno-cx-limited-range}, but is enabled by @option{-ffast-math}. This option controls the default setting of the ISO C99 @code{CX_LIMITED_RANGE} pragma. Nevertheless, the option applies to all languages. However, -fcx-limited-range (and the CX_LIMITED_RANGE pragma) affect multiplication and absolute value as well as division, since it's not only range reduction but also handling of FP exceptions. See Section 7.3.4 and Annex G in the C99 standard (assuming the FCD is close to the actual standard). At least for multiplication, it seems the actual code is correct, i.e. a call to mulsc in libgcc is done without -fcx-limited-range, so I guess it's only the documentation that needs to be updated.
CC:ing jsm to confirm this bug as people on IRC tell me you're the person that knows about complex in C99. :)
Subject: Re: Documentation incorrect for -fcx-limited-range The bug report appears correct, though you should be referring to N1256 <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf>, the C99 standard with TC1, TC2 and TC3 integrated, rather than to ancient drafts from before C99 was released.
Patch here: http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00788.html
Subject: Bug 35162 Author: jb Date: Mon Feb 25 19:16:37 2008 New Revision: 132635 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=132635 Log: 2008-02-25 Janne Blomqvist <jb@gcc.gnu.org> PR c/35162 * doc/invoke.texi (-fcx-limited-range): Correct to be in line with actual behaviour and C99. Modified: trunk/gcc/ChangeLog trunk/gcc/doc/invoke.texi
Fixed on trunk; closing.