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