rjmccall added a comment.

In https://reviews.llvm.org/D52674#1271814, @smeenai wrote:

> @rjmccall I prototyped the ForRTTI parameter approach in 
> https://reviews.llvm.org/D53546. It could definitely be cleaned up a bit, but 
> it demonstrates the problems I saw with the added parameter. Namely, 
> `mangleType(QualType, SourceRange, QualifierMangleMode)` has a bunch of 
> additional logic which is needed for correctness, so we need to thread the 
> parameter through the entire chain, and the only way I could think of doing 
> that without adding the parameter to every single `mangleType` overload was 
> to have an additional switch to dispatch to the overloads with the added 
> ForRTTI parameter, which is pretty ugly.
>
> As I see it, there are a few ways to proceed here:
>
> - The approach in https://reviews.llvm.org/D53546 (cleaned up a bit). I think 
> it's pretty ugly, but you may have suggestions on how to do it better.
> - In the `mangleType` overload for `ObjCObjectPointerType`, skipping the 
> generic `mangleType` dispatch and going directly to either the 
> `ObjCObjectType` or `ObjCInterfaceType` overloads. That avoids the ugliness 
> in the generic `mangleType`, but it also requires us to duplicate some logic 
> from it in the `ObjCObjectPointerType` overload, which doesn't seem great 
> either.
> - Maintaining `ForRTTI` state in the mangler instead of threading a parameter 
> through (I'm generally not a fan of state like that, but it might be cleaner 
> than the threading in this case?)
> - Just sticking with what I'm doing in this patch.
>
>   What do you think?


Sorry for the delay.  I think duplicating the dispatch logic for 
`ObjCObjectPointerType` is probably the best approach; the pointee type will 
always an `ObjCObjectType` of some sort, and there are only two kinds of those.


Repository:
  rC Clang

https://reviews.llvm.org/D52674



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to