aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-format.c
diff options
context:
space:
mode:
authorJoseph Myers <jsm28@cam.ac.uk>2001-09-22 20:06:29 +0100
committerJoseph Myers <jsm28@gcc.gnu.org>2001-09-22 20:06:29 +0100
commit040cc0718f8b93a667211eac1c95e86fc591c16f (patch)
tree2b2e6635a5d2abc634d9e996e64c0528d5207f80 /gcc/c-format.c
parentf6a67a813e4cea8aee736da0cf9d8dca10e8d880 (diff)
downloadgcc-040cc0718f8b93a667211eac1c95e86fc591c16f.zip
gcc-040cc0718f8b93a667211eac1c95e86fc591c16f.tar.gz
gcc-040cc0718f8b93a667211eac1c95e86fc591c16f.tar.bz2
c-format.c (init_function_format_info): Check __builtin_printf and __builtin_fprintf even if -ffreestanding.
* c-format.c (init_function_format_info): Check __builtin_printf and __builtin_fprintf even if -ffreestanding. Check C99 functions in gnu89 mode. testsuite: * gcc.dg/format/builtin-1.c, gcc.dg/format/ext-6.c: New tests. From-SVN: r45757
Diffstat (limited to 'gcc/c-format.c')
-rw-r--r--gcc/c-format.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/gcc/c-format.c b/gcc/c-format.c
index 331cd25..e25c29e 100644
--- a/gcc/c-format.c
+++ b/gcc/c-format.c
@@ -325,17 +325,20 @@ static international_format_info *international_format_list = NULL;
void
init_function_format_info ()
{
+ /* __builtin functions should be checked unconditionally, even with
+ -ffreestanding. */
+ record_function_format (get_identifier ("__builtin_printf"), NULL_TREE,
+ printf_format_type, 1, 2);
+ record_function_format (get_identifier ("__builtin_fprintf"), NULL_TREE,
+ printf_format_type, 2, 3);
+
if (flag_hosted)
{
/* Functions from ISO/IEC 9899:1990. */
record_function_format (get_identifier ("printf"), NULL_TREE,
printf_format_type, 1, 2);
- record_function_format (get_identifier ("__builtin_printf"), NULL_TREE,
- printf_format_type, 1, 2);
record_function_format (get_identifier ("fprintf"), NULL_TREE,
printf_format_type, 2, 3);
- record_function_format (get_identifier ("__builtin_fprintf"), NULL_TREE,
- printf_format_type, 2, 3);
record_function_format (get_identifier ("sprintf"), NULL_TREE,
printf_format_type, 2, 3);
record_function_format (get_identifier ("scanf"), NULL_TREE,
@@ -354,7 +357,7 @@ init_function_format_info ()
strftime_format_type, 3, 0);
}
- if (flag_hosted && flag_isoc99)
+ if (flag_hosted && (flag_isoc99 || flag_noniso_default_format_attributes))
{
/* ISO C99 adds the snprintf and vscanf family functions. */
record_function_format (get_identifier ("snprintf"), NULL_TREE,