On 02/12/2015 10:58 AM, H.J. Lu wrote: > if (DECL_VISIBILITY_SPECIFIED (exp) > + && (resolved_locally > + || !flag_pic
Yes, this essentially goes back to your original patch, which I claim still conflates issues. In particular, I believe mentioning flag_pic here is a serious error. There are two problems that I see so far, (1) node->definition isn't set for this symbol. This is because you only fixed varpool_node::finalize_decl, and not cgraph_node::finalize_function. (2) The weak test should probably be split into two pieces, like the visibility test: exclude undefined weak, include specified visibility, exclude non-dominant weak, exclude external, include implied visibility. r~