zero9178 wrote:

> > According to the docs [0], MSVC actually defaults to 
> > `-fno-delayed-template-parsing` (`/Zc:twoPhase-` with MSVC CLI) if using 
> > C++20. This is due to `-std:c++20` implying `/permissive-` which implies 
> > `/Zc:twoPhase-`. We could therefore just disable it based on language 
> > version alone, not just based on whether we are using modules.
> > I previously tried to make it the default everywhere in 
> > https://reviews.llvm.org/D103772. @rnk argued we could always make it the 
> > default. Given that MSVC is essentially phasing it out and making all their 
> > headers compatible with `/Zc:twoPhase-` for the sake of C++20 support, it 
> > should be more feasible than previously.
> > [0] 
> > https://learn.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance?view=msvc-170
> 
> Thanks for the info! It looks like your patch can cover this patch. And we 
> can be sure that this patch itself is correct.
> 
> Would you like to send that patch itself soon? If not, I'd like to land the 
> patch soon to give better user experience. Then you can revert this. If you 
> plan to send that patch soon, I'd like to discard the patch itself.

I sadly won't have the time to push this so feel free to proceed working on 
this PR.

> > > I still support disabling delayed template parsing by default in all 
> > > configurations. Ultimately, this feature is a source of bugs, and we 
> > > should start the clock on its deprecation and removal. This, of course, 
> > > involves real work, and I haven't allocated any time (mine or others') to 
> > > it.
> > 
> > 
> > So @ChuanqiXu9 's patch is at least a conservative step towards that 
> > (limiting the change to C++20 modules where we know there is a problem) - 
> > we could then extend that to C++20, in general (as per @zero9178 's comment 
> > above). As you say deprecation and removal is more work.
> 
> Yeah, how about we at least match MSVC here - and. generalize it to C++20 
> today, leaving the older deprecation work to others/another time?

I would also support this approach as it can also be seen as matching MSVC 
behaviour

https://github.com/llvm/llvm-project/pull/69431
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to