summaryrefslogtreecommitdiff
path: root/lang/gcc46/files/patch-fa
diff options
context:
space:
mode:
Diffstat (limited to 'lang/gcc46/files/patch-fa')
-rw-r--r--lang/gcc46/files/patch-fa90
1 files changed, 50 insertions, 40 deletions
diff --git a/lang/gcc46/files/patch-fa b/lang/gcc46/files/patch-fa
index ec6a579f554a..b85b8f989c31 100644
--- a/lang/gcc46/files/patch-fa
+++ b/lang/gcc46/files/patch-fa
@@ -1,5 +1,5 @@
---- gcc/c-common.c.orig Wed Mar 8 03:21:26 2000
-+++ gcc/c-common.c Tue Mar 14 21:46:03 2000
+--- gcc/c-common.c.orig Sun Jun 18 06:09:26 2000
++++ gcc/c-common.c Mon Jun 26 20:15:08 2000
@@ -154,7 +154,7 @@
int, int, int));
static void init_attributes PARAMS ((void));
@@ -7,9 +7,9 @@
- int, int));
+ int, int, int));
static void record_international_format PARAMS ((tree, tree, int));
- static tree c_find_base_decl PARAMS ((tree));
static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree));
-@@ -786,6 +786,7 @@
+
+@@ -805,6 +805,7 @@
enum format_type format_type;
tree argument;
unsigned int arg_num;
@@ -17,7 +17,7 @@
if (TREE_CODE (decl) != FUNCTION_DECL)
{
-@@ -796,7 +797,7 @@
+@@ -815,7 +816,7 @@
if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
{
@@ -26,7 +26,7 @@
continue;
}
else
-@@ -804,12 +805,26 @@
+@@ -823,12 +824,26 @@
const char *p = IDENTIFIER_POINTER (format_type_id);
if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
@@ -53,17 +53,17 @@
else
{
warning ("`%s' is an unrecognized format function type", p);
-@@ -882,7 +897,8 @@
+@@ -901,7 +916,8 @@
record_function_format (DECL_NAME (decl),
DECL_ASSEMBLER_NAME (decl),
- format_type, format_num, first_arg_num);
-+ format_type, null_format_ok, format_num,
-+ first_arg_num);
++ format_type, format_num, first_arg_num,
++ null_format_ok);
break;
}
-@@ -1186,6 +1202,11 @@
+@@ -1207,6 +1223,11 @@
} format_char_info;
static format_char_info print_char_table[] = {
@@ -75,73 +75,74 @@
{ "di", 0, T_I, T_I, T_I, T_L, T_LL, T_LL, T_ST, "-wp0 +" },
{ "oxX", 0, T_UI, T_UI, T_UI, T_UL, T_ULL, T_ULL, T_ST, "-wp0#" },
{ "u", 0, T_UI, T_UI, T_UI, T_UL, T_ULL, T_ULL, T_ST, "-wp0" },
-@@ -1246,6 +1267,7 @@
- tree name; /* identifier such as "printf" */
- tree assembler_name; /* optional mangled identifier (for C++) */
+@@ -1269,6 +1290,7 @@
enum format_type format_type; /* type of format (printf, scanf, etc.) */
-+ int null_format_ok; /* TRUE if the format string may be NULL */
int format_num; /* number of format argument */
int first_arg_num; /* number of first arg (zero for varargs) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
} function_format_info;
-@@ -1278,25 +1300,25 @@
+
+ static function_format_info *function_format_list = NULL;
+@@ -1299,25 +1321,25 @@
init_function_format_info ()
{
record_function_format (get_identifier ("printf"), NULL_TREE,
- printf_format_type, 1, 2);
-+ printf_format_type, 0, 1, 2);
++ printf_format_type, 1, 2, 0);
record_function_format (get_identifier ("fprintf"), NULL_TREE,
- printf_format_type, 2, 3);
-+ printf_format_type, 0, 2, 3);
++ printf_format_type, 2, 3, 0);
record_function_format (get_identifier ("sprintf"), NULL_TREE,
- printf_format_type, 2, 3);
-+ printf_format_type, 0, 2, 3);
++ printf_format_type, 2, 3, 0);
record_function_format (get_identifier ("scanf"), NULL_TREE,
- scanf_format_type, 1, 2);
-+ scanf_format_type, 0, 1, 2);
++ scanf_format_type, 1, 2, 0);
record_function_format (get_identifier ("fscanf"), NULL_TREE,
- scanf_format_type, 2, 3);
-+ scanf_format_type, 0, 2, 3);
++ scanf_format_type, 2, 3, 0);
record_function_format (get_identifier ("sscanf"), NULL_TREE,
- scanf_format_type, 2, 3);
-+ scanf_format_type, 0, 2, 3);
++ scanf_format_type, 2, 3, 0);
record_function_format (get_identifier ("vprintf"), NULL_TREE,
- printf_format_type, 1, 0);
-+ printf_format_type, 0, 1, 0);
++ printf_format_type, 1, 0, 0);
record_function_format (get_identifier ("vfprintf"), NULL_TREE,
- printf_format_type, 2, 0);
-+ printf_format_type, 0, 2, 0);
++ printf_format_type, 2, 0, 0);
record_function_format (get_identifier ("vsprintf"), NULL_TREE,
- printf_format_type, 2, 0);
-+ printf_format_type, 0, 2, 0);
++ printf_format_type, 2, 0, 0);
record_function_format (get_identifier ("strftime"), NULL_TREE,
- strftime_format_type, 3, 0);
-+ strftime_format_type, 0, 3, 0);
++ strftime_format_type, 3, 0, 0);
record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
-@@ -1313,11 +1335,12 @@
- (e.g. for varargs such as vfprintf). */
+@@ -1335,12 +1357,13 @@
static void
--record_function_format (name, assembler_name, format_type,
-+record_function_format (name, assembler_name, format_type, null_format_ok,
- format_num, first_arg_num)
+ record_function_format (name, assembler_name, format_type,
+- format_num, first_arg_num)
++ format_num, first_arg_num, null_format_ok)
tree name;
tree assembler_name;
enum format_type format_type;
-+ int null_format_ok;
int format_num;
int first_arg_num;
++ int null_format_ok;
{
-@@ -1341,6 +1364,7 @@
- }
+ function_format_info *info;
+@@ -1364,6 +1387,7 @@
info->format_type = format_type;
-+ info->null_format_ok = null_format_ok;
info->format_num = format_num;
info->first_arg_num = first_arg_num;
++ info->null_format_ok = null_format_ok;
}
-@@ -1494,7 +1518,8 @@
+
+ /* Record information for the names of function that modify the format
+@@ -1515,7 +1539,8 @@
if (integer_zerop (format_tree))
{
@@ -151,7 +152,7 @@
return;
}
if (TREE_CODE (format_tree) != ADDR_EXPR)
-@@ -1683,12 +1708,13 @@
+@@ -1704,12 +1729,13 @@
It will work on most machines, because size_t and int
have the same mode. But might as well warn anyway,
since it will fail on other machines. */
@@ -166,7 +167,7 @@
}
}
else
-@@ -1733,6 +1759,53 @@
+@@ -1754,6 +1780,53 @@
}
}
}
@@ -175,7 +176,7 @@
+ /* There should be an int arg to control the string arg. */
+ if (params == 0)
+ {
-+ warning (tfaff);
++ tfaff ();
+ return;
+ }
+ if (info->first_arg_num != 0)
@@ -198,7 +199,7 @@
+ /* There should be an unsigned char * arg before the string arg. */
+ if (params == 0)
+ {
-+ warning (tfaff);
++ tfaff ();
+ return;
+ }
+ if (info->first_arg_num != 0)
@@ -220,7 +221,7 @@
aflag = 0;
-@@ -1801,7 +1874,8 @@
+@@ -1822,7 +1895,8 @@
switch (info->format_type)
{
case printf_format_type:
@@ -230,3 +231,12 @@
break;
case scanf_format_type:
fci = scan_char_table;
+@@ -1859,7 +1933,7 @@
+ if (index (fci->flag_chars, '2') != 0)
+ warning ("`%%%c' yields only last 2 digits of year", format_char);
+ else if (index (fci->flag_chars, '3') != 0)
+- warning ("`%%%c' yields only last 2 digits of year in some locales",
++ warning ("`%%%c' yields only last 2 digits of year in some locales on non-BSD systems",
+ format_char);
+ if (precise && index (fci->flag_chars, 'p') == 0)
+ warning ("precision used with `%c' format", format_char);