diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0c120196879..6e67d2959bc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-06-13 Kaveh R. Ghazi + + * c-format.c (format_types_orig): Disallow '*' width/precision in + asm_fprintf format checks. + 2003-06-13 Ulrich Weigand * config/s390/s390.c (s390_va_arg): Fix alignment when retrieving diff --git a/gcc/c-format.c b/gcc/c-format.c index 1199667c5f0..01814e15467 100644 --- a/gcc/c-format.c +++ b/gcc/c-format.c @@ -831,7 +831,7 @@ static const format_kind_info format_types_orig[] = asm_fprintf_flag_specs, asm_fprintf_flag_pairs, FMT_FLAG_ARG_CONVERT|FMT_FLAG_EMPTY_PREC_OK, 'w', 0, 'p', 0, 'L', - &integer_type_node, &integer_type_node + NULL, NULL }, { "scanf", scanf_length_specs, scan_char_table, "*'I", NULL, scanf_flag_specs, scanf_flag_pairs, diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a0af90a3ebe..5c2b747b719 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2003-06-13 Kaveh R. Ghazi + + * gcc.dg/format/asm_fprintf-1.c: Update width/precision checks. + 2003-06-12 Mark Mitchell * lib/gcc-dg.exp (dg-require-dll): New function. diff --git a/gcc/testsuite/gcc.dg/format/asm_fprintf-1.c b/gcc/testsuite/gcc.dg/format/asm_fprintf-1.c index 472c2d89ffa..22173df3042 100644 --- a/gcc/testsuite/gcc.dg/format/asm_fprintf-1.c +++ b/gcc/testsuite/gcc.dg/format/asm_fprintf-1.c @@ -34,9 +34,6 @@ foo (int i, int i1, int i2, unsigned int u, double d, char *s, void *p, asm_fprintf ("%.7d\n", i); asm_fprintf ("%+9.4d\n", i); asm_fprintf ("%.3ld\n", l); - asm_fprintf ("%*d\n", i1, i); - asm_fprintf ("%.*d\n", i2, i); - asm_fprintf ("%*.*ld\n", i1, i2, l); asm_fprintf ("%d %lu\n", i, ul); /* Extensions provided in asm_fprintf. */ @@ -58,8 +55,9 @@ foo (int i, int i1, int i2, unsigned int u, double d, char *s, void *p, asm_fprintf ("%d", l); /* { dg-warning "format" "bad argument types" } */ asm_fprintf ("%wd", l); /* { dg-warning "format" "bad argument types" } */ asm_fprintf ("%d", ll); /* { dg-warning "format" "bad argument types" } */ - asm_fprintf ("%*.*d", l, i2, i); /* { dg-warning "field" "bad * argument types" } */ - asm_fprintf ("%*.*d", i1, l, i); /* { dg-warning "field" "bad * argument types" } */ + asm_fprintf ("%*d\n", i1, i); /* { dg-warning "format" "bad * argument types" } */ + asm_fprintf ("%.*d\n", i2, i); /* { dg-warning "format" "bad * argument types" } */ + asm_fprintf ("%*.*ld\n", i1, i2, l); /* { dg-warning "format" "bad * argument types" } */ asm_fprintf ("%ld", i); /* { dg-warning "format" "bad argument types" } */ asm_fprintf ("%s", n); /* { dg-warning "format" "bad argument types" } */