diff options
author | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2020-03-26 02:53:59 +0000 |
---|---|---|
committer | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2020-03-26 02:53:59 +0000 |
commit | 73cba9f3bad97a57636033bca90b666551497b5b (patch) | |
tree | be1dd45d4d9792930ff41f62673591070ea5d301 /src/ubf.c | |
parent | 35319c556d6ea9d6b2d5eafc01c7d11efdc1c1f5 (diff) | |
download | mpfr-ubf2.tar.gz |
Attempt to eliminate issues with aliasing rules. But this triggersubf2
a new failure with -Werror=strict-aliasing on src/fma.c due to
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94337>.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/ubf2@13820 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'src/ubf.c')
-rw-r--r-- | src/ubf.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -71,8 +71,10 @@ mpfr_init_get_zexp (mpz_ptr ez, mpfr_srcptr x) (mpfr_srcptr can be seen a bit like void *, but is stronger). This function does not change the flags, except in case of NaN. */ void -mpfr_ubf_mul_exact (mpfr_ubf_ptr a, mpfr_srcptr b, mpfr_srcptr c) +mpfr_ubf_mul_exact (mpfr_ubf_ptr aa, mpfr_srcptr b, mpfr_srcptr c) { + mpfr_ptr a = (mpfr_ptr) aa; + MPFR_LOG_FUNC (("b[%Pu]=%.*Rg c[%Pu]=%.*Rg", mpfr_get_prec (b), mpfr_log_prec, b, @@ -80,8 +82,8 @@ mpfr_ubf_mul_exact (mpfr_ubf_ptr a, mpfr_srcptr b, mpfr_srcptr c) ("a[%Pu]=%.*Rg", mpfr_get_prec (a), mpfr_log_prec, a)); - MPFR_ASSERTD ((mpfr_ptr) a != b); - MPFR_ASSERTD ((mpfr_ptr) a != c); + MPFR_ASSERTD (a != b); + MPFR_ASSERTD (a != c); MPFR_SIGN (a) = MPFR_MULT_SIGN (MPFR_SIGN (b), MPFR_SIGN (c)); if (MPFR_ARE_SINGULAR (b, c)) |