From: Martin Sebor Date: Sun, 17 Jan 2021 22:27:08 +0000 (-0700) Subject: Avoid assuming SSA_NAME_IDENTIFIER is nonnull. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=192105b6a2a1f24f974de98c933f372b06c1e06d;p=gcc.git Avoid assuming SSA_NAME_IDENTIFIER is nonnull. gcc/c-family/ChangeLog: * c-pretty-print.c (c_pretty_printer::primary_expression): Don't assume SSA_NAME_IDENTIFIER evaluates to nonzero. --- diff --git a/gcc/c-family/c-pretty-print.c b/gcc/c-family/c-pretty-print.c index 5a51c05fd75..2095d4badf7 100644 --- a/gcc/c-family/c-pretty-print.c +++ b/gcc/c-family/c-pretty-print.c @@ -1340,18 +1340,23 @@ c_pretty_printer::primary_expression (tree e) if (SSA_NAME_VAR (e)) { tree var = SSA_NAME_VAR (e); - const char *name = IDENTIFIER_POINTER (SSA_NAME_IDENTIFIER (e)); - const char *dot; - if (DECL_ARTIFICIAL (var) && (dot = strchr (name, '.'))) + if (tree id = SSA_NAME_IDENTIFIER (e)) { - /* Print the name without the . suffix (such as in VLAs). - Use pp_c_identifier so that it can be converted into - the appropriate encoding. */ - size_t size = dot - name; - char *ident = XALLOCAVEC (char, size + 1); - memcpy (ident, name, size); - ident[size] = '\0'; - pp_c_identifier (this, ident); + const char *name = IDENTIFIER_POINTER (id); + const char *dot; + if (DECL_ARTIFICIAL (var) && (dot = strchr (name, '.'))) + { + /* Print the name without the . suffix (such as in VLAs). + Use pp_c_identifier so that it can be converted into + the appropriate encoding. */ + size_t size = dot - name; + char *ident = XALLOCAVEC (char, size + 1); + memcpy (ident, name, size); + ident[size] = '\0'; + pp_c_identifier (this, ident); + } + else + primary_expression (var); } else primary_expression (var);