[parisc-linux] glibc-2.3.3: a warning with gcc-3.3 become an
error with gcc-3.5
Carlos O'Donell
carlos at baldric.uwo.ca
Tue Mar 2 12:50:50 MST 2004
Joel,
Could you lookup the C99 specification please?
> --- ./feupdateenv.c.orig 2004-03-02 15:21:25.959085856 +0100
> +++ ./feupdateenv.c 2004-03-02 07:53:27.938166120 +0100
> @@ -28,11 +28,16 @@
> /* Get the current exception status. */
> __asm__ ("fstd %%fr0,0(%1)" : "=m" (*sw) : "r" (sw));
> sw[0] &= FE_ALL_EXCEPT;
> - envp->__status_word = envp->__status_word | sw[0];
> +/* envp->__status_word = envp->__status_word | sw[0]; */
This is required to set the flags. Please review the specfications.
> /* Install new environment. */
> fesetenv (envp);
>
> + /* Raise the safed exception. Incidently for us the implementation
> + defined format of the values in objects of type fexcept_t is the
> + same as the ones specified using the FE_* constants. */
> + feraiseexcept (sw[0]);
> +
AFAIK, this is not correct, the spec says that it will be an OR of the
raised exceptions, e.g. an OR of the raised flags.
Calling feraiseexcept could fault the program.
> /* Success. */
> return 0;
> }
c.
More information about the parisc-linux
mailing list