[C++ PATCH] PR c++/35878

Marc Glisse marc.glisse@inria.fr
Mon Mar 20 23:41:00 GMT 2017


On Tue, 21 Mar 2017, Ville Voutilainen wrote:

> On 20 March 2017 at 04:27, Jason Merrill <jason@redhat.com> wrote:
>> On Sun, Mar 19, 2017 at 6:19 PM, Ville Voutilainen
>> <ville.voutilainen@gmail.com> wrote:
>>> I ran the tests for g++.dg/init thus far. Does this patch make sense?
>>
>> The condition needs to be a lot more specific: DR 1748 only applies to
>> the non-allocating forms in [new.delete.placement], not to other
>> placement allocation functions.
>
> Round 2:
>
> The new tests tested on Linux-x64, finishing testing with the full suite on
> Linux-PPC64.
>
> 2017-03-20  Ville Voutilainen  <ville.voutilainen@gmail.com>
>
>    gcc/
>
>    PR c++/35878
>    * cp/init.c (build_new_1): Don't do a null check for
>    a namespace-scope non-replaceable placement new
>    in C++17 mode unless -fcheck-new is provided.

It looks strange to me. Why not change the definition of check_new instead 
of changing the condition that uses it? One of the tests for 
flag_check_new is redundant. In C++17 mode, you test for NULL return from 
throwing operator new, why? This is a DR, doesn't it mean that it should 
apply to all modes? Or is the hope that limiting it to an experimental 
mode might let it pass in stage 4?

-- 
Marc Glisse



More information about the Gcc-patches mailing list