On 08/31/2009 12:57 AM, Jerry Quinn wrote:
On Thu, 2009-08-27 at 00:24 -0400, Jason Merrill wrote:
Do you know why r149964 makes a difference?

I understand now. The patch changed the anonymous namespace name to use get_file_function_name in all cases, where previously we were using the same name in all translation units. This was necessary to avoid treating types in the anonymous namespace in two different translation units as equivalent for typeinfo comparison.

Your patch deals with the fake anonymous namespace inserted for mangling, but doesn't deal with real anonymous namespaces, which will be incorrectly treated as identical with your patch.

I think the way to go with this is to revert the compiler bits of r149964, not mess with mangle.c at all, and insert the initial * if the typeinfo name won't have TREE_PUBLIC set, since that's precisely the property we want to mirror in comparison.

Jason

Reply via email to