diff options
Diffstat (limited to 'lang/gcc/files/patch-fa')
| -rw-r--r-- | lang/gcc/files/patch-fa | 232 | 
1 files changed, 0 insertions, 232 deletions
diff --git a/lang/gcc/files/patch-fa b/lang/gcc/files/patch-fa deleted file mode 100644 index ec6a579f554a..000000000000 --- a/lang/gcc/files/patch-fa +++ /dev/null @@ -1,232 +0,0 @@ ---- gcc/c-common.c.orig	Wed Mar  8 03:21:26 2000 -+++ gcc/c-common.c	Tue Mar 14 21:46:03 2000 -@@ -154,7 +154,7 @@ - 						 int, int, int)); - static void init_attributes		PARAMS ((void)); - static void record_function_format	PARAMS ((tree, tree, enum format_type, --						 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 @@ - 	    enum format_type format_type; - 	    tree argument; - 	    unsigned int arg_num; -+	    int null_format_ok; -  - 	    if (TREE_CODE (decl) != FUNCTION_DECL) - 	      { -@@ -796,7 +797,7 @@ -  - 	    if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) - 	      { --		error ("unrecognized format specifier"); -+		error_with_decl (decl, "unrecognized format specifier"); - 		continue; - 	      } - 	    else -@@ -804,12 +805,26 @@ - 		const char *p = IDENTIFIER_POINTER (format_type_id); -  - 		if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) -+		  { -+		  format_type = printf_format_type; -+		  null_format_ok = 0; -+		  } -+		else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__")) -+		  { - 		  format_type = printf_format_type; -+		  null_format_ok = 1; -+		  } - 		else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__")) -+		  { - 		  format_type = scanf_format_type; -+		  null_format_ok = 0; -+		  } - 		else if (!strcmp (p, "strftime") - 			 || !strcmp (p, "__strftime__")) -+		  { - 		  format_type = strftime_format_type; -+		  null_format_ok = 0; -+		  } - 		else - 		  { - 		    warning ("`%s' is an unrecognized format function type", p); -@@ -882,7 +897,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); - 	    break; - 	  } -  -@@ -1186,6 +1202,11 @@ - } format_char_info; -  - static format_char_info print_char_table[] = { -+/* FreeBSD kernel extensions.  */ -+  { "D",	1,	T_C,	T_C,	NULL,	NULL,	NULL,	NULL,	NULL,	"-wp"		}, -+  { "b",	1,	T_C,	T_C,	NULL,	NULL,	NULL,	NULL,	NULL,	"-wp"		}, -+  { "rz",	0,	NULL,	T_I,	T_I,	T_L,	NULL,	NULL,	NULL,	"-wp0 +#"	}, -+#define unextended_print_char_table	(print_char_table + 3) -   { "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++) */ -   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) */ - } function_format_info; -@@ -1278,25 +1300,25 @@ - init_function_format_info () - { -   record_function_format (get_identifier ("printf"), NULL_TREE, --			  printf_format_type, 1, 2); -+			  printf_format_type, 0, 1, 2); -   record_function_format (get_identifier ("fprintf"), NULL_TREE, --			  printf_format_type, 2, 3); -+			  printf_format_type, 0, 2, 3); -   record_function_format (get_identifier ("sprintf"), NULL_TREE, --			  printf_format_type, 2, 3); -+			  printf_format_type, 0, 2, 3); -   record_function_format (get_identifier ("scanf"), NULL_TREE, --			  scanf_format_type, 1, 2); -+			  scanf_format_type, 0, 1, 2); -   record_function_format (get_identifier ("fscanf"), NULL_TREE, --			  scanf_format_type, 2, 3); -+			  scanf_format_type, 0, 2, 3); -   record_function_format (get_identifier ("sscanf"), NULL_TREE, --			  scanf_format_type, 2, 3); -+			  scanf_format_type, 0, 2, 3); -   record_function_format (get_identifier ("vprintf"), NULL_TREE, --			  printf_format_type, 1, 0); -+			  printf_format_type, 0, 1, 0); -   record_function_format (get_identifier ("vfprintf"), NULL_TREE, --			  printf_format_type, 2, 0); -+			  printf_format_type, 0, 2, 0); -   record_function_format (get_identifier ("vsprintf"), NULL_TREE, --			  printf_format_type, 2, 0); -+			  printf_format_type, 0, 2, 0); -   record_function_format (get_identifier ("strftime"), NULL_TREE, --			  strftime_format_type, 3, 0); -+			  strftime_format_type, 0, 3, 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).  */ -  - 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) -       tree name; -       tree assembler_name; -       enum format_type format_type; -+      int null_format_ok; -       int format_num; -       int first_arg_num; - { -@@ -1341,6 +1364,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; - } -@@ -1494,7 +1518,8 @@ -  -   if (integer_zerop (format_tree)) -     { --      warning ("null format string"); -+      if (!info->null_format_ok) -+	warning ("null format string"); -       return; -     } -   if (TREE_CODE (format_tree) != ADDR_EXPR) -@@ -1683,12 +1708,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.  */ -+		  /* XXX should we allow unsigned ints here?  */ - 		  if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) - 		       != integer_type_node) - 		      && - 		      (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) - 		       != unsigned_type_node)) --		    warning ("field width is not type int (arg %d)", arg_num); -+		    warning ("precision is not type int (arg %d)", arg_num); - 		} - 	    } - 	  else -@@ -1733,6 +1759,53 @@ - 		} - 	    } - 	} -+      if (*format_chars == 'b') -+	{ -+	  /* There should be an int arg to control the string arg.  */ -+	  if (params == 0) -+	    { -+	      warning (tfaff); -+	      return; -+	    } -+	    if (info->first_arg_num != 0) -+	    { -+	      cur_param = TREE_VALUE (params); -+	      params = TREE_CHAIN (params); -+	      ++arg_num; -+	      if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+		   != integer_type_node) -+		  && -+		  (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+		   != unsigned_type_node)) -+		{ -+		  warning ("bitmap is not type int (arg %d)", arg_num); -+		} -+	    } -+	} -+      if (*format_chars == 'D') -+	{ -+	  /* There should be an unsigned char * arg before the string arg.  */ -+	  if (params == 0) -+	    { -+	      warning (tfaff); -+	      return; -+	    } -+	    if (info->first_arg_num != 0) -+	    { -+	      cur_param = TREE_VALUE (params); -+	      params = TREE_CHAIN (params); -+	      ++arg_num; -+	      cur_type = TREE_TYPE (cur_param); -+	      if (TREE_CODE (cur_type) != POINTER_TYPE -+		  || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type)) -+		     != unsigned_char_type_node) -+		{ -+		  warning ("ethernet address is not type unsigned char *" -+			   " (arg %d)", -+			   arg_num); -+		} -+	    } -+	} -  -       aflag = 0; -  -@@ -1801,7 +1874,8 @@ -       switch (info->format_type) - 	{ - 	case printf_format_type: --	  fci = print_char_table; -+	  fci = flag_format_extensions ? print_char_table -+	  	: unextended_print_char_table; - 	  break; - 	case scanf_format_type: - 	  fci = scan_char_table;  | 
