Tested dg.exp=reflect/* on x86_64-pc-linux-gnu, ok for trunk?
-- >8 --
This is mostly cosmetic. It had to be a macro because a constexpr fn
would need a metafn_info* parameter but that struct comes only after
the %{ %} section in the gperf file, and we can only have one such
section.
gcc/cp/ChangeLog:
* metafns.gperf: Define METAFN_KIND_ARG.
* metafns.h: Regenerate.
* reflect.cc (process_metafunction): Use METAFN_KIND_ARG.
---
gcc/cp/metafns.gperf | 4 +
gcc/cp/metafns.h | 474 ++++++++++++++++++++++---------------------
gcc/cp/reflect.cc | 14 +-
3 files changed, 248 insertions(+), 244 deletions(-)
diff --git a/gcc/cp/metafns.gperf b/gcc/cp/metafns.gperf
index a30f49c4e8c..2559384fce3 100644
--- a/gcc/cp/metafns.gperf
+++ b/gcc/cp/metafns.gperf
@@ -264,6 +264,10 @@ enum {
METAFN_KIND_MASK = (1 << METAFN_KIND_SHIFT) - 1
};
+/* Get the metafn_kind_arg for argument ARGNO. */
+#define METAFN_KIND_ARG(ARGNO) \
+ ((minfo->kind >> ((ARGNO + 1) * METAFN_KIND_SHIFT)) & METAFN_KIND_MASK)
+
/* Possible return types of metafunctions. */
enum metafn_kind_ret {
METAFN_KIND_RET_BOOL,
diff --git a/gcc/cp/metafns.h b/gcc/cp/metafns.h
index f90ee368031..62512fec59a 100644
--- a/gcc/cp/metafns.h
+++ b/gcc/cp/metafns.h
@@ -292,6 +292,10 @@ enum {
METAFN_KIND_MASK = (1 << METAFN_KIND_SHIFT) - 1
};
+/* Get the metafn_kind_arg for argument ARGNO. */
+#define METAFN_KIND_ARG(ARGNO) \
+ ((minfo->kind >> ((ARGNO + 1) * METAFN_KIND_SHIFT)) & METAFN_KIND_MASK)
+
/* Possible return types of metafunctions. */
enum metafn_kind_ret {
METAFN_KIND_RET_BOOL,
@@ -468,7 +472,7 @@ enum metafn_kind {
= (METAFN_KIND_ARGS_INPUT_RANGE << METAFN_KIND_SHIFT)
| METAFN_KIND_RET_U8STRING_VIEW
};
-#line 444 "metafns.gperf"
+#line 448 "metafns.gperf"
struct metafn_info
{
/* A name within "std::meta::" (or "std::meta::access_context::"). */
@@ -592,473 +596,473 @@ metafn_lookup::find (const char *str, size_t len)
#endif
static const struct metafn_info wordlist[] =
{
-#line 644 "metafns.gperf"
+#line 648 "metafns.gperf"
{"rank", METAFN_RANK, METAFN_KIND_SIZE_T_TINFO,},
-#line 574 "metafns.gperf"
+#line 578 "metafns.gperf"
{"is_void_type", METAFN_IS_VOID_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 579 "metafns.gperf"
+#line 583 "metafns.gperf"
{"is_pointer_type", METAFN_IS_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 485 "metafns.gperf"
+#line 489 "metafns.gperf"
{"is_volatile", METAFN_IS_VOLATILE, METAFN_KIND_BOOL_INFO,},
-#line 531 "metafns.gperf"
+#line 535 "metafns.gperf"
{"is_value", METAFN_IS_VALUE, METAFN_KIND_BOOL_INFO,},
-#line 538 "metafns.gperf"
+#line 542 "metafns.gperf"
{"is_base", METAFN_IS_BASE, METAFN_KIND_BOOL_INFO,},
-#line 499 "metafns.gperf"
+#line 503 "metafns.gperf"
{"is_variable", METAFN_IS_VARIABLE, METAFN_KIND_BOOL_INFO,},
-#line 650 "metafns.gperf"
+#line 654 "metafns.gperf"
{"is_nothrow_convertible_type", METAFN_IS_NOTHROW_CONVERTIBLE_TYPE,
METAFN_KIND_BOOL_TINFO_TINFO,},
-#line 629 "metafns.gperf"
+#line 633 "metafns.gperf"
{"is_nothrow_constructible_type", METAFN_IS_NOTHROW_CONSTRUCTIBLE_TYPE,
METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
-#line 655 "metafns.gperf"
+#line 659 "metafns.gperf"
{"is_nothrow_invocable_type", METAFN_IS_NOTHROW_INVOCABLE_TYPE,
METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
-#line 634 "metafns.gperf"
+#line 638 "metafns.gperf"
{"is_nothrow_copy_assignable_type",
METAFN_IS_NOTHROW_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 656 "metafns.gperf"
+#line 660 "metafns.gperf"
{"is_nothrow_invocable_r_type", METAFN_IS_NOTHROW_INVOCABLE_R_TYPE,
METAFN_KIND_BOOL_TINFO_TINFO_REFLECTION_RANGET,},
-#line 631 "metafns.gperf"
+#line 635 "metafns.gperf"
{"is_nothrow_copy_constructible_type",
METAFN_IS_NOTHROW_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 647 "metafns.gperf"
+#line 651 "metafns.gperf"
{"is_base_of_type", METAFN_IS_BASE_OF_TYPE,
METAFN_KIND_BOOL_TINFO_TINFO,},
-#line 635 "metafns.gperf"
+#line 639 "metafns.gperf"
{"is_nothrow_move_assignable_type",
METAFN_IS_NOTHROW_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 632 "metafns.gperf"
+#line 636 "metafns.gperf"
{"is_nothrow_move_constructible_type",
METAFN_IS_NOTHROW_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 523 "metafns.gperf"
+#line 527 "metafns.gperf"
{"is_variable_template", METAFN_IS_VARIABLE_TEMPLATE,
METAFN_KIND_BOOL_INFO,},
-#line 682 "metafns.gperf"
+#line 686 "metafns.gperf"
{"variant_size", METAFN_VARIANT_SIZE, METAFN_KIND_SIZE_T_TINFO,},
-#line 575 "metafns.gperf"
+#line 579 "metafns.gperf"
{"is_null_pointer_type", METAFN_IS_NULL_POINTER_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 500 "metafns.gperf"
+#line 504 "metafns.gperf"
{"is_type", METAFN_IS_TYPE, METAFN_KIND_BOOL_INFO,},
-#line 468 "metafns.gperf"
+#line 472 "metafns.gperf"
{"is_public", METAFN_IS_PUBLIC, METAFN_KIND_BOOL_INFO,},
-#line 480 "metafns.gperf"
+#line 484 "metafns.gperf"
{"is_noexcept", METAFN_IS_NOEXCEPT, METAFN_KIND_BOOL_INFO,},
-#line 563 "metafns.gperf"
+#line 567 "metafns.gperf"
{"extract", METAFN_EXTRACT, METAFN_KIND_TEMPLATE_PARM_INFO,},
-#line 683 "metafns.gperf"
+#line 687 "metafns.gperf"
{"variant_alternative", METAFN_VARIANT_ALTERNATIVE,
METAFN_KIND_INFO_SIZE_T_TINFO,},
-#line 601 "metafns.gperf"
+#line 605 "metafns.gperf"
{"is_polymorphic_type", METAFN_IS_POLYMORPHIC_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 470 "metafns.gperf"
+#line 474 "metafns.gperf"
{"is_private", METAFN_IS_PRIVATE, METAFN_KIND_BOOL_INFO,},
-#line 504 "metafns.gperf"
+#line 508 "metafns.gperf"
{"is_function", METAFN_IS_FUNCTION, METAFN_KIND_BOOL_INFO,},
-#line 501 "metafns.gperf"
+#line 505 "metafns.gperf"
{"is_namespace", METAFN_IS_NAMESPACE, METAFN_KIND_BOOL_INFO,},
-#line 652 "metafns.gperf"
+#line 656 "metafns.gperf"
{"is_pointer_interconvertible_base_of_type",
METAFN_IS_POINTER_INTERCONVERTIBLE_BASE_OF_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
-#line 608 "metafns.gperf"
+#line 612 "metafns.gperf"
{"is_bounded_array_type", METAFN_IS_BOUNDED_ARRAY_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 484 "metafns.gperf"
+#line 488 "metafns.gperf"
{"is_const", METAFN_IS_CONST, METAFN_KIND_BOOL_INFO,},
-#line 530 "metafns.gperf"
+#line 534 "metafns.gperf"
{"is_concept", METAFN_IS_CONCEPT, METAFN_KIND_BOOL_INFO,},
-#line 646 "metafns.gperf"
+#line 650 "metafns.gperf"
{"is_same_type", METAFN_IS_SAME_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
-#line 554 "metafns.gperf"
+#line 558 "metafns.gperf"
{"bases_of", METAFN_BASES_OF,
METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
-#line 493 "metafns.gperf"
+#line 497 "metafns.gperf"
{"has_module_linkage", METAFN_HAS_MODULE_LINKAGE,
METAFN_KIND_BOOL_INFO,},
-#line 522 "metafns.gperf"
+#line 526 "metafns.gperf"
{"is_function_template", METAFN_IS_FUNCTION_TEMPLATE,
METAFN_KIND_BOOL_INFO,},
-#line 633 "metafns.gperf"
+#line 637 "metafns.gperf"
{"is_nothrow_assignable_type", METAFN_IS_NOTHROW_ASSIGNABLE_TYPE,
METAFN_KIND_BOOL_TINFO_TINFO,},
-#line 505 "metafns.gperf"
+#line 509 "metafns.gperf"
{"is_conversion_function", METAFN_IS_CONVERSION_FUNCTION,
METAFN_KIND_BOOL_INFO,},
-#line 638 "metafns.gperf"
+#line 642 "metafns.gperf"
{"is_nothrow_destructible_type", METAFN_IS_NOTHROW_DESTRUCTIBLE_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 649 "metafns.gperf"
+#line 653 "metafns.gperf"
{"is_convertible_type", METAFN_IS_CONVERTIBLE_TYPE,
METAFN_KIND_BOOL_TINFO_TINFO,},
-#line 639 "metafns.gperf"
+#line 643 "metafns.gperf"
{"is_implicit_lifetime_type", METAFN_IS_IMPLICIT_LIFETIME_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 521 "metafns.gperf"
+#line 525 "metafns.gperf"
{"is_template", METAFN_IS_TEMPLATE, METAFN_KIND_BOOL_INFO,},
-#line 630 "metafns.gperf"
+#line 634 "metafns.gperf"
{"is_nothrow_default_constructible_type",
METAFN_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 564 "metafns.gperf"
+#line 568 "metafns.gperf"
{"can_substitute", METAFN_CAN_SUBSTITUTE,
METAFN_KIND_INFO_INFO_REFLECTION_RANGE,},
-#line 526 "metafns.gperf"
+#line 530 "metafns.gperf"
{"is_conversion_function_template",
METAFN_IS_CONVERSION_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,},
-#line 457 "metafns.gperf"
+#line 461 "metafns.gperf"
{"symbol_of", METAFN_SYMBOL_OF, METAFN_KIND_STRING_VIEW_OPERATORS,},
-#line 613 "metafns.gperf"
+#line 617 "metafns.gperf"
{"is_copy_constructible_type", METAFN_IS_COPY_CONSTRUCTIBLE_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 611 "metafns.gperf"
+#line 615 "metafns.gperf"
{"is_constructible_type", METAFN_IS_CONSTRUCTIBLE_TYPE,
METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
-#line 491 "metafns.gperf"
+#line 495 "metafns.gperf"
{"has_automatic_storage_duration",
METAFN_HAS_AUTOMATIC_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,},
-#line 616 "metafns.gperf"
+#line 620 "metafns.gperf"
{"is_copy_assignable_type", METAFN_IS_COPY_ASSIGNABLE_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 680 "metafns.gperf"
+#line 684 "metafns.gperf"
{"tuple_size", METAFN_TUPLE_SIZE, METAFN_KIND_SIZE_T_TINFO,},
-#line 502 "metafns.gperf"
+#line 506 "metafns.gperf"
{"is_type_alias", METAFN_IS_TYPE_ALIAS, METAFN_KIND_BOOL_INFO,},
-#line 511 "metafns.gperf"
+#line 515 "metafns.gperf"
{"is_copy_constructor", METAFN_IS_COPY_CONSTRUCTOR,
METAFN_KIND_BOOL_INFO,},
-#line 547 "metafns.gperf"
+#line 551 "metafns.gperf"
{"variable_of", METAFN_VARIABLE_OF, METAFN_KIND_INFO_INFO,},
-#line 540 "metafns.gperf"
+#line 544 "metafns.gperf"
{"has_parent", METAFN_HAS_PARENT, METAFN_KIND_BOOL_INFO,},
-#line 588 "metafns.gperf"
+#line 592 "metafns.gperf"
{"is_reflection_type", METAFN_IS_REFLECTION_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 591 "metafns.gperf"
+#line 595 "metafns.gperf"
{"is_fundamental_type", METAFN_IS_FUNDAMENTAL_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 651 "metafns.gperf"
+#line 655 "metafns.gperf"
{"is_layout_compatible_type", METAFN_IS_LAYOUT_COMPATIBLE_TYPE,
METAFN_KIND_BOOL_TINFO_TINFO,},
-#line 562 "metafns.gperf"
+#line 566 "metafns.gperf"
{"bit_size_of", METAFN_BIT_SIZE_OF, METAFN_KIND_SIZE_T_INFO,},
-#line 514 "metafns.gperf"
+#line 518 "metafns.gperf"
{"is_copy_assignment", METAFN_IS_COPY_ASSIGNMENT,
METAFN_KIND_BOOL_INFO,},
-#line 687 "metafns.gperf"
+#line 691 "metafns.gperf"
{"current", METAFN_ACCESS_CONTEXT_CURRENT,
METAFN_KIND_ACCESS_CONTEXT_VOID,},
-#line 674 "metafns.gperf"
+#line 678 "metafns.gperf"
{"common_type", METAFN_COMMON_TYPE, METAFN_KIND_INFO_REFLECTION_RANGET,},
-#line 529 "metafns.gperf"
+#line 533 "metafns.gperf"
{"is_constructor_template", METAFN_IS_CONSTRUCTOR_TEMPLATE,
METAFN_KIND_BOOL_INFO,},
-#line 684 "metafns.gperf"
+#line 688 "metafns.gperf"
{"type_order", METAFN_TYPE_ORDER,
METAFN_KIND_STRONG_ORDERING_TINFO_TINFO,},
-#line 675 "metafns.gperf"
+#line 679 "metafns.gperf"
{"common_reference", METAFN_COMMON_REFERENCE,
METAFN_KIND_INFO_REFLECTION_RANGET,},
-#line 539 "metafns.gperf"
+#line 543 "metafns.gperf"
{"has_default_member_initializer",
METAFN_HAS_DEFAULT_MEMBER_INITIALIZER, METAFN_KIND_BOOL_INFO,},
-#line 681 "metafns.gperf"
+#line 685 "metafns.gperf"
{"tuple_element", METAFN_TUPLE_ELEMENT, METAFN_KIND_INFO_SIZE_T_TINFO,},
-#line 568 "metafns.gperf"
+#line 572 "metafns.gperf"
{"reflect_function", METAFN_REFLECT_FUNCTION,
METAFN_KIND_INFO_TEMPLATE_PARM_REF,},
-#line 519 "metafns.gperf"
+#line 523 "metafns.gperf"
{"has_default_argument", METAFN_HAS_DEFAULT_ARGUMENT,
METAFN_KIND_BOOL_INFO,},
-#line 614 "metafns.gperf"
+#line 618 "metafns.gperf"
{"is_move_constructible_type", METAFN_IS_MOVE_CONSTRUCTIBLE_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 465 "metafns.gperf"
+#line 469 "metafns.gperf"
{"type_of", METAFN_TYPE_OF, METAFN_KIND_INFO_INFO,},
-#line 509 "metafns.gperf"
+#line 513 "metafns.gperf"
{"is_constructor", METAFN_IS_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,},
-#line 619 "metafns.gperf"
+#line 623 "metafns.gperf"
{"is_swappable_type", METAFN_IS_SWAPPABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 637 "metafns.gperf"
+#line 641 "metafns.gperf"
{"is_nothrow_swappable_type", METAFN_IS_NOTHROW_SWAPPABLE_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 589 "metafns.gperf"
+#line 593 "metafns.gperf"
{"is_reference_type", METAFN_IS_REFERENCE_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 496 "metafns.gperf"
+#line 500 "metafns.gperf"
{"has_linkage", METAFN_HAS_LINKAGE, METAFN_KIND_BOOL_INFO,},
-#line 636 "metafns.gperf"
+#line 640 "metafns.gperf"
{"is_nothrow_swappable_with_type",
METAFN_IS_NOTHROW_SWAPPABLE_WITH_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
-#line 595 "metafns.gperf"
+#line 599 "metafns.gperf"
{"is_member_pointer_type", METAFN_IS_MEMBER_POINTER_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 617 "metafns.gperf"
+#line 621 "metafns.gperf"
{"is_move_assignable_type", METAFN_IS_MOVE_ASSIGNABLE_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 520 "metafns.gperf"
+#line 524 "metafns.gperf"
{"has_ellipsis_parameter", METAFN_HAS_ELLIPSIS_PARAMETER,
METAFN_KIND_BOOL_INFO,},
-#line 512 "metafns.gperf"
+#line 516 "metafns.gperf"
{"is_move_constructor", METAFN_IS_MOVE_CONSTRUCTOR,
METAFN_KIND_BOOL_INFO,},
-#line 546 "metafns.gperf"
+#line 550 "metafns.gperf"
{"parameters_of", METAFN_PARAMETERS_OF, METAFN_KIND_VECTOR_INFO_INFO,},
-#line 560 "metafns.gperf"
+#line 564 "metafns.gperf"
{"size_of", METAFN_SIZE_OF, METAFN_KIND_SIZE_T_INFO,},
-#line 515 "metafns.gperf"
+#line 519 "metafns.gperf"
{"is_move_assignment", METAFN_IS_MOVE_ASSIGNMENT,
METAFN_KIND_BOOL_INFO,},
-#line 615 "metafns.gperf"
+#line 619 "metafns.gperf"
{"is_assignable_type", METAFN_IS_ASSIGNABLE_TYPE,
METAFN_KIND_BOOL_TINFO_TINFO,},
-#line 534 "metafns.gperf"
+#line 538 "metafns.gperf"
{"is_class_member", METAFN_IS_CLASS_MEMBER, METAFN_KIND_BOOL_INFO,},
-#line 598 "metafns.gperf"
+#line 602 "metafns.gperf"
{"is_trivially_copyable_type", METAFN_IS_TRIVIALLY_COPYABLE_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 513 "metafns.gperf"
+#line 517 "metafns.gperf"
{"is_assignment", METAFN_IS_ASSIGNMENT, METAFN_KIND_BOOL_INFO,},
-#line 535 "metafns.gperf"
+#line 539 "metafns.gperf"
{"is_namespace_member", METAFN_IS_NAMESPACE_MEMBER,
METAFN_KIND_BOOL_INFO,},
-#line 553 "metafns.gperf"
+#line 557 "metafns.gperf"
{"members_of", METAFN_MEMBERS_OF,
METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
-#line 621 "metafns.gperf"
+#line 625 "metafns.gperf"
{"is_trivially_constructible_type",
METAFN_IS_TRIVIALLY_CONSTRUCTIBLE_TYPE,
METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
-#line 626 "metafns.gperf"
+#line 630 "metafns.gperf"
{"is_trivially_copy_assignable_type",
METAFN_IS_TRIVIALLY_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 623 "metafns.gperf"
+#line 627 "metafns.gperf"
{"is_trivially_copy_constructible_type",
METAFN_IS_TRIVIALLY_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 645 "metafns.gperf"
+#line 649 "metafns.gperf"
{"extent", METAFN_EXTENT, METAFN_KIND_SIZE_T_TINFO_UNSIGNED,},
-#line 584 "metafns.gperf"
+#line 588 "metafns.gperf"
{"is_enum_type", METAFN_IS_ENUM_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 544 "metafns.gperf"
+#line 548 "metafns.gperf"
{"template_of", METAFN_TEMPLATE_OF, METAFN_KIND_INFO_INFO,},
-#line 524 "metafns.gperf"
+#line 528 "metafns.gperf"
{"is_class_template", METAFN_IS_CLASS_TEMPLATE, METAFN_KIND_BOOL_INFO,},
-#line 508 "metafns.gperf"
+#line 512 "metafns.gperf"
{"is_special_member_function", METAFN_IS_SPECIAL_MEMBER_FUNCTION,
METAFN_KIND_BOOL_INFO,},
-#line 469 "metafns.gperf"
+#line 473 "metafns.gperf"
{"is_protected", METAFN_IS_PROTECTED, METAFN_KIND_BOOL_INFO,},
-#line 536 "metafns.gperf"
+#line 540 "metafns.gperf"
{"is_nonstatic_data_member", METAFN_IS_NONSTATIC_DATA_MEMBER,
METAFN_KIND_BOOL_INFO,},
-#line 678 "metafns.gperf"
+#line 682 "metafns.gperf"
{"unwrap_reference", METAFN_UNWRAP_REFERENCE, METAFN_KIND_INFO_TINFO,},
-#line 498 "metafns.gperf"
+#line 502 "metafns.gperf"
{"is_enumerable_type", METAFN_IS_ENUMERABLE_TYPE,
METAFN_KIND_BOOL_INFO,},
-#line 590 "metafns.gperf"
+#line 594 "metafns.gperf"
{"is_arithmetic_type", METAFN_IS_ARITHMETIC_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 541 "metafns.gperf"
+#line 545 "metafns.gperf"
{"parent_of", METAFN_PARENT_OF, METAFN_KIND_INFO_INFO,},
-#line 472 "metafns.gperf"
+#line 476 "metafns.gperf"
{"is_pure_virtual", METAFN_IS_PURE_VIRTUAL, METAFN_KIND_BOOL_INFO,},
-#line 671 "metafns.gperf"
+#line 675 "metafns.gperf"
{"add_pointer", METAFN_ADD_POINTER, METAFN_KIND_INFO_TINFO,},
-#line 612 "metafns.gperf"
+#line 616 "metafns.gperf"
{"is_default_constructible_type", METAFN_IS_DEFAULT_CONSTRUCTIBLE_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 676 "metafns.gperf"
+#line 680 "metafns.gperf"
{"underlying_type", METAFN_UNDERLYING_TYPE, METAFN_KIND_INFO_TINFO,},
-#line 517 "metafns.gperf"
+#line 521 "metafns.gperf"
{"is_function_parameter", METAFN_IS_FUNCTION_PARAMETER,
METAFN_KIND_BOOL_INFO,},
-#line 460 "metafns.gperf"
+#line 464 "metafns.gperf"
{"identifier_of", METAFN_IDENTIFIER_OF, METAFN_KIND_STRING_VIEW_INFO,},
-#line 593 "metafns.gperf"
+#line 597 "metafns.gperf"
{"is_scalar_type", METAFN_IS_SCALAR_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 665 "metafns.gperf"
+#line 669 "metafns.gperf"
{"add_rvalue_reference", METAFN_ADD_RVALUE_REFERENCE,
METAFN_KIND_INFO_TINFO,},
-#line 486 "metafns.gperf"
+#line 490 "metafns.gperf"
{"is_mutable_member", METAFN_IS_MUTABLE_MEMBER, METAFN_KIND_BOOL_INFO,},
-#line 503 "metafns.gperf"
+#line 507 "metafns.gperf"
{"is_namespace_alias", METAFN_IS_NAMESPACE_ALIAS,
METAFN_KIND_BOOL_INFO,},
-#line 627 "metafns.gperf"
+#line 631 "metafns.gperf"
{"is_trivially_move_assignable_type",
METAFN_IS_TRIVIALLY_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 624 "metafns.gperf"
+#line 628 "metafns.gperf"
{"is_trivially_move_constructible_type",
METAFN_IS_TRIVIALLY_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 510 "metafns.gperf"
+#line 514 "metafns.gperf"
{"is_default_constructor", METAFN_IS_DEFAULT_CONSTRUCTOR,
METAFN_KIND_BOOL_INFO,},
-#line 482 "metafns.gperf"
+#line 486 "metafns.gperf"
{"is_enumerator", METAFN_IS_ENUMERATOR, METAFN_KIND_BOOL_INFO,},
-#line 532 "metafns.gperf"
+#line 536 "metafns.gperf"
{"is_object", METAFN_IS_OBJECT, METAFN_KIND_BOOL_INFO,},
-#line 604 "metafns.gperf"
+#line 608 "metafns.gperf"
{"is_aggregate_type", METAFN_IS_AGGREGATE_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 516 "metafns.gperf"
+#line 520 "metafns.gperf"
{"is_destructor", METAFN_IS_DESTRUCTOR, METAFN_KIND_BOOL_INFO,},
-#line 583 "metafns.gperf"
+#line 587 "metafns.gperf"
{"is_member_function_pointer_type",
METAFN_IS_MEMBER_FUNCTION_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 592 "metafns.gperf"
+#line 596 "metafns.gperf"
{"is_object_type", METAFN_IS_OBJECT_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 565 "metafns.gperf"
+#line 569 "metafns.gperf"
{"substitute", METAFN_SUBSTITUTE,
METAFN_KIND_INFO_INFO_REFLECTION_RANGE,},
-#line 581 "metafns.gperf"
+#line 585 "metafns.gperf"
{"is_rvalue_reference_type", METAFN_IS_RVALUE_REFERENCE_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 662 "metafns.gperf"
+#line 666 "metafns.gperf"
{"add_cv", METAFN_ADD_CV, METAFN_KIND_INFO_TINFO,},
-#line 566 "metafns.gperf"
+#line 570 "metafns.gperf"
{"reflect_constant", METAFN_REFLECT_CONSTANT,
METAFN_KIND_INFO_TEMPLATE_PARM,},
-#line 625 "metafns.gperf"
+#line 629 "metafns.gperf"
{"is_trivially_assignable_type", METAFN_IS_TRIVIALLY_ASSIGNABLE_TYPE,
METAFN_KIND_BOOL_TINFO_TINFO,},
-#line 471 "metafns.gperf"
+#line 475 "metafns.gperf"
{"is_virtual", METAFN_IS_VIRTUAL, METAFN_KIND_BOOL_INFO,},
-#line 489 "metafns.gperf"
+#line 493 "metafns.gperf"
{"has_static_storage_duration", METAFN_HAS_STATIC_STORAGE_DURATION,
METAFN_KIND_BOOL_INFO,},
-#line 664 "metafns.gperf"
+#line 668 "metafns.gperf"
{"add_lvalue_reference", METAFN_ADD_LVALUE_REFERENCE,
METAFN_KIND_INFO_TINFO,},
-#line 580 "metafns.gperf"
+#line 584 "metafns.gperf"
{"is_lvalue_reference_type", METAFN_IS_LVALUE_REFERENCE_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 558 "metafns.gperf"
+#line 562 "metafns.gperf"
{"enumerators_of", METAFN_ENUMERATORS_OF, METAFN_KIND_VECTOR_INFO_INFO,},
-#line 620 "metafns.gperf"
+#line 624 "metafns.gperf"
{"is_destructible_type", METAFN_IS_DESTRUCTIBLE_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 545 "metafns.gperf"
+#line 549 "metafns.gperf"
{"template_arguments_of", METAFN_TEMPLATE_ARGUMENTS_OF,
METAFN_KIND_VECTOR_INFO_INFO,},
-#line 653 "metafns.gperf"
+#line 657 "metafns.gperf"
{"is_invocable_type", METAFN_IS_INVOCABLE_TYPE,
METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
-#line 660 "metafns.gperf"
+#line 664 "metafns.gperf"
{"add_const", METAFN_ADD_CONST, METAFN_KIND_INFO_TINFO,},
-#line 525 "metafns.gperf"
+#line 529 "metafns.gperf"
{"is_alias_template", METAFN_IS_ALIAS_TEMPLATE, METAFN_KIND_BOOL_INFO,},
-#line 600 "metafns.gperf"
+#line 604 "metafns.gperf"
{"is_empty_type", METAFN_IS_EMPTY_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 628 "metafns.gperf"
+#line 632 "metafns.gperf"
{"is_trivially_destructible_type",
METAFN_IS_TRIVIALLY_DESTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 494 "metafns.gperf"
+#line 498 "metafns.gperf"
{"has_external_linkage", METAFN_HAS_EXTERNAL_LINKAGE,
METAFN_KIND_BOOL_INFO,},
-#line 549 "metafns.gperf"
+#line 553 "metafns.gperf"
{"is_accessible", METAFN_IS_ACCESSIBLE,
METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
-#line 654 "metafns.gperf"
+#line 658 "metafns.gperf"
{"is_invocable_r_type", METAFN_IS_INVOCABLE_R_TYPE,
METAFN_KIND_BOOL_TINFO_TINFO_REFLECTION_RANGET,},
-#line 648 "metafns.gperf"
+#line 652 "metafns.gperf"
{"is_virtual_base_of_type", METAFN_IS_VIRTUAL_BASE_OF_TYPE,
METAFN_KIND_BOOL_TINFO_TINFO,},
-#line 597 "metafns.gperf"
+#line 601 "metafns.gperf"
{"is_volatile_type", METAFN_IS_VOLATILE_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 569 "metafns.gperf"
+#line 573 "metafns.gperf"
{"reflect_constant_string", METAFN_REFLECT_CONSTANT_STRING,
METAFN_KIND_INFO_INPUT_RANGE,},
-#line 622 "metafns.gperf"
+#line 626 "metafns.gperf"
{"is_trivially_default_constructible_type",
METAFN_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 528 "metafns.gperf"
+#line 532 "metafns.gperf"
{"is_literal_operator_template", METAFN_IS_LITERAL_OPERATOR_TEMPLATE,
METAFN_KIND_BOOL_INFO,},
-#line 456 "metafns.gperf"
+#line 460 "metafns.gperf"
{"operator_of", METAFN_OPERATOR_OF, METAFN_KIND_OPERATORS_INFO,},
-#line 606 "metafns.gperf"
- {"is_signed_type", METAFN_IS_SIGNED_TYPE, METAFN_KIND_BOOL_TINFO,},
#line 610 "metafns.gperf"
+ {"is_signed_type", METAFN_IS_SIGNED_TYPE, METAFN_KIND_BOOL_TINFO,},
+#line 614 "metafns.gperf"
{"is_scoped_enum_type", METAFN_IS_SCOPED_ENUM_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 618 "metafns.gperf"
+#line 622 "metafns.gperf"
{"is_swappable_with_type", METAFN_IS_SWAPPABLE_WITH_TYPE,
METAFN_KIND_BOOL_TINFO_TINFO,},
-#line 557 "metafns.gperf"
+#line 561 "metafns.gperf"
{"subobjects_of", METAFN_SUBOBJECTS_OF,
METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
-#line 559 "metafns.gperf"
+#line 563 "metafns.gperf"
{"offset_of", METAFN_OFFSET_OF, METAFN_KIND_MEMBER_OFFSET_INFO,},
-#line 533 "metafns.gperf"
+#line 537 "metafns.gperf"
{"is_structured_binding", METAFN_IS_STRUCTURED_BINDING,
METAFN_KIND_BOOL_INFO,},
-#line 474 "metafns.gperf"
+#line 478 "metafns.gperf"
{"is_final", METAFN_IS_FINAL, METAFN_KIND_BOOL_INFO,},
-#line 507 "metafns.gperf"
+#line 511 "metafns.gperf"
{"is_literal_operator", METAFN_IS_LITERAL_OPERATOR,
METAFN_KIND_BOOL_INFO,},
-#line 667 "metafns.gperf"
+#line 671 "metafns.gperf"
{"make_unsigned", METAFN_MAKE_UNSIGNED, METAFN_KIND_INFO_TINFO,},
-#line 463 "metafns.gperf"
+#line 467 "metafns.gperf"
{"u8display_string_of", METAFN_U8DISPLAY_STRING_OF,
METAFN_KIND_U8STRING_VIEW_INFO,},
-#line 640 "metafns.gperf"
+#line 644 "metafns.gperf"
{"has_virtual_destructor", METAFN_HAS_VIRTUAL_DESTRUCTOR,
METAFN_KIND_BOOL_TINFO,},
-#line 596 "metafns.gperf"
+#line 600 "metafns.gperf"
{"is_const_type", METAFN_IS_CONST_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 479 "metafns.gperf"
+#line 483 "metafns.gperf"
{"is_explicit", METAFN_IS_EXPLICIT, METAFN_KIND_BOOL_INFO,},
-#line 572 "metafns.gperf"
+#line 576 "metafns.gperf"
{"is_data_member_spec", METAFN_IS_DATA_MEMBER_SPEC,
METAFN_KIND_BOOL_INFO,},
-#line 497 "metafns.gperf"
+#line 501 "metafns.gperf"
{"is_complete_type", METAFN_IS_COMPLETE_TYPE, METAFN_KIND_BOOL_INFO,},
-#line 483 "metafns.gperf"
+#line 487 "metafns.gperf"
{"is_annotation", METAFN_IS_ANNOTATION, METAFN_KIND_BOOL_INFO,},
-#line 587 "metafns.gperf"
+#line 591 "metafns.gperf"
{"is_function_type", METAFN_IS_FUNCTION_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 548 "metafns.gperf"
+#line 552 "metafns.gperf"
{"return_type_of", METAFN_RETURN_TYPE_OF, METAFN_KIND_INFO_INFO,},
-#line 475 "metafns.gperf"
+#line 479 "metafns.gperf"
{"is_deleted", METAFN_IS_DELETED, METAFN_KIND_BOOL_INFO,},
-#line 467 "metafns.gperf"
+#line 471 "metafns.gperf"
{"constant_of", METAFN_CONSTANT_OF, METAFN_KIND_INFO_INFO,},
-#line 661 "metafns.gperf"
+#line 665 "metafns.gperf"
{"add_volatile", METAFN_ADD_VOLATILE, METAFN_KIND_INFO_TINFO,},
-#line 476 "metafns.gperf"
+#line 480 "metafns.gperf"
{"is_defaulted", METAFN_IS_DEFAULTED, METAFN_KIND_BOOL_INFO,},
-#line 641 "metafns.gperf"
+#line 645 "metafns.gperf"
{"has_unique_object_representations",
METAFN_HAS_UNIQUE_OBJECT_REPRESENTATIONS, METAFN_KIND_BOOL_TINFO,},
-#line 582 "metafns.gperf"
+#line 586 "metafns.gperf"
{"is_member_object_pointer_type", METAFN_IS_MEMBER_OBJECT_POINTER_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 462 "metafns.gperf"
+#line 466 "metafns.gperf"
{"display_string_of", METAFN_DISPLAY_STRING_OF,
METAFN_KIND_STRING_VIEW_INFO,},
-#line 518 "metafns.gperf"
+#line 522 "metafns.gperf"
{"is_explicit_object_parameter", METAFN_IS_EXPLICIT_OBJECT_PARAMETER,
METAFN_KIND_BOOL_INFO,},
-#line 537 "metafns.gperf"
+#line 541 "metafns.gperf"
{"is_static_member", METAFN_IS_STATIC_MEMBER, METAFN_KIND_BOOL_INFO,},
-#line 466 "metafns.gperf"
+#line 470 "metafns.gperf"
{"object_of", METAFN_OBJECT_OF, METAFN_KIND_INFO_INFO,},
-#line 605 "metafns.gperf"
+#line 609 "metafns.gperf"
{"is_consteval_only_type", METAFN_IS_CONSTEVAL_ONLY_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 473 "metafns.gperf"
+#line 477 "metafns.gperf"
{"is_override", METAFN_IS_OVERRIDE, METAFN_KIND_BOOL_INFO,},
-#line 659 "metafns.gperf"
+#line 663 "metafns.gperf"
{"remove_cv", METAFN_REMOVE_CV, METAFN_KIND_INFO_TINFO,},
-#line 567 "metafns.gperf"
+#line 571 "metafns.gperf"
{"reflect_object", METAFN_REFLECT_OBJECT,
METAFN_KIND_INFO_TEMPLATE_PARM_REF,},
-#line 577 "metafns.gperf"
+#line 581 "metafns.gperf"
{"is_floating_point_type", METAFN_IS_FLOATING_POINT_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 459 "metafns.gperf"
+#line 463 "metafns.gperf"
{"has_identifier", METAFN_HAS_IDENTIFIER, METAFN_KIND_BOOL_INFO,},
-#line 663 "metafns.gperf"
+#line 667 "metafns.gperf"
{"remove_reference", METAFN_REMOVE_REFERENCE, METAFN_KIND_INFO_TINFO,},
-#line 551 "metafns.gperf"
+#line 555 "metafns.gperf"
{"has_inaccessible_bases", METAFN_HAS_INACCESSIBLE_BASES,
METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
-#line 495 "metafns.gperf"
+#line 499 "metafns.gperf"
{"has_c_language_linkage", METAFN_HAS_C_LANGUAGE_LINKAGE,
METAFN_KIND_BOOL_INFO,},
-#line 552 "metafns.gperf"
+#line 556 "metafns.gperf"
{"has_inaccessible_subobjects", METAFN_HAS_INACCESSIBLE_SUBOBJECTS,
METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
-#line 668 "metafns.gperf"
+#line 672 "metafns.gperf"
{"remove_extent", METAFN_REMOVE_EXTENT, METAFN_KIND_INFO_TINFO,},
-#line 550 "metafns.gperf"
+#line 554 "metafns.gperf"
{"has_inaccessible_nonstatic_data_members",
METAFN_HAS_INACCESSIBLE_NONSTATIC_DATA_MEMBERS,
METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
-#line 488 "metafns.gperf"
+#line 492 "metafns.gperf"
{"is_rvalue_reference_qualified", METAFN_IS_RVALUE_REFERENCE_QUALIFIED,
METAFN_KIND_BOOL_INFO,},
-#line 643 "metafns.gperf"
+#line 647 "metafns.gperf"
{"reference_converts_from_temporary",
METAFN_REFERENCE_CONVERTS_FROM_TEMPORARY, METAFN_KIND_BOOL_TINFO_TINFO,},
-#line 586 "metafns.gperf"
+#line 590 "metafns.gperf"
{"is_class_type", METAFN_IS_CLASS_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 478 "metafns.gperf"
+#line 482 "metafns.gperf"
{"is_user_declared", METAFN_IS_USER_DECLARED, METAFN_KIND_BOOL_INFO,},
-#line 571 "metafns.gperf"
+#line 575 "metafns.gperf"
{"data_member_spec", METAFN_DATA_MEMBER_SPEC,
METAFN_KIND_INFO_TINFO_DATA_MEMBER_OPTIONS,},
-#line 487 "metafns.gperf"
+#line 491 "metafns.gperf"
{"is_lvalue_reference_qualified", METAFN_IS_LVALUE_REFERENCE_QUALIFIED,
METAFN_KIND_BOOL_INFO,},
-#line 490 "metafns.gperf"
+#line 494 "metafns.gperf"
{"has_thread_storage_duration", METAFN_HAS_THREAD_STORAGE_DURATION,
METAFN_KIND_BOOL_INFO,},
-#line 481 "metafns.gperf"
+#line 485 "metafns.gperf"
{"is_bit_field", METAFN_IS_BIT_FIELD, METAFN_KIND_BOOL_INFO,},
-#line 672 "metafns.gperf"
+#line 676 "metafns.gperf"
{"remove_cvref", METAFN_REMOVE_CVREF, METAFN_KIND_INFO_TINFO,},
-#line 677 "metafns.gperf"
+#line 681 "metafns.gperf"
{"invoke_result", METAFN_INVOKE_RESULT,
METAFN_KIND_INFO_TINFO_REFLECTION_RANGET,},
-#line 543 "metafns.gperf"
+#line 547 "metafns.gperf"
{"has_template_arguments", METAFN_HAS_TEMPLATE_ARGUMENTS,
METAFN_KIND_BOOL_INFO,},
-#line 506 "metafns.gperf"
+#line 510 "metafns.gperf"
{"is_operator_function", METAFN_IS_OPERATOR_FUNCTION,
METAFN_KIND_BOOL_INFO,},
-#line 670 "metafns.gperf"
+#line 674 "metafns.gperf"
{"remove_pointer", METAFN_REMOVE_POINTER, METAFN_KIND_INFO_TINFO,},
-#line 542 "metafns.gperf"
+#line 546 "metafns.gperf"
{"dealias", METAFN_DEALIAS, METAFN_KIND_INFO_INFO,},
-#line 657 "metafns.gperf"
+#line 661 "metafns.gperf"
{"remove_const", METAFN_REMOVE_CONST, METAFN_KIND_INFO_TINFO,},
-#line 527 "metafns.gperf"
+#line 531 "metafns.gperf"
{"is_operator_function_template", METAFN_IS_OPERATOR_FUNCTION_TEMPLATE,
METAFN_KIND_BOOL_INFO,},
-#line 642 "metafns.gperf"
+#line 646 "metafns.gperf"
{"reference_constructs_from_temporary",
METAFN_REFERENCE_CONSTRUCTS_FROM_TEMPORARY, METAFN_KIND_BOOL_TINFO_TINFO,},
-#line 669 "metafns.gperf"
+#line 673 "metafns.gperf"
{"remove_all_extents", METAFN_REMOVE_ALL_EXTENTS,
METAFN_KIND_INFO_TINFO,},
-#line 578 "metafns.gperf"
+#line 582 "metafns.gperf"
{"is_array_type", METAFN_IS_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 492 "metafns.gperf"
+#line 496 "metafns.gperf"
{"has_internal_linkage", METAFN_HAS_INTERNAL_LINKAGE,
METAFN_KIND_BOOL_INFO,},
-#line 666 "metafns.gperf"
+#line 670 "metafns.gperf"
{"make_signed", METAFN_MAKE_SIGNED, METAFN_KIND_INFO_TINFO,},
-#line 555 "metafns.gperf"
+#line 559 "metafns.gperf"
{"static_data_members_of", METAFN_STATIC_DATA_MEMBERS_OF,
METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
-#line 594 "metafns.gperf"
+#line 598 "metafns.gperf"
{"is_compound_type", METAFN_IS_COMPOUND_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 602 "metafns.gperf"
+#line 606 "metafns.gperf"
{"is_abstract_type", METAFN_IS_ABSTRACT_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 573 "metafns.gperf"
+#line 577 "metafns.gperf"
{"define_aggregate", METAFN_DEFINE_AGGREGATE,
METAFN_KIND_INFO_INFO_REFLECTION_RANGE,},
-#line 688 "metafns.gperf"
+#line 692 "metafns.gperf"
{"_S_exception_cvt_to_utf8", METAFN_EXCEPTION__S_EXCEPTION_CVT_TO_UTF8,
METAFN_KIND_U8STRING_VIEW_INPUT_RANGE,},
-#line 689 "metafns.gperf"
+#line 693 "metafns.gperf"
{"_S_exception_cvt_from_utf8",
METAFN_EXCEPTION__S_EXCEPTION_CVT_FROM_UTF8,
METAFN_KIND_STRING_VIEW_INPUT_RANGE,},
-#line 609 "metafns.gperf"
+#line 613 "metafns.gperf"
{"is_unbounded_array_type", METAFN_IS_UNBOUNDED_ARRAY_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 599 "metafns.gperf"
+#line 603 "metafns.gperf"
{"is_standard_layout_type", METAFN_IS_STANDARD_LAYOUT_TYPE,
METAFN_KIND_BOOL_TINFO,},
-#line 679 "metafns.gperf"
+#line 683 "metafns.gperf"
{"unwrap_ref_decay", METAFN_UNWRAP_REF_DECAY, METAFN_KIND_INFO_TINFO,},
-#line 570 "metafns.gperf"
+#line 574 "metafns.gperf"
{"reflect_constant_array", METAFN_REFLECT_CONSTANT_ARRAY,
METAFN_KIND_INFO_INPUT_RANGE,},
-#line 458 "metafns.gperf"
+#line 462 "metafns.gperf"
{"u8symbol_of", METAFN_U8SYMBOL_OF,
METAFN_KIND_U8STRING_VIEW_OPERATORS,},
-#line 576 "metafns.gperf"
+#line 580 "metafns.gperf"
{"is_integral_type", METAFN_IS_INTEGRAL_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 556 "metafns.gperf"
+#line 560 "metafns.gperf"
{"nonstatic_data_members_of", METAFN_NONSTATIC_DATA_MEMBERS_OF,
METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
-#line 673 "metafns.gperf"
+#line 677 "metafns.gperf"
{"decay", METAFN_DECAY, METAFN_KIND_INFO_TINFO,},
-#line 603 "metafns.gperf"
+#line 607 "metafns.gperf"
{"is_final_type", METAFN_IS_FINAL_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 658 "metafns.gperf"
+#line 662 "metafns.gperf"
{"remove_volatile", METAFN_REMOVE_VOLATILE, METAFN_KIND_INFO_TINFO,},
-#line 561 "metafns.gperf"
+#line 565 "metafns.gperf"
{"alignment_of", METAFN_ALIGNMENT_OF, METAFN_KIND_SIZE_T_INFO,},
-#line 464 "metafns.gperf"
+#line 468 "metafns.gperf"
{"source_location_of", METAFN_SOURCE_LOCATION_OF,
METAFN_KIND_SOURCE_LOCATION_INFO,},
-#line 686 "metafns.gperf"
+#line 690 "metafns.gperf"
{"annotations_of_with_type", METAFN_ANNOTATIONS_OF_WITH_TYPE,
METAFN_KIND_VECTOR_INFO_INFO_INFO,},
-#line 461 "metafns.gperf"
+#line 465 "metafns.gperf"
{"u8identifier_of", METAFN_U8IDENTIFIER_OF,
METAFN_KIND_U8STRING_VIEW_INFO,},
-#line 685 "metafns.gperf"
+#line 689 "metafns.gperf"
{"annotations_of", METAFN_ANNOTATIONS_OF, METAFN_KIND_VECTOR_INFO_INFO,},
-#line 585 "metafns.gperf"
+#line 589 "metafns.gperf"
{"is_union_type", METAFN_IS_UNION_TYPE, METAFN_KIND_BOOL_TINFO,},
-#line 477 "metafns.gperf"
+#line 481 "metafns.gperf"
{"is_user_provided", METAFN_IS_USER_PROVIDED, METAFN_KIND_BOOL_INFO,},
-#line 607 "metafns.gperf"
+#line 611 "metafns.gperf"
{"is_unsigned_type", METAFN_IS_UNSIGNED_TYPE, METAFN_KIND_BOOL_TINFO,}
};
#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined
__clang__ && __clang_major__ >= 3)
diff --git a/gcc/cp/reflect.cc b/gcc/cp/reflect.cc
index 7c9e1815317..46355251bcd 100644
--- a/gcc/cp/reflect.cc
+++ b/gcc/cp/reflect.cc
@@ -7341,8 +7341,7 @@ process_metafunction (const constexpr_ctx *ctx, tree fun,
tree call,
tree type = NULL_TREE, ht, info;
reflect_kind kind = REFLECT_UNDEF;
for (int argno = 0; argno < 3; ++argno)
- switch ((minfo->kind >> ((argno + 1) * METAFN_KIND_SHIFT))
- & METAFN_KIND_MASK)
+ switch (METAFN_KIND_ARG (argno))
{
case METAFN_KIND_ARG_VOID:
break;
@@ -7354,13 +7353,10 @@ process_metafunction (const constexpr_ctx *ctx, tree
fun, tree call,
if (*jump_target || *non_constant_p)
return NULL_TREE;
ht = REFLECT_EXPR_HANDLE (info);
- if (((minfo->kind >> ((argno + 1) * METAFN_KIND_SHIFT))
- & METAFN_KIND_MASK) == METAFN_KIND_ARG_TINFO)
- {
- if (eval_is_type (ht) != boolean_true_node)
- return throw_exception_nontype (loc, ctx, fun, non_constant_p,
- jump_target);
- }
+ if (METAFN_KIND_ARG (argno) == METAFN_KIND_ARG_TINFO
+ && eval_is_type (ht) != boolean_true_node)
+ return throw_exception_nontype (loc, ctx, fun, non_constant_p,
+ jump_target);
if (argno == 0)
{
kind = REFLECT_EXPR_KIND (info);
base-commit: a169450924cea718f7bb847f2cac70c2d781440d
--
2.53.0