diff options
author | Nathan Sidwell <nathan@acm.org> | 2017-10-11 16:35:18 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2017-10-11 16:35:18 +0000 |
commit | a92f67261ace8c269ae588394bf77ac017bdad3b (patch) | |
tree | 3391663508708f07e1d69dd68f414f42a8bb0a94 /gcc/tree-ssa-structalias.c | |
parent | 4e7d02606ea8b0dac11887b1f759ea61d5394d86 (diff) | |
download | gcc-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.c | 48 |
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. |