diff options
| author | cvs2svn <cvs2svn@FreeBSD.org> | 2000-09-23 01:36:53 +0000 | 
|---|---|---|
| committer | cvs2svn <cvs2svn@FreeBSD.org> | 2000-09-23 01:36:53 +0000 | 
| commit | 8c7499bdfa85657ea6c2517ada0ef4a4db489beb (patch) | |
| tree | 1c37a6088704b234484b1352cd1f882fb2a253ad /lang/gcc/files/patch-fa | |
| parent | Catch up with Wnn6-lib update. (diff) | |
This commit was manufactured by cvs2svn to create tag 'RELEASE_4_1_1'.release/4.1.1
Notes
Notes:
    svn path=/head/; revision=33029
    svn path=/tags/RELEASE_4_1_1/; revision=33030; tag=release/4.1.1
Diffstat (limited to 'lang/gcc/files/patch-fa')
| -rw-r--r-- | lang/gcc/files/patch-fa | 262 | 
1 files changed, 0 insertions, 262 deletions
| diff --git a/lang/gcc/files/patch-fa b/lang/gcc/files/patch-fa deleted file mode 100644 index 55221295f0b7..000000000000 --- a/lang/gcc/files/patch-fa +++ /dev/null @@ -1,262 +0,0 @@ ---- gcc/c-common.c.orig	Fri Aug 25 08:27:55 2000 -+++ gcc/c-common.c	Fri Sep 15 11:30:42 2000 -@@ -157,7 +157,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 int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -  -@@ -827,6 +827,7 @@ - 	    enum format_type format_type; - 	    tree argument; - 	    unsigned int arg_num; -+	    int null_format_ok; -  - 	    if (TREE_CODE (decl) != FUNCTION_DECL) - 	      { -@@ -837,7 +838,7 @@ -  - 	    if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) - 	      { --		error ("unrecognized format specifier"); -+		error_with_decl (decl, "unrecognized format specifier"); - 		continue; - 	      } - 	    else -@@ -845,12 +846,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); -@@ -923,7 +938,8 @@ -  - 	    record_function_format (DECL_NAME (decl), - 				    DECL_ASSEMBLER_NAME (decl), --				    format_type, format_num, first_arg_num); -+				    format_type, format_num, first_arg_num, -+				    null_format_ok); - 	    break; - 	  } -  -@@ -1242,6 +1258,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_SST,	T_PD,	T_IM,	"-wp0 +'I"	}, -   { "oxX",	0,	T_UI,	T_UI,	T_UI,	T_UL,	T_ULL,	T_ULL,	T_ST,	T_UPD,	T_UIM,	"-wp0#"		}, -   { "u",	0,	T_UI,	T_UI,	T_UI,	T_UL,	T_ULL,	T_ULL,	T_ST,	T_UPD,	T_UIM,	"-wp0'I"		}, -@@ -1314,6 +1335,7 @@ -   enum format_type format_type;	/* type of format (printf, scanf, etc.) */ -   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; -  - static function_format_info *function_format_list = NULL; -@@ -1354,40 +1376,40 @@ -     { -       /* Functions from ISO/IEC 9899:1990.  */ -       record_function_format (get_identifier ("printf"), NULL_TREE, --			      printf_format_type, 1, 2); -+			      printf_format_type, 1, 2, 0); -       record_function_format (get_identifier ("fprintf"), NULL_TREE, --			      printf_format_type, 2, 3); -+			      printf_format_type, 2, 3, 0); -       record_function_format (get_identifier ("sprintf"), NULL_TREE, --			      printf_format_type, 2, 3); -+			      printf_format_type, 2, 3, 0); -       record_function_format (get_identifier ("scanf"), NULL_TREE, --			      scanf_format_type, 1, 2); -+			      scanf_format_type, 1, 2, 0); -       record_function_format (get_identifier ("fscanf"), NULL_TREE, --			      scanf_format_type, 2, 3); -+			      scanf_format_type, 2, 3, 0); -       record_function_format (get_identifier ("sscanf"), NULL_TREE, --			      scanf_format_type, 2, 3); -+			      scanf_format_type, 2, 3, 0); -       record_function_format (get_identifier ("vprintf"), NULL_TREE, --			      printf_format_type, 1, 0); -+			      printf_format_type, 1, 0, 0); -       record_function_format (get_identifier ("vfprintf"), NULL_TREE, --			      printf_format_type, 2, 0); -+			      printf_format_type, 2, 0, 0); -       record_function_format (get_identifier ("vsprintf"), NULL_TREE, --			      printf_format_type, 2, 0); -+			      printf_format_type, 2, 0, 0); -       record_function_format (get_identifier ("strftime"), NULL_TREE, --			      strftime_format_type, 3, 0); -+			      strftime_format_type, 3, 0, 0); -     } -  -   if (flag_hosted && flag_isoc99) -     { -       /* ISO C99 adds the snprintf and vscanf family functions.  */ -       record_function_format (get_identifier ("snprintf"), NULL_TREE, --			      printf_format_type, 3, 4); -+			      printf_format_type, 3, 4, 0); -       record_function_format (get_identifier ("vsnprintf"), NULL_TREE, --			      printf_format_type, 3, 0); -+			      printf_format_type, 3, 0, 0); -       record_function_format (get_identifier ("vscanf"), NULL_TREE, --			      scanf_format_type, 1, 0); -+			      scanf_format_type, 1, 0, 0); -       record_function_format (get_identifier ("vfscanf"), NULL_TREE, --			      scanf_format_type, 2, 0); -+			      scanf_format_type, 2, 0, 0); -       record_function_format (get_identifier ("vsscanf"), NULL_TREE, --			      scanf_format_type, 2, 0); -+			      scanf_format_type, 2, 0, 0); -     } -  -   if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1410,12 +1432,13 @@ -  - static void - 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 format_num; -       int first_arg_num; -+      int null_format_ok; - { -   function_format_info *info; -  -@@ -1439,6 +1462,7 @@ -   info->format_type = format_type; -   info->format_num = format_num; -   info->first_arg_num = first_arg_num; -+  info->null_format_ok = null_format_ok; - } -  - /* Record information for the names of function that modify the format -@@ -1755,7 +1779,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) -@@ -1981,12 +2006,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 -@@ -2046,6 +2072,53 @@ - 		} - 	    } - 	} -+      if (*format_chars == 'b') -+	{ -+	  /* There should be an int arg to control the string arg.  */ -+	  if (params == 0) -+	    { -+	      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) -+	    { -+	      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; -  -@@ -2130,7 +2203,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; -@@ -2174,7 +2248,7 @@ - 	warning ("width used with `%c' format", format_char); -       if (index (fci->flag_chars, '3') != 0 - 	  || (format_char == 'y' && index (flag_chars, 'E'))) --	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); -       else if (index (fci->flag_chars, '2') != 0) - 	warning ("`%%%c' yields only last 2 digits of year", format_char); | 
