erichkeane added a comment.

I ended up having to revert again after my attempt this morning, this time due 
to some crash compiling a libc++ example.  I haven't been able to repro it yet, 
but I'm hopeful that one of follow-up buildbots will give me a better 
reproducer command line.

That said, I have a pretty heavy feeling that my approach here is perhaps 
misguided.  I attempted to follow the implementation of noexcept for this, but 
I think that was an incorrect direction.  I am going to try to work on a 
replacement for this using the same test changes that I've discovered/added 
through this patch, and see if my replacement is a better fit/idea.

I THINK what we want to do instead of trying to 're setup' the template 
arguments (and instead of just 'keeping' the uninstantiated expression) is to 
run some level of 'tree-transform' that updates the names of the template 
parameters (including depths/etc), but without doing lookup.  This  I think 
would fix our 'friend function' issue, and our 'comparing constraints' stuff 
work correctly as well (rather than storing an instantiated version, but not 
reusing it except for comparing them).

I'm unsure what fallout this will cause otherwise, but I think is worth the 
diversion.  Sadly, this might end up delaying our ability to compile 
libstdc++'s ranges for another release.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D119544/new/

https://reviews.llvm.org/D119544

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

Reply via email to