From c774b68ffb026af9bbc0222c34158ff4eb72c5be Mon Sep 17 00:00:00 2001 From: Andy Fiddaman Date: Tue, 15 Oct 2024 15:31:19 +0000 Subject: 16768 kernel printf should know about %j and %z size specifiers --- gcc/config/sol2-c.cc | 9 +++++---- gcc/testsuite/gcc.dg/format/cmn-err-1.c | 4 ++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/gcc/config/sol2-c.cc b/gcc/config/sol2-c.cc index c84c1369b891..9fa31b96ddc8 100644 --- a/gcc/config/sol2-c.cc +++ b/gcc/config/sol2-c.cc @@ -37,6 +37,8 @@ static const format_length_info cmn_err_length_specs[] = { { "h", FMT_LEN_h, STD_C89, "hh", FMT_LEN_hh, STD_C99, 0 }, { "l", FMT_LEN_l, STD_C89, "ll", FMT_LEN_ll, STD_C89, 0 }, + { "j", FMT_LEN_j, STD_C99, NO_FMT, 0 }, + { "z", FMT_LEN_z, STD_C99, NO_FMT, 0 }, { NO_FMT, NO_FMT, 0 } }; @@ -63,10 +65,9 @@ static const format_char_info bitfield_string_type = static const format_char_info cmn_err_char_table[] = { /* none hh h l ll L z t j H D DD */ - /* C89 conversion specifiers. */ - { "dD", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, BADLEN, BADLEN, BADLEN, BADLEN , BADLEN, BADLEN, BADLEN }, "-wp0", "", NULL }, - { "oOxX",0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, BADLEN, BADLEN, BADLEN, BADLEN , BADLEN, BADLEN, BADLEN }, "-wp0", "", NULL }, - { "u", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, BADLEN, BADLEN, BADLEN, BADLEN , BADLEN, BADLEN, BADLEN }, "-wp0", "", NULL }, + { "dD", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, BADLEN, T99_SST, BADLEN, T99_IM , BADLEN, BADLEN, BADLEN }, "-wp0", "", NULL }, + { "oOxX",0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, BADLEN, T99_ST, BADLEN, T99_UIM, BADLEN, BADLEN, BADLEN }, "-wp0", "", NULL }, + { "u", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, BADLEN, T99_ST, BADLEN, T99_UIM, BADLEN, BADLEN, BADLEN }, "-wp0", "", NULL }, { "c", 0, STD_C89, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN , BADLEN, BADLEN, BADLEN }, "-w", "", NULL }, { "p", 1, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN , BADLEN, BADLEN, BADLEN }, "-w", "c", NULL }, { "s", 1, STD_C89, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN , BADLEN, BADLEN, BADLEN }, "-wp", "cR", NULL }, diff --git a/gcc/testsuite/gcc.dg/format/cmn-err-1.c b/gcc/testsuite/gcc.dg/format/cmn-err-1.c index f6833c1723ad..cbb4a1f927c3 100644 --- a/gcc/testsuite/gcc.dg/format/cmn-err-1.c +++ b/gcc/testsuite/gcc.dg/format/cmn-err-1.c @@ -19,6 +19,8 @@ int main() llong ll = 3; char hh = 4; short h = 5; + size_t z = 6; + uintmax_t j = 7; cmn_err_func (0, "%s", string); cmn_err_func (0, "%d %D %o %O %x %X %u", i, i, i, i, i, i, i); @@ -28,6 +30,8 @@ int main() cmn_err_func (0, "%hd %hD %ho %hO %hx %hX %hu", h, h, h, h, h, h, h); cmn_err_func (0, "%hhd %hhD %hho %hhO %hhx %hhX %hhu", hh, hh, hh, hh, hh, hh, hh); + cmn_err_func (0, "%jd %jD %jo %jO %jx %jX %ju", j, j, j, j, j, j, j); + cmn_err_func (0, "%zd %zD %zo %zO %zx %zX %zu", z, z, z, z, z, z, z); cmn_err_func (0, "%b %s", i, "\01Foo", string); cmn_err_func (0, "%p", string); cmn_err_func (0, "%16b", i, "\01Foo");