On Wed, Jan 31, 2018 at 2:55 PM, Paolo Carlini <paolo.carl...@oracle.com> wrote: > Hi again, > > On 24/01/2018 16:58, Paolo Carlini wrote: >> >> Hi, >> >> I'm looking into this rather mild regression, which should be relatively >> easy to fix. In short, Jason's fix for c++/54325 moved an >> abstract_virtuals_error_sfinae check from build_aggr_init_expr to >> build_cplus_new therefore the testcase in this new bug isn't rejected >> anymore because a special conditional for value-initialization from { } in >> convert_like_real simply calls build_value_init and quickly returns, thus >> build_cplus_new isn't involved. Thus I'm working on the best way to add back >> the check. The below, which also uses cp_unevaluated_operand, appears to >> work. Likewise something similar inside build_value_init itself, which >> however seems too generic to me (build_value_init is called in many other >> cases). I'm also not sure about cp_unevaluated_operand, whether we need >> something more precise. > > I'm gently "pinging" this message of mine... Definitely not an high priority > regression (in any case it's only a P3) but I'm still wondering if we want > to do something about the issue at this time. Lately I noticed that in terms > of testsuite even something as basic as the below passes testing, not sure > if we could consider it safe from a theoretical point of view, however.
This version is OK; unevaluated context shouldn't affect this, so that SFINAE tricks can check for it. Jason