[Development] QNX and Dinkumware support for constexpr and nullptr

James McDonnell jmcdonnell at qnx.com
Wed Oct 28 22:41:12 CET 2015



On 2015-10-28, 12:02 PM, "Development on behalf of Thiago Macieira"
<development-bounces at qt-project.org on behalf of
thiago.macieira at intel.com> wrote:

>On Wednesday 28 October 2015 13:28:39 Rafael Roquetto wrote:
>> Hi James,
>> 
>> On Wed, Oct 28, 2015 at 02:10:02PM +0000, James McDonnell wrote:
>> > Fixes to 6.6.0 are...unlikely.  But if you let me know what I need to
>> > take/do to re-produce the problem I can try to help out.  Is it just
>>this
>> > particular change or do I need to take all the changes in the
>> > 5.7-c++11-atomics topic?
>> 
>> You can just take this particular change and try to build atomicfptr.cpp
>> manually -> this should reproduce the problem.
>> 
>> (i.e. qcc -Vgcc_ntoarmv7le -o atomicfptr atomicfptr.cpp)

I¹ve created a QNX JIRA for the atomic function pointer compile failure.
No idea (yet) if 6.6.0 will be patched as a result.

>
>Plus the tests at tests/auto/corelib/thread/qatomicinteger and the
>atomic64.cpp config test. We may make the atomic64.cpp functionality
>mandatory 
>in Qt 5.8.

8 of the qatomicinteger tests produce ³not supported² (from initTestCase)
when run:

    tst_QAtomicInteger_Gcc_char
    tst_QAtomicInteger_Gcc_char16_t
    tst_QAtomicInteger_Gcc_qlonglong
    tst_QAtomicInteger_Gcc_qulonglong
    tst_QAtomicInteger_Gcc_schar
    tst_QAtomicInteger_Gcc_short
    tst_QAtomicInteger_Gcc_uchar
    tst_QAtomicInteger_Gcc_ushort

Everything else is a-okey-dokey.  atomic64.cpp compiles fine.

>
>These will make sure other integral types are supported properly, like
>char16_t. Our tests don't check, but please verify whether
>pointer-to-members
>and volatile combinations work too.

Volatile combinations?  Atomics of volatile types?  Or volatile atomics?

Pointer-to-member works (with one caveat) but only because they fall into
the ³I don¹t know what this is; I¹ll do it by size² category.  The caveat
is that pointer-to-member doesn¹t work if the atomic is declared volatile.
 The size based atomic has a pointer conversion that fails when the this
pointer is volatile.  I¹ve created a QNX JIRA for this problem.

>
>It would be better if DW could be fixed to support constexpr, so neither
>of 
>the patches I prepared will be necessary. That is, force
>Q_COMPILER_CONSTEXPR
>to be defined in Qt dev branch and make sure at least qtbase compiles.
>Since 
>that will most likely require more invasive changes to DW, we should
>settle 
>for <atomic> being fixed for function pointers.
>
>-- 
>Thiago Macieira - thiago.macieira (AT) intel.com
>  Software Architect - Intel Open Source Technology Center
>
>_______________________________________________
>Development mailing list
>Development at qt-project.org
>http://lists.qt-project.org/mailman/listinfo/development




More information about the Development mailing list