diff options
author | Martin Liska <mliska@suse.cz> | 2019-12-02 12:18:31 +0100 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2019-12-02 11:18:31 +0000 |
commit | 74fee04253a5007213634150b4505cd6fcab9910 (patch) | |
tree | 1e48621652810407242276de2e0a47c7126a3e6a /gcc/ipa-utils.h | |
parent | f87c23751ab207ee44c2956a444c2c80a797d1fe (diff) | |
download | gcc-74fee04253a5007213634150b4505cd6fcab9910.zip gcc-74fee04253a5007213634150b4505cd6fcab9910.tar.gz gcc-74fee04253a5007213634150b4505cd6fcab9910.tar.bz2 |
Refactor IPA devirt a bit.
2019-12-02 Martin Liska <mliska@suse.cz>
* ipa-devirt.c (warn_types_mismatch): Use get_odr_name_for_type
function.
(debug_tree_odr_name): New.
* ipa-utils.h (get_odr_name_for_type): New.
2019-12-02 Martin Liska <mliska@suse.cz>
* g++.dg/lto/odr-7_0.C: New test.
* g++.dg/lto/odr-7_1.C: New test.
From-SVN: r278898
Diffstat (limited to 'gcc/ipa-utils.h')
-rw-r--r-- | gcc/ipa-utils.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ipa-utils.h b/gcc/ipa-utils.h index 60c52e0..81a5479 100644 --- a/gcc/ipa-utils.h +++ b/gcc/ipa-utils.h @@ -248,4 +248,18 @@ odr_type_p (const_tree t) && DECL_ASSEMBLER_NAME_SET_P (TYPE_NAME (t)); } +/* If TYPE has mangled ODR name, return it. Otherwise return NULL. + The function works only when free_lang_data is run. */ + +inline const char * +get_odr_name_for_type (tree type) +{ + tree type_name = TYPE_NAME (type); + if (type_name == NULL_TREE + || !DECL_ASSEMBLER_NAME_SET_P (type_name)) + return NULL; + + return IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (type_name)); +} + #endif /* GCC_IPA_UTILS_H */ |