> This seems to be a step towards what I think is the right end result. We
> have two separate notions: the formal language linkage, and whether an
> entity is externally visible. To that end:
>
> (external, visible) -> ExternalLinkage
> (external, not visible) -> UniqueExternalLinkage [*]
> (internal, visible) -> not possible
> (internal, not visible) -> InternalLinkage
> (no linkage, visible) -> VisibleNoLinkage
> (no linkage, not visible) -> NoLinkage
>
> ... and the combining step takes the minimum on each axis.

The two cases were this would produce different result from the last patch are:

InternalLinkage        VisibleNoLinkage       -> NoLinkage
UniqueExternalLinkage  VisibleNoLinkage       -> NoLinkage

My patch produces InternalLinkage and UniqueExternalLinkage.  Can you
think of a testcase where this would be a problem? hasLinkage returns
true, so it might be possible to produce wrong mangling somehow.

Cheers,
Rafael
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to