EricWF marked 2 inline comments as done.
EricWF added inline comments.

================
Comment at: lib/Sema/SemaOverload.cpp:12543-12547
+  Expr *Original = new (S.Context)
+      BinaryOperator(OpaqueValueExpr::Create(S.Context, Args[0]),
+                     OpaqueValueExpr::Create(S.Context, Args[1]), Opc,
+                     Rewritten->getType(), Rewritten->getValueKind(),
+                     Rewritten->getObjectKind(), OpLoc, S.FPFeatures);
----------------
EricWF wrote:
> rsmith wrote:
> > If you want to model this as a generic (syntactic form, semantic form) 
> > pair, the syntactic form needs to preserve enough information that 
> > `TreeTransform` on it can recreate the semantic form. That means you need 
> > to store a `CXXOperatorCallExpr` to an `UnresolvedLookupExpr` to hold `Fns` 
> > if `Fns` is not empty (see the code at the start of `CreateOverloadedBinOp` 
> > that deals with the type-dependent case for an example of what you would 
> > need to do).
> > 
> > Though perhaps this is as good a reason as any to give up the idea of a 
> > generic rewrite expression and add something specific to a three-way 
> > comparison rewrite; the representation needed to fit this into a generic 
> > rewrite mechanism is very unwieldy. (If we add any more forms of rewritten 
> > operator later, we can consider whether a generalization is worthwhile.)
> I think the FIXME comment may be incorrect.
> 
> Shouldn't this be sufficient since we never actually build the rewritten 
> expression until the input expressions are no longer type dependent?
> Additionally, with this representation `TreeTransform` can transform the 
> semantic form, since (if I'm correct), a rebuild should never re-perform 
> overload resolution to choose how to rewrite the initial expression. (Does 
> that make sense, and is it correct?)
> 
> 
> 
> I'll go ahead and start converting to a less-general representation of the 
> rewritten expression.
Nevermind. This was answered offline.


https://reviews.llvm.org/D45680



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

Reply via email to