This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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: C++ PATCH to merge concepts-cxx2a branch


On Thu, 10 Oct 2019 at 23:38, Jason Merrill <jason@redhat.com> wrote:

> On Thu, Oct 10, 2019 at 3:55 PM Christophe Lyon <
> christophe.lyon@linaro.org> wrote:
>
>> On Thu, 10 Oct 2019 at 01:44, Romain Geissler <romain.geissler@gmail.com>
>> wrote:
>>
>>> Le mer. 9 oct. 2019 à 19:20, Jason Merrill <jason@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  <polacek@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.
>
>
You are probably right. I replied here because gisect flagged your patch.


> and not the concepts merge.  You probably want to turn off -Wvolatile for
> affected tests.
>
Isn't the warning valid in this case? (ie. shouldn't we fix arm-fp16-ops.h
instead?)


>
>  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.
>
> Thanks, I must confess I didn't bisect for this one. It appeared in the
same range of commits
as the other regressions above: between r276750 and r276786 included.

Thanks

Christophe



> Jason
>
>


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