blob: 030e276698d105dd1ab1a7b775fb5fef48e02c59 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
/* PR 79800 - wrong snprintf result range with precision in a narrow
negative-positive range
{ dg-do "run" { target c99_runtime } }
{ dg-options "-O2 -Wall" } */
#define FMT "%.*a"
char fmt[] = FMT;
volatile double x = 1.23456789;
void f (int p)
{
if (p < -1 || 0 < p)
p = -1;
char d[30];
int n1 = __builtin_sprintf (d, "%.*a", p, x);
const char *s = n1 < 20 ? "< 20" : ">= 20";
if (__builtin_strcmp (s, ">= 20"))
__builtin_abort ();
}
volatile int i = -1;
int main ()
{
f (i);
return 0;
}
|