summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2017-05-19 10:45:25 +0000
committervlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2017-05-19 10:45:25 +0000
commit58704e8030a37a1dbac47e66430c212f07b0a097 (patch)
tree9fca0c3cf3947a030eaba2c897ea0a7d5ac1aec8
parente000089438302ea9cc906fe54d7d3d05e6c9361a (diff)
downloadmpfr-58704e8030a37a1dbac47e66430c212f07b0a097.tar.gz
[tests/tsprintf.c] Fixed portability issues: The va_end(3) man page
of Linux Programmer's Manual says: "On some systems, va_end contains a closing '}' matching a '{' in va_start, so that both macros must occur in the same function, and in a way that allows this." git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@11500 280ebfd0-de03-0410-8827-d642c229c3f4
-rw-r--r--tests/tsprintf.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/tests/tsprintf.c b/tests/tsprintf.c
index 5d4029744..4d99ec396 100644
--- a/tests/tsprintf.c
+++ b/tests/tsprintf.c
@@ -117,20 +117,19 @@ check_vsprintf (const char *expected, const char *fmt, ...)
int n0, n1, p;
char buffer[BUF_SIZE];
va_list ap0, ap1;
- va_start (ap0, fmt);
- va_start (ap1, fmt);
+ va_start (ap0, fmt);
n0 = mpfr_vsprintf (buffer, fmt, ap0);
+ va_end (ap0);
+
if (strcmp (buffer, expected) != 0)
{
printf ("Error in mpfr_vsprintf (s, \"%s\", ...);\n", fmt);
printf ("expected: \"%s\"\ngot: \"%s\"\n", expected, buffer);
-
- va_end (ap0);
- va_end (ap1);
exit (1);
}
- va_end (ap0);
+
+ va_start (ap1, fmt);
/* test mpfr_snprintf */
p = (int) (randlimb () % n0);
@@ -148,29 +147,28 @@ check_vsprintf (const char *expected, const char *fmt, ...)
exit (1);
}
}
+
+ va_end (ap1);
+
if (n0 != n1)
{
printf ("Error in mpfr_vsnprintf (s, %d, \"%s\", ...) return value\n",
p, fmt);
printf ("expected: %d\ngot: %d\n", n0, n1);
-
- va_end (ap1);
exit (1);
}
if ((p > 1 && strncmp (expected, buffer, p-1) != 0)
|| (p == 1 && buffer[0] != '\0'))
{
char part_expected[BUF_SIZE];
+
strncpy (part_expected, expected, p);
part_expected[p-1] = '\0';
printf ("Error in mpfr_vsnprintf (s, %d, \"%s\", ...);\n", p, fmt);
printf ("expected: \"%s\"\ngot: \"%s\"\n", part_expected, buffer);
-
- va_end (ap1);
exit (1);
}
- va_end (ap1);
return n0;
}