481a98c112
the fortran part.
101 lines
5.8 KiB
Plaintext
101 lines
5.8 KiB
Plaintext
$OpenBSD: keep,v 1.1.1.1 2007/03/17 22:35:25 espie Exp $
|
|
--- gcc/c-format.c.orig Mon Mar 27 10:35:04 2006
|
|
+++ gcc/c-format.c Mon Mar 27 10:56:06 2006
|
|
@@ -62,6 +62,7 @@ enum format_type { printf_format_type, a
|
|
gcc_cdiag_format_type,
|
|
gcc_cxxdiag_format_type, gcc_gfc_format_type,
|
|
scanf_format_type, strftime_format_type,
|
|
+ kprintf_format_type, syslog_format_type,
|
|
strfmon_format_type, format_type_error = -1};
|
|
|
|
typedef struct function_format_info
|
|
@@ -294,6 +295,15 @@ static const format_length_info printf_l
|
|
{ NULL, 0, 0, NULL, 0, 0 }
|
|
};
|
|
|
|
+static const format_length_info kprintf_length_specs[] =
|
|
+{
|
|
+ { "h", FMT_LEN_h, STD_C89, NULL, 0, 0 },
|
|
+ { "l", FMT_LEN_l, STD_C89, "ll", FMT_LEN_ll, STD_C9L },
|
|
+ { "q", FMT_LEN_ll, STD_EXT, NULL, 0, 0 },
|
|
+ { "L", FMT_LEN_L, STD_C89, NULL, 0, 0 },
|
|
+ { NULL, 0, 0, NULL, 0, 0 }
|
|
+};
|
|
+
|
|
/* Length specifiers valid for asm_fprintf. */
|
|
static const format_length_info asm_fprintf_length_specs[] =
|
|
{
|
|
@@ -509,6 +519,24 @@ static const format_char_info print_char
|
|
{ NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL }
|
|
};
|
|
|
|
+static const format_char_info kprint_char_table[] =
|
|
+{
|
|
+ /* C89 conversion specifiers. */
|
|
+ { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i", NULL },
|
|
+ { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i", NULL },
|
|
+ { "u", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0'I", "i", NULL },
|
|
+ { "c", 0, STD_C89, { T89_I, BADLEN, BADLEN, T94_WI, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-w", "", NULL },
|
|
+ { "s", 1, STD_C89, { T89_C, BADLEN, BADLEN, T94_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR", NULL },
|
|
+ { "p", 1, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-w", "c", NULL },
|
|
+/* Kernel bitmap formatting */
|
|
+ { "b", 1, STD_C89, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "", "", NULL },
|
|
+/* Kernel recursive format */
|
|
+ { ":", 1, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "", "", NULL },
|
|
+/* Kernel debugger auto-radix printing */
|
|
+ { "nrz", 0, STD_C89, { T89_I, T89_I, T89_I, T89_L, T9L_LL, TEX_LL, BADLEN, BADLEN, BADLEN }, "-wp0# +", "", NULL },
|
|
+ { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL }
|
|
+};
|
|
+
|
|
static const format_char_info asm_fprintf_char_table[] =
|
|
{
|
|
/* C89 conversion specifiers. */
|
|
@@ -641,6 +669,28 @@ static const format_char_info gcc_gfc_ch
|
|
{ NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL }
|
|
};
|
|
|
|
+static const format_char_info syslog_char_table[] =
|
|
+{
|
|
+ /* C89 conversion specifiers. */
|
|
+ { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i", NULL },
|
|
+ { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i", NULL },
|
|
+ { "u", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0'I", "i", NULL },
|
|
+ { "fgG", 0, STD_C89, { T89_D, BADLEN, BADLEN, T99_D, BADLEN, T89_LD, BADLEN, BADLEN, BADLEN }, "-wp0 +#'", "", NULL },
|
|
+ { "eE", 0, STD_C89, { T89_D, BADLEN, BADLEN, T99_D, BADLEN, T89_LD, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "", NULL },
|
|
+ { "c", 0, STD_C89, { T89_I, BADLEN, BADLEN, T94_WI, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-w", "", NULL },
|
|
+ { "s", 1, STD_C89, { T89_C, BADLEN, BADLEN, T94_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR", NULL },
|
|
+ { "p", 1, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-w", "c" , NULL },
|
|
+ { "n", 1, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, BADLEN, T99_SST, T99_PD, T99_IM }, "", "W", NULL },
|
|
+ /* C99 conversion specifiers. */
|
|
+ { "F", 0, STD_C99, { T99_D, BADLEN, BADLEN, T99_D, BADLEN, T99_LD, BADLEN, BADLEN, BADLEN }, "-wp0 +#'", "", NULL },
|
|
+ { "aA", 0, STD_C99, { T99_D, BADLEN, BADLEN, T99_D, BADLEN, T99_LD, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "", NULL },
|
|
+ /* X/Open conversion specifiers. */
|
|
+ { "C", 0, STD_EXT, { TEX_WI, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-w", "", NULL },
|
|
+ { "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R", NULL },
|
|
+ { "m", 0, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "", NULL },
|
|
+ { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL }
|
|
+};
|
|
+
|
|
static const format_char_info scan_char_table[] =
|
|
{
|
|
/* C89 conversion specifiers. */
|
|
@@ -698,6 +748,18 @@ static const format_char_info monetary_c
|
|
static const format_kind_info format_types_orig[] =
|
|
{
|
|
{ "printf", printf_length_specs, print_char_table, " +#0-'I", NULL,
|
|
+ printf_flag_specs, printf_flag_pairs,
|
|
+ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK,
|
|
+ 'w', 0, 'p', 0, 'L',
|
|
+ &integer_type_node, &integer_type_node
|
|
+ },
|
|
+ { "kprintf", kprintf_length_specs, kprint_char_table, " +#0-'I", NULL,
|
|
+ printf_flag_specs, printf_flag_pairs,
|
|
+ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK,
|
|
+ 'w', 0, 'p', 0, 'L',
|
|
+ &integer_type_node, &integer_type_node
|
|
+ },
|
|
+ { "syslog", printf_length_specs, syslog_char_table, " +#0-'I", NULL,
|
|
printf_flag_specs, printf_flag_pairs,
|
|
FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK,
|
|
'w', 0, 'p', 0, 'L',
|