https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120872
--- Comment #2 from Sam James <sjames at gcc dot gnu.org> ---
The original has:
```
static inline ATTR_PURE const unsigned char *
json_node_get_data(const struct json_node *jnode, size_t *size_r)
{
const char *literal;
switch (jnode->type) {
case JSON_TYPE_STRING:
case JSON_TYPE_NUMBER:
case JSON_TYPE_TEXT:
break;
case JSON_TYPE_TRUE:
literal = "true";
*size_r = strlen(literal);
return (const unsigned char *)literal;
case JSON_TYPE_FALSE:
literal = "false";
*size_r = strlen(literal);
return (const unsigned char *)literal;
case JSON_TYPE_NULL:
literal = "null";
*size_r = strlen(literal);
return (const unsigned char *)literal;
default:
i_unreached();
}
return json_value_get_data(&jnode->value, size_r);
}
```
That looks bogus to me indeed.