https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93527
Bug ID: 93527 Summary: Internal compiler error when static_assert concept std::regular on class with variadic constrained constructor. Product: gcc Version: c++-concepts Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: pacoarjonilla at yahoo dot es Target Milestone: --- Variations of the source code (not included) yield compiler errors in other GCC files and also memory access violation. GCC version: gcc git commit 5a28e2727f718f14a2afccf16c4dda814af5b6f8 (master branch as of 2020/1/31) System: OpenSUSE Tumbleweed running on intel i7-8700K $ uname -ra Linux linux-fikn 5.4.14-1-default #1 SMP Thu Jan 23 08:54:47 UTC 2020 (fc4ea7a) x86_64 x86_64 x86_64 GNU/Linux $ gcc10git --version gcc10git (GCC) 10.0.1 20200131 (experimental) configuration options: $ ../gcc/configure --disable-multilib --enable-languages=c++ --program-suffix=10git Build command: $ make -j 12 maybe related to bug 79917 Compiler command: $ /usr/local/bin/g++10git -E -std=c++2a -o namidevel.pp.cc -c namidevel.cc Compiler output: ../namidevel.cc:4:20: error: static assertion failed 4 | static_assert(std::regular<curve>); | ~~~~~^~~~~~~~~~~~~~ ../namidevel.cc:4:20: note: constraints not satisfied In file included from ../namiplot:10, from ../namidevel.cc:1: /usr/local/include/c++/10.0.1/concepts:288:15: required for the satisfaction of ‘__weakly_eq_cmp_with<curve, curve>’ /usr/local/include/c++/10.0.1/concepts:298:13: required for the satisfaction of ‘equality_comparable<curve>’ /usr/local/include/c++/10.0.1/concepts:289:4: in requirements with ‘std::remove_reference_t<curve>& __t’, ‘std::remove_reference_t<curve>& __u’ /usr/local/include/c++/10.0.1/concepts:290:10: note: the required expression ‘(__t == __u)’ is invalid 290 | { __t == __u } -> boolean; | ~~~~^~~~~~ /usr/local/include/c++/10.0.1/concepts:291:10: internal compiler error: in move_fn_p, at cp/decl.c:14076 291 | { __t != __u } -> boolean; | ~~~~^~~~~~ 0x62720e move_fn_p(tree_node const*) ../../gcc/gcc/cp/decl.c:14076 0x885111 joust ../../gcc/gcc/cp/call.c:11150 0x88546c tourney ../../gcc/gcc/cp/call.c:11656 0x892edb build_new_op_1 ../../gcc/gcc/cp/call.c:6250 0x89382d build_new_op(op_location_t const&, tree_code, int, tree_node*, tree_node*, tree_node*, tree_node**, int) ../../gcc/gcc/cp/call.c:6546 0xa71e43 build_x_binary_op(op_location_t const&, tree_code, tree_node*, tree_code, tree_node*, tree_code, tree_node**, int) ../../gcc/gcc/cp/typeck.c:4245 0xa09267 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc/gcc/cp/pt.c:19293 0x9fb299 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/gcc/cp/pt.c:18622 0x8c9e26 diagnose_valid_expression ../../gcc/gcc/cp/constraint.cc:3143 0x8cfddb satisfy_constraint_r ../../gcc/gcc/cp/constraint.cc:3182 0x8d0218 satisfy_constraint ../../gcc/gcc/cp/constraint.cc:2599 0xa490f3 finish_static_assert(tree_node*, tree_node*, unsigned int, bool) ../../gcc/gcc/cp/semantics.c:9685 0x99eaf2 cp_parser_static_assert ../../gcc/gcc/cp/parser.c:14678 0x9d48f2 cp_parser_declaration ../../gcc/gcc/cp/parser.c:13377 0x9d506a cp_parser_translation_unit ../../gcc/gcc/cp/parser.c:4731 0x9d506a c_parse_file() ../../gcc/gcc/cp/parser.c:43696 0xae942b c_common_parse_file() ../../gcc/gcc/c-family/c-opts.c:1186 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.