aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-structalias.c
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>2017-10-11 16:35:18 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2017-10-11 16:35:18 +0000
commita92f67261ace8c269ae588394bf77ac017bdad3b (patch)
tree3391663508708f07e1d69dd68f414f42a8bb0a94 /gcc/tree-ssa-structalias.c
parent4e7d02606ea8b0dac11887b1f759ea61d5394d86 (diff)
downloadgcc-a92f67261ace8c269ae588394bf77ac017bdad3b.zip
gcc-a92f67261ace8c269ae588394bf77ac017bdad3b.tar.gz
gcc-a92f67261ace8c269ae588394bf77ac017bdad3b.tar.bz2
[PATCH] DECL_ASSEMBLER_NAME and friends
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00582.html * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check HAS_DECL_ASSEMBLER_NAME_P. * gimple-expr.c (gimple_decl_printable_name: Check HAS_DECL_ASSEMBLER_NAME_P too. * ipa-utils.h (type_in_anonymous_namespace_p): Check DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME. (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL. * passes.c (rest_of_decl_compilation): Check HAS_DECL_ASSEMBLER_NAME_P too. * recog.c (verify_changes): Likewise. * tree-pretty-print.c (dump_decl_name): Likewise. * tree-ssa-structalias.c (alias_get_name): Likewise. Reimplement. c/ * c-decl.c (grokdeclarator): Check HAS_DECL_ASSEMBLER_NAME_P too. From-SVN: r253649
Diffstat (limited to 'gcc/tree-ssa-structalias.c')
-rw-r--r--gcc/tree-ssa-structalias.c48
1 files changed, 20 insertions, 28 deletions
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index 407ad37..89135ea 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -2849,41 +2849,33 @@ lookup_vi_for_tree (tree t)
static const char *
alias_get_name (tree decl)
{
- const char *res = NULL;
- char *temp;
-
- if (!dump_file)
- return "NULL";
-
- if (TREE_CODE (decl) == SSA_NAME)
- {
- res = get_name (decl);
- if (res)
- temp = xasprintf ("%s_%u", res, SSA_NAME_VERSION (decl));
- else
- temp = xasprintf ("_%u", SSA_NAME_VERSION (decl));
- res = ggc_strdup (temp);
- free (temp);
- }
- else if (DECL_P (decl))
+ const char *res = "NULL";
+ if (dump_file)
{
- if (DECL_ASSEMBLER_NAME_SET_P (decl))
- res = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
- else
+ char *temp = NULL;
+ if (TREE_CODE (decl) == SSA_NAME)
+ {
+ res = get_name (decl);
+ temp = xasprintf ("%s_%u", res ? res : "", SSA_NAME_VERSION (decl));
+ }
+ else if (HAS_DECL_ASSEMBLER_NAME_P (decl)
+ && DECL_ASSEMBLER_NAME_SET_P (decl))
+ res = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME_RAW (decl));
+ else if (DECL_P (decl))
{
res = get_name (decl);
if (!res)
- {
- temp = xasprintf ("D.%u", DECL_UID (decl));
- res = ggc_strdup (temp);
- free (temp);
- }
+ temp = xasprintf ("D.%u", DECL_UID (decl));
+ }
+
+ if (temp)
+ {
+ res = ggc_strdup (temp);
+ free (temp);
}
}
- if (res != NULL)
- return res;
- return "NULL";
+ return res;
}
/* Find the variable id for tree T in the map.