Commit 9fa8f75d by Joseph Myers Committed by Joseph Myers

c-common.c (decl_attributes): Don't allow strftime formats with first_arg_num nonzero.

	* c-common.c (decl_attributes): Don't allow strftime formats with
	first_arg_num nonzero.
	(check_format_info): Set wanted_type and wanted_type_name to zero
	before they are possibly assigned and used.

testsuite:
	* gcc.dg/format-attr-1.c: New test.

From-SVN: r36845
parent 1eb1669c
2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
* c-common.c (decl_attributes): Don't allow strftime formats with
first_arg_num nonzero.
(check_format_info): Set wanted_type and wanted_type_name to zero
before they are possibly assigned and used.
2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
* c-common.c (scanf_flag_specs): Add flags ' and I.
(strftime_flag_pairs): Disallow any pair of the _, - and 0 flags,
or the ^ and # flags together.
......
......@@ -962,6 +962,12 @@ decl_attributes (node, attributes, prefix_attributes)
}
}
if (format_type == strftime_format_type && first_arg_num != 0)
{
error ("strftime formats cannot format arguments");
continue;
}
record_function_format (DECL_NAME (decl),
DECL_ASSEMBLER_NAME (decl),
format_type, format_num, first_arg_num);
......@@ -2754,6 +2760,8 @@ check_format_info (status, info, params)
status_warning (status, "no closing `]' for `%%[' format");
}
wanted_type = 0;
wanted_type_name = 0;
if (fki->flags & FMT_FLAG_ARG_CONVERT)
{
wanted_type = (fci->types[length_chars_val].type
......
2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
* gcc.dg/format-attr-1.c: New test.
2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
* gcc.dg/c90-printf-2.c, gcc.dg/c90-scanf-2.c: Use
__LONG_LONG_MAX__ instead of LLONG_MAX.
......
/* Test for strftime format attributes: can't have first_arg_num != 0. */
/* Origin: Joseph Myers <jsm28@cam.ac.uk> */
/* { dg-do compile } */
/* { dg-options "-std=gnu99 -Wformat" } */
extern void foo0 (const char *) __attribute__((__format__(__strftime__, 1, 0)));
extern void foo1 (const char *, ...) __attribute__((__format__(__strftime__, 1, 2))); /* { dg-error "cannot format" "strftime first_arg_num != 0" } */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment