This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFA (libstdc++): PATCH to implement C++17 over-aligned new


On Mon, Sep 12, 2016 at 12:10 PM, Jonathan Wakely <jwakely@redhat.com> wrote:
> On 12/09/16 16:13 +0200, Rainer Orth wrote:
>>
>> Jason Merrill <jason@redhat.com> writes:
>>
>>> On Thu, Sep 8, 2016 at 7:06 AM, Jonathan Wakely <jwakely@redhat.com>
>>> wrote:
>>>>
>>>> On 08/09/16 09:10 +0200, Marc Glisse wrote:
>>>>>
>>>>>
>>>>> Do we want a generic fallback implementation (similar to
>>>>> gcc/config/i386/gmm_malloc.h)? A windows version with _aligned_malloc /
>>>>> _aligned_free would also be possible.
>>>>
>>>>
>>>> Making it work for MinGW would be nice.
>>>
>>>
>>> OK, this is what I'm checking in; could someone test it on MinGW?
>>
>>
>> The new tests are failing in various ways on Solaris:
>>
>> * 32-bit:
>>
>> +FAIL: g++.dg/cpp1z/aligned-new1.C   (test for excess errors)
>> +WARNING: g++.dg/cpp1z/aligned-new1.C   compilation failed to produce
>> executable
>> +FAIL: g++.dg/cpp1z/aligned-new2.C   (test for excess errors)
>> +WARNING: g++.dg/cpp1z/aligned-new2.C   compilation failed to produce
>> executable
>> +FAIL: g++.dg/cpp1z/aligned-new3.C   (test for excess errors)
>> +WARNING: g++.dg/cpp1z/aligned-new3.C   compilation failed to produce
>> executable
>> +FAIL: g++.dg/cpp1z/aligned-new5.C  -std=gnu++11 (test for excess errors)
>> +WARNING: g++.dg/cpp1z/aligned-new5.C  -std=gnu++11 compilation failed to
>> produc
>> e executable
>> +FAIL: g++.dg/cpp1z/aligned-new5.C  -std=gnu++14 (test for excess errors)
>> +WARNING: g++.dg/cpp1z/aligned-new5.C  -std=gnu++14 compilation failed to
>> produc
>> e executable
>> +FAIL: g++.dg/cpp1z/aligned-new5.C  -std=gnu++98 (test for excess errors)
>> +WARNING: g++.dg/cpp1z/aligned-new5.C  -std=gnu++98 compilation failed to
>> produc
>> e executable
>>
>>  All instances of
>>
>> Excess errors:
>> Undefined                       first referenced
>> symbol                             in file
>> operator new(unsigned int, std::align_val_t) /var/tmp//cc_0Nrkd.o
>> ld: fatal: symbol referencing errors
>>
>>  libsupc++/new_opa.o contains
>>
>>  _ZnwjSt11align_val_t (operator new(unsigned int, std::align_val_t))
>>
>>  while for 64-bit there is
>>
>>  _ZnwmSt11align_val_t (operator new(unsigned long, std::align_val_t))
>>
>>  The former isn't matched by config/abi/pre/gnu.ver
>>
>>    # C++17 aligned new/delete
>>    _ZnwmSt11align_val_t;
>>    _ZnwmSt11align_val_tRKSt9nothrow_t;
>>    _ZnamSt11align_val_t;
>>    _ZnamSt11align_val_tRKSt9nothrow_t;
>>
>>  I strongly suspects this needs to be
>>
>>  _Znw[jmy]* just as for regular new/delete.
>
> Yes, that's right. Patch approved if you want to change that (I won't
> be able to until tomorrow).

Applied:

Attachment: jmy.diff
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]