@@ -591,6 +591,8 @@ def err_decomp_decl_std_tuple_size_not_constant : Error<
591591 "is not a valid integral constant expression">;
592592def note_in_binding_decl_init : Note<
593593 "in implicit initialization of binding declaration %0">;
594+ def err_arg_is_not_destructurable : Error<
595+ "type %0 cannot be decomposed">;
594596
595597def err_std_type_trait_not_class_template : Error<
596598 "unsupported standard library implementation: "
@@ -7639,9 +7641,13 @@ def warn_arith_conv_mixed_enum_types_cxx20 : Warning<
76397641 "%sub{select_arith_conv_kind}0 "
76407642 "different enumeration types%diff{ ($ and $)|}1,2 is deprecated">,
76417643 InGroup<DeprecatedEnumEnumConversion>;
7642- def err_conv_mixed_enum_types_cxx26 : Error<
7644+
7645+ def err_conv_mixed_enum_types: Error <
76437646 "invalid %sub{select_arith_conv_kind}0 "
76447647 "different enumeration types%diff{ ($ and $)|}1,2">;
7648+ def warn_conv_mixed_enum_types_cxx26 : Warning <
7649+ err_conv_mixed_enum_types.Summary>,
7650+ InGroup<EnumEnumConversion>, DefaultError;
76457651
76467652def warn_arith_conv_mixed_anon_enum_types : Warning<
76477653 warn_arith_conv_mixed_enum_types.Summary>,
@@ -12519,16 +12525,31 @@ def err_builtin_is_within_lifetime_invalid_arg : Error<
1251912525 "%select{non-|function }0pointer argument to '__builtin_is_within_lifetime' "
1252012526 "is not allowed">;
1252112527
12522- def err_builtin_invalid_arg_type: Error <
12523- "%ordinal0 argument must be "
12524- "%select{a vector, integer or floating point type|a matrix|"
12525- "a pointer to a valid matrix element type|"
12526- "a signed integer or floating point type|a vector type|"
12527- "a floating point type|"
12528- "a vector of integers|"
12529- "an unsigned integer|"
12530- "an 'int'|"
12531- "a vector of floating points}1 (was %2)">;
12528+ // A multi-component builtin type diagnostic. The first component broadly
12529+ // selects a scalar or container type (scalar, vector or matrix). The second
12530+ // component selects integer types and the third component selects
12531+ // floating-point types. Any component can be left empty.
12532+ def err_builtin_invalid_arg_type: Error<
12533+ "%ordinal0 argument must be a "
12534+ // First component: scalar or container types
12535+ "%select{|scalar|vector|matrix|vector of|scalar or vector of}1"
12536+ // A comma after generic vector/matrix types if there are non-empty second
12537+ // and third components, to initiate a list.
12538+ "%plural{[2,3]:%plural{0:|:%plural{0:|:,}2}3|:}1"
12539+ // A space after a non-empty first component
12540+ "%plural{0:|: }1"
12541+ // Second component: integer-like types
12542+ "%select{|integer|signed integer|unsigned integer|'int'|"
12543+ "pointer to a valid matrix element}2"
12544+ // A space after a non-empty second component
12545+ "%plural{0:|: }2"
12546+ // An 'or' if non-empty second and third components are combined
12547+ "%plural{0:|:%plural{0:|:or }2}3"
12548+ // Third component: floating-point types
12549+ "%select{|floating-point}3"
12550+ // A space after a non-empty third component
12551+ "%plural{0:|: }3"
12552+ "%plural{[0,3]:type|:types}1 (was %4)">;
1253212553
1253312554def err_builtin_matrix_disabled: Error<
1253412555 "matrix types extension is disabled. Pass -fenable-matrix to enable it">;
0 commit comments