On Thu, Oct 10, 2019 at 3:55 PM Christophe Lyon <christophe.l...@linaro.org>
wrote:

> On Thu, 10 Oct 2019 at 01:44, Romain Geissler <romain.geiss...@gmail.com>
> wrote:
>
>> Le mer. 9 oct. 2019 à 19:20, Jason Merrill <ja...@redhat.com> a écrit :
>> >
>> > Andrew has done a lot of work to update the GCC implementation of C++
>> > concepts to conform to the upcoming C++20 standard, which clarifies,
>> > removes, and changes various aspects of the earlier concepts TS.  It can
>> > still use some polishing, but other stage 1 projects are waiting for it
>> > to land on trunk and it's already a big improvement from what's
>> > currently there, so I'm going to go ahead and merge it now.
>> >
>> > Tested x86_64-pc-linux-gnu, applying to trunk.
>>
>> Hi Jason,
>>
>> This is a very good news to see preliminary concept support being
>> merged in the trunk :)
>>
>> However for me, this caused the following bootstrap failure:
>>
>> In file included from /workdir/src/gcc-10.0.0/gcc/cp/cp-lang.c:24:
>> /workdir/src/gcc-10.0.0/gcc/cp/cp-tree.h: In function 'tree_node*
>> template_info_decl_check(const_tree, const char*, int, const char*)':
>> /workdir/src/gcc-10.0.0/gcc/cp/cp-tree.h:3368:3: error:
>> 'tree_check_failed' was not declared in this scope
>>    tree_check_failed (t, f, l, fn,
>>    ^~~~~~~~~~~~~~~~~
>> /workdir/src/gcc-10.0.0/gcc/cp/cp-tree.h:3368:3: note: suggested
>> alternative: 'vec_check_alloc'
>>    tree_check_failed (t, f, l, fn,
>>    ^~~~~~~~~~~~~~~~~
>>    vec_check_alloc
>> make[2]: *** [Makefile:1118: cp/cp-lang.o] Error 1
>>
>>
> On arm, this is causing:
>  FAIL: g++.dg/ext/arm-fp16/arm-fp16-ops-1.C  -std=gnu++2a (test for excess
> errors)
> Excess errors:
> /gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops.h:31:10: warning: '++'
> expression of 'volatile'-qualified type is deprecated [-Wvolatile]
>

These would be due to

2019-08-28  Marek Polacek  <pola...@redhat.com>

        Implement P1152R4: Deprecating some uses of volatile.
        PR c++/91361
        * cp-gimplify.c (cp_fold): Set TREE_THIS_VOLATILE.
        * decl.c (grokdeclarator): Warn about a volatile-qualified
structured
        binding and return type.
        (grokparms): Warn about a volatile-qualified function parameter.
        * expr.c (mark_use) <case MODIFY_EXPR>: Emit a -Wvolatile warning.
        * typeck.c (cp_build_unary_op): Emit a -Wvolatile warning for pre
and
        post ++/-- on a volatile operand.
        (genericize_compound_lvalue): Use a better location.  Don't lose
        TREE_THIS_VOLATILE.
        (cp_build_modify_expr): Emit a -Wvolatile warning for a compound
        assignment whose LHS is volatile-qualified.  Build the assignment
with
        a more precise location.

and not the concepts merge.  You probably want to turn off -Wvolatile for
affected tests.

 and also:

> FAIL: g++.dg/cpp2a/constexpr-dtor3.C  -std=c++2a (test for excess errors)
> Excess errors:
> /gcc/testsuite/g++.dg/cpp2a/constexpr-dtor3.C:152:12:   in 'constexpr'
> expansion of '(& w13)->W7::~W7()'
>

This also seems unrelated, but I'll take a look.

Jason

Reply via email to