On 12/17/21 17:58, Marek Polacek wrote:
This fixes

gcc/cp/parser.c:4618:41: warning: narrowing conversion of '(char)(*(str + 
((sizetype)i)))' from 'char' to 'unsigned char' [-Wnarrowing]
  4618 |       unsigned char s[3] = { '\'', str[i], '\'' };
       |                                    ~~~~~^

Bootstrapped/regtested on x86_64-pc-linux-gnu, ok for trunk?

Hmm, odd that STRING_CST and cpp_string differ in the use of unsigned char. The patch is OK>

gcc/cp/ChangeLog:

        * parser.c (make_char_string_pack): Add a cast to const unsigned
        char *.
---
  gcc/cp/parser.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index 44eed7ea638..56232ab029f 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -4607,7 +4607,8 @@ make_char_string_pack (tree value)
  {
    tree charvec;
    tree argpack = make_node (NONTYPE_ARGUMENT_PACK);
-  const char *str = TREE_STRING_POINTER (value);
+  const unsigned char *str
+    = (const unsigned char *) TREE_STRING_POINTER (value);
    int i, len = TREE_STRING_LENGTH (value) - 1;
    tree argvec = make_tree_vec (1);
base-commit: d7ca2a79b82c6500ead6ab983d14c609e2124eee

Reply via email to