work around constant folding bug 61144 in gcc 4.9.0 and 4.9.1
[oweals/musl.git] / src / stdio / vasprintf.c
1 #define _GNU_SOURCE
2 #include <stdio.h>
3 #include <stdarg.h>
4 #include <stdlib.h>
5
6 int vasprintf(char **s, const char *fmt, va_list ap)
7 {
8         va_list ap2;
9         va_copy(ap2, ap);
10         int l = vsnprintf(0, 0, fmt, ap2);
11         va_end(ap2);
12
13         if (l<0 || !(*s=malloc(l+1U))) return -1;
14         return vsnprintf(*s, l+1U, fmt, ap);
15 }