]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
c++: Avoid narrowing in make_char_string_pack
authorMarek Polacek <polacek@redhat.com>
Fri, 17 Dec 2021 19:52:38 +0000 (14:52 -0500)
committerMarek Polacek <polacek@redhat.com>
Mon, 3 Jan 2022 19:00:34 +0000 (14:00 -0500)
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], '\'' };
      |                                    ~~~~~^

gcc/cp/ChangeLog:

* parser.c (make_char_string_pack): Add a cast to const unsigned
char *.

gcc/cp/parser.c

index bd5cb21fba7e1094fd9ba4cec59eb3335f35b83e..4475f79291665901dab6404c85a2d907c3e0e59a 100644 (file)
@@ -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);