https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89886
--- Comment #3 from vfdff <zhongyunde at huawei dot com> --- A further thing, I think a 'static variables' will be put out in assemble, it does not mean it is referenced ? 8dfbf71d (hubicka 2010-05-14 23:39:39 +0000 1286) /* Return true when all references to VNODE must be visible in ipa_ref_list. 8dfbf71d (hubicka 2010-05-14 23:39:39 +0000 1287) i.e. if the variable is not externally visible or not used in some magic 8dfbf71d (hubicka 2010-05-14 23:39:39 +0000 1288) way (asm statement or such). 0a10fd82 (froydnj 2011-02-11 15:16:46 +0000 1289) The magic uses are all summarized in force_output flag. */ 8dfbf71d (hubicka 2010-05-14 23:39:39 +0000 1290) 8dfbf71d (hubicka 2010-05-14 23:39:39 +0000 1291) static inline bool 8dfbf71d (hubicka 2010-05-14 23:39:39 +0000 1292) varpool_all_refs_explicit_p (struct varpool_node *vnode) 8dfbf71d (hubicka 2010-05-14 23:39:39 +0000 1293) { 15ca8f90 (hubicka 2013-05-29 20:42:50 +0000 1294) return (vnode->symbol.definition 7d0d0ce1 (hubicka 2012-04-14 10:24:59 +0000 1295) && !vnode->symbol.externally_visible 7d0d0ce1 (hubicka 2012-04-14 10:24:59 +0000 1296) && !vnode->symbol.used_from_other_partition 8efa224a (hubicka 2012-04-20 14:09:11 +0000 1297) && !vnode->symbol.force_output); 8dfbf71d (hubicka 2010-05-14 23:39:39 +0000 1298) }