summaryrefslogtreecommitdiff
path: root/src/sub1sp.c
diff options
context:
space:
mode:
authorvlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2018-02-14 03:17:10 +0000
committervlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2018-02-14 03:17:10 +0000
commitc14b624ab07a82d1335c8f501da4b243486af002 (patch)
treec80e08bed56d0ce71b208078293364af6e63832c /src/sub1sp.c
parenta8975bf11a0463435190e7d16c2d6e5a69a65677 (diff)
downloadmpfr-c14b624ab07a82d1335c8f501da4b243486af002.tar.gz
[src/sub1sp.c] Added 2 FIXME's.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@12237 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'src/sub1sp.c')
-rw-r--r--src/sub1sp.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/sub1sp.c b/src/sub1sp.c
index fc16672c2..cdc2d318c 100644
--- a/src/sub1sp.c
+++ b/src/sub1sp.c
@@ -1196,6 +1196,8 @@ mpfr_sub1sp (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
d = (mpfr_uexp_t) bx - cx;
/* printf ("New with diff=%lu\n", (unsigned long) d); */
+ /* FIXME: The goto's below are too complex and make the code unreadable. */
+
if (d == 0)
{
/* <-- b -->
@@ -1373,6 +1375,8 @@ mpfr_sub1sp (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mpfr_rnd_t rnd_mode)
ck_shifted += cp[k] >> 1;
}
while (bp[k] == ck_shifted);
+ /* FIXME: k is modified (decreased) while the "goto SubD1Lose"
+ jumps to code that expects k == n-1. */
if (MPFR_UNLIKELY(k < 0))
{
if (MPFR_UNLIKELY(ck_shifted))