zig/deps/aro/aro/Diagnostics/messages.def
Veikka Tuominen 145ddb8104 sync Aro dependency
ref: 0c8c251e336148413ceca7b345c0b6f7255b009b
2023-11-15 11:26:49 +02:00

2447 lines
60 KiB
Modula-2
Vendored

const W = Properties.makeOpt;
const pointer_sign_message = " converts between pointers to integer types with different sign";
# Maybe someday this will no longer be needed.
todo
.msg = "TODO: {s}"
.extra = .str
.kind = .@"error"
error_directive
.msg = "{s}"
.extra = .str
.kind = .@"error"
warning_directive
.msg = "{s}"
.opt = W("#warnings")
.extra = .str
.kind = .warning
elif_without_if
.msg = "#elif without #if"
.kind = .@"error"
elif_after_else
.msg = "#elif after #else"
.kind = .@"error"
elifdef_without_if
.msg = "#elifdef without #if"
.kind = .@"error"
elifdef_after_else
.msg = "#elifdef after #else"
.kind = .@"error"
elifndef_without_if
.msg = "#elifndef without #if"
.kind = .@"error"
elifndef_after_else
.msg = "#elifndef after #else"
.kind = .@"error"
else_without_if
.msg = "#else without #if"
.kind = .@"error"
else_after_else
.msg = "#else after #else"
.kind = .@"error"
endif_without_if
.msg = "#endif without #if"
.kind = .@"error"
unknown_pragma
.msg = "unknown pragma ignored"
.opt = W("unknown-pragmas")
.kind = .off
.all = true
line_simple_digit
.msg = "#line directive requires a simple digit sequence"
.kind = .@"error"
line_invalid_filename
.msg = "invalid filename for #line directive"
.kind = .@"error"
unterminated_conditional_directive
.msg = "unterminated conditional directive"
.kind = .@"error"
invalid_preprocessing_directive
.msg = "invalid preprocessing directive"
.kind = .@"error"
macro_name_missing
.msg = "macro name missing"
.kind = .@"error"
extra_tokens_directive_end
.msg = "extra tokens at end of macro directive"
.kind = .@"error"
expected_value_in_expr
.msg = "expected value in expression"
.kind = .@"error"
closing_paren
.msg = "expected closing ')'"
.kind = .@"error"
to_match_paren
.msg = "to match this '('"
.kind = .note
to_match_brace
.msg = "to match this '{'"
.kind = .note
to_match_bracket
.msg = "to match this '['"
.kind = .note
header_str_closing
.msg = "expected closing '>'"
.kind = .@"error"
header_str_match
.msg = "to match this '<'"
.kind = .note
string_literal_in_pp_expr
.msg = "string literal in preprocessor expression"
.kind = .@"error"
float_literal_in_pp_expr
.msg = "floating point literal in preprocessor expression"
.kind = .@"error"
defined_as_macro_name
.msg = "'defined' cannot be used as a macro name"
.kind = .@"error"
macro_name_must_be_identifier
.msg = "macro name must be an identifier"
.kind = .@"error"
whitespace_after_macro_name
.msg = "ISO C99 requires whitespace after the macro name"
.opt = W("c99-extensions")
.kind = .warning
hash_hash_at_start
.msg = "'##' cannot appear at the start of a macro expansion"
.kind = .@"error"
hash_hash_at_end
.msg = "'##' cannot appear at the end of a macro expansion"
.kind = .@"error"
pasting_formed_invalid
.msg = "pasting formed '{s}', an invalid preprocessing token"
.extra = .str
.kind = .@"error"
missing_paren_param_list
.msg = "missing ')' in macro parameter list"
.kind = .@"error"
unterminated_macro_param_list
.msg = "unterminated macro param list"
.kind = .@"error"
invalid_token_param_list
.msg = "invalid token in macro parameter list"
.kind = .@"error"
expected_comma_param_list
.msg = "expected comma in macro parameter list"
.kind = .@"error"
hash_not_followed_param
.msg = "'#' is not followed by a macro parameter"
.kind = .@"error"
expected_filename
.msg = "expected \"FILENAME\" or <FILENAME>"
.kind = .@"error"
empty_filename
.msg = "empty filename"
.kind = .@"error"
expected_invalid
.msg = "expected '{s}', found invalid bytes"
.extra = .tok_id_expected
.kind = .@"error"
expected_eof
.msg = "expected '{s}' before end of file"
.extra = .tok_id_expected
.kind = .@"error"
expected_token
.msg = "expected '{s}', found '{s}'"
.extra = .tok_id
.kind = .@"error"
expected_expr
.msg = "expected expression"
.kind = .@"error"
expected_integer_constant_expr
.msg = "expression is not an integer constant expression"
.kind = .@"error"
missing_type_specifier
.msg = "type specifier missing, defaults to 'int'"
.opt = W("implicit-int")
.kind = .warning
.all = true
missing_type_specifier_c23
.msg = "a type specifier is required for all declarations"
.kind = .@"error"
multiple_storage_class
.msg = "cannot combine with previous '{s}' declaration specifier"
.extra = .str
.kind = .@"error"
static_assert_failure
.msg = "static assertion failed"
.kind = .@"error"
static_assert_failure_message
.msg = "static assertion failed {s}"
.extra = .str
.kind = .@"error"
expected_type
.msg = "expected a type"
.kind = .@"error"
cannot_combine_spec
.msg = "cannot combine with previous '{s}' specifier"
.extra = .str
.kind = .@"error"
duplicate_decl_spec
.msg = "duplicate '{s}' declaration specifier"
.extra = .str
.opt = W("duplicate-decl-specifier")
.kind = .warning
.all = true
restrict_non_pointer
.msg = "restrict requires a pointer or reference ('{s}' is invalid)"
.extra = .str
.kind = .@"error"
expected_external_decl
.msg = "expected external declaration"
.kind = .@"error"
expected_ident_or_l_paren
.msg = "expected identifier or '('"
.kind = .@"error"
missing_declaration
.msg = "declaration does not declare anything"
.opt = W("missing-declaration")
.kind = .warning
func_not_in_root
.msg = "function definition is not allowed here"
.kind = .@"error"
illegal_initializer
.msg = "illegal initializer (only variables can be initialized)"
.kind = .@"error"
extern_initializer
.msg = "extern variable has initializer"
.opt = W("extern-initializer")
.kind = .warning
spec_from_typedef
.msg = "'{s}' came from typedef"
.extra = .str
.kind = .note
param_before_var_args
.msg = "ISO C requires a named parameter before '...'"
.kind = .@"error"
.suppress_version = .c23
void_only_param
.msg = "'void' must be the only parameter if specified"
.kind = .@"error"
void_param_qualified
.msg = "'void' parameter cannot be qualified"
.kind = .@"error"
void_must_be_first_param
.msg = "'void' must be the first parameter if specified"
.kind = .@"error"
invalid_storage_on_param
.msg = "invalid storage class on function parameter"
.kind = .@"error"
threadlocal_non_var
.msg = "_Thread_local only allowed on variables"
.kind = .@"error"
func_spec_non_func
.msg = "'{s}' can only appear on functions"
.extra = .str
.kind = .@"error"
illegal_storage_on_func
.msg = "illegal storage class on function"
.kind = .@"error"
illegal_storage_on_global
.msg = "illegal storage class on global variable"
.kind = .@"error"
expected_stmt
.msg = "expected statement"
.kind = .@"error"
func_cannot_return_func
.msg = "function cannot return a function"
.kind = .@"error"
func_cannot_return_array
.msg = "function cannot return an array"
.kind = .@"error"
undeclared_identifier
.msg = "use of undeclared identifier '{s}'"
.extra = .str
.kind = .@"error"
not_callable
.msg = "cannot call non function type '{s}'"
.extra = .str
.kind = .@"error"
unsupported_str_cat
.msg = "unsupported string literal concatenation"
.kind = .@"error"
static_func_not_global
.msg = "static functions must be global"
.kind = .@"error"
implicit_func_decl
.msg = "call to undeclared function '{s}'; ISO C99 and later do not support implicit function declarations"
.extra = .str
.opt = W("implicit-function-declaration")
.kind = .@"error"
.all = true
unknown_builtin
.msg = "use of unknown builtin '{s}'"
.extra = .str
.opt = W("implicit-function-declaration")
.kind = .@"error"
.all = true
implicit_builtin
.msg = "implicitly declaring library function '{s}'"
.extra = .str
.opt = W("implicit-function-declaration")
.kind = .@"error"
.all = true
implicit_builtin_header_note
.msg = "include the header <{s}.h> or explicitly provide a declaration for '{s}'"
.extra = .builtin_with_header
.opt = W("implicit-function-declaration")
.kind = .note
.all = true
expected_param_decl
.msg = "expected parameter declaration"
.kind = .@"error"
invalid_old_style_params
.msg = "identifier parameter lists are only allowed in function definitions"
.kind = .@"error"
expected_fn_body
.msg = "expected function body after function declaration"
.kind = .@"error"
invalid_void_param
.msg = "parameter cannot have void type"
.kind = .@"error"
unused_value
.msg = "expression result unused"
.opt = W("unused-value")
.kind = .warning
.all = true
continue_not_in_loop
.msg = "'continue' statement not in a loop"
.kind = .@"error"
break_not_in_loop_or_switch
.msg = "'break' statement not in a loop or a switch"
.kind = .@"error"
unreachable_code
.msg = "unreachable code"
.opt = W("unreachable-code")
.kind = .warning
.all = true
duplicate_label
.msg = "duplicate label '{s}'"
.extra = .str
.kind = .@"error"
previous_label
.msg = "previous definition of label '{s}' was here"
.extra = .str
.kind = .note
undeclared_label
.msg = "use of undeclared label '{s}'"
.extra = .str
.kind = .@"error"
case_not_in_switch
.msg = "'{s}' statement not in a switch statement"
.extra = .str
.kind = .@"error"
duplicate_switch_case
.msg = "duplicate case value '{s}'"
.extra = .str
.kind = .@"error"
multiple_default
.msg = "multiple default cases in the same switch"
.kind = .@"error"
previous_case
.msg = "previous case defined here"
.kind = .note
const expected_arguments = "expected {d} argument(s) got {d}";
expected_arguments
.msg = expected_arguments
.extra = .arguments
.kind = .@"error"
expected_arguments_old
.msg = expected_arguments
.extra = .arguments
.kind = .warning
expected_at_least_arguments
.msg = "expected at least {d} argument(s) got {d}"
.extra = .arguments
.kind = .warning
invalid_static_star
.msg = "'static' may not be used with an unspecified variable length array size"
.kind = .@"error"
static_non_param
.msg = "'static' used outside of function parameters"
.kind = .@"error"
array_qualifiers
.msg = "type qualifier in non parameter array type"
.kind = .@"error"
star_non_param
.msg = "star modifier used outside of function parameters"
.kind = .@"error"
variable_len_array_file_scope
.msg = "variable length arrays not allowed at file scope"
.kind = .@"error"
useless_static
.msg = "'static' useless without a constant size"
.kind = .warning
.w_extra = true
negative_array_size
.msg = "array size must be 0 or greater"
.kind = .@"error"
array_incomplete_elem
.msg = "array has incomplete element type '{s}'"
.extra = .str
.kind = .@"error"
array_func_elem
.msg = "arrays cannot have functions as their element type"
.kind = .@"error"
static_non_outermost_array
.msg = "'static' used in non-outermost array type"
.kind = .@"error"
qualifier_non_outermost_array
.msg = "type qualifier used in non-outermost array type"
.kind = .@"error"
unterminated_macro_arg_list
.msg = "unterminated function macro argument list"
.kind = .@"error"
unknown_warning
.msg = "unknown warning '{s}'"
.extra = .str
.opt = W("unknown-warning-option")
.kind = .warning
overflow
.msg = "overflow in expression; result is '{s}'"
.extra = .str
.opt = W("integer-overflow")
.kind = .warning
int_literal_too_big
.msg = "integer literal is too large to be represented in any integer type"
.kind = .@"error"
indirection_ptr
.msg = "indirection requires pointer operand"
.kind = .@"error"
addr_of_rvalue
.msg = "cannot take the address of an rvalue"
.kind = .@"error"
addr_of_bitfield
.msg = "address of bit-field requested"
.kind = .@"error"
not_assignable
.msg = "expression is not assignable"
.kind = .@"error"
ident_or_l_brace
.msg = "expected identifier or '{'"
.kind = .@"error"
empty_enum
.msg = "empty enum is invalid"
.kind = .@"error"
redefinition
.msg = "redefinition of '{s}'"
.extra = .str
.kind = .@"error"
previous_definition
.msg = "previous definition is here"
.kind = .note
expected_identifier
.msg = "expected identifier"
.kind = .@"error"
expected_str_literal
.msg = "expected string literal for diagnostic message in static_assert"
.kind = .@"error"
expected_str_literal_in
.msg = "expected string literal in '{s}'"
.extra = .str
.kind = .@"error"
parameter_missing
.msg = "parameter named '{s}' is missing"
.extra = .str
.kind = .@"error"
empty_record
.msg = "empty {s} is a GNU extension"
.extra = .str
.opt = W("gnu-empty-struct")
.kind = .off
.pedantic = true
empty_record_size
.msg = "empty {s} has size 0 in C, size 1 in C++"
.extra = .str
.opt = W("c++-compat")
.kind = .off
wrong_tag
.msg = "use of '{s}' with tag type that does not match previous definition"
.extra = .str
.kind = .@"error"
expected_parens_around_typename
.msg = "expected parentheses around type name"
.kind = .@"error"
alignof_expr
.msg = "'_Alignof' applied to an expression is a GNU extension"
.opt = W("gnu-alignof-expression")
.kind = .warning
.suppress_gnu = true
invalid_alignof
.msg = "invalid application of 'alignof' to an incomplete type '{s}'"
.extra = .str
.kind = .@"error"
invalid_sizeof
.msg = "invalid application of 'sizeof' to an incomplete type '{s}'"
.extra = .str
.kind = .@"error"
macro_redefined
.msg = "'{s}' macro redefined"
.extra = .str
.opt = W("macro-redefined")
.kind = .warning
generic_qual_type
.msg = "generic association with qualifiers cannot be matched with"
.opt = W("generic-qual-type")
.kind = .warning
generic_array_type
.msg = "generic association array type cannot be matched with"
.opt = W("generic-qual-type")
.kind = .warning
generic_func_type
.msg = "generic association function type cannot be matched with"
.opt = W("generic-qual-type")
.kind = .warning
generic_duplicate
.msg = "type '{s}' in generic association compatible with previously specified type"
.extra = .str
.kind = .@"error"
generic_duplicate_here
.msg = "compatible type '{s}' specified here"
.extra = .str
.kind = .note
generic_duplicate_default
.msg = "duplicate default generic association"
.kind = .@"error"
generic_no_match
.msg = "controlling expression type '{s}' not compatible with any generic association type"
.extra = .str
.kind = .@"error"
escape_sequence_overflow
.msg = "escape sequence out of range"
.kind = .@"error"
invalid_universal_character
.msg = "invalid universal character"
.kind = .@"error"
incomplete_universal_character
.msg = "incomplete universal character name"
.kind = .@"error"
multichar_literal_warning
.msg = "multi-character character constant"
.opt = W("multichar")
.kind = .warning
.all = true
invalid_multichar_literal
.msg = "{s} character literals may not contain multiple characters"
.kind = .@"error"
.extra = .str
wide_multichar_literal
.msg = "extraneous characters in character constant ignored"
.kind = .warning
char_lit_too_wide
.msg = "character constant too long for its type"
.kind = .warning
.all = true
char_too_large
.msg = "character too large for enclosing character literal type"
.kind = .@"error"
must_use_struct
.msg = "must use 'struct' tag to refer to type '{s}'"
.extra = .str
.kind = .@"error"
must_use_union
.msg = "must use 'union' tag to refer to type '{s}'"
.extra = .str
.kind = .@"error"
must_use_enum
.msg = "must use 'enum' tag to refer to type '{s}'"
.extra = .str
.kind = .@"error"
redefinition_different_sym
.msg = "redefinition of '{s}' as different kind of symbol"
.extra = .str
.kind = .@"error"
redefinition_incompatible
.msg = "redefinition of '{s}' with a different type"
.extra = .str
.kind = .@"error"
redefinition_of_parameter
.msg = "redefinition of parameter '{s}'"
.extra = .str
.kind = .@"error"
invalid_bin_types
.msg = "invalid operands to binary expression ({s})"
.extra = .str
.kind = .@"error"
comparison_ptr_int
.msg = "comparison between pointer and integer ({s})"
.extra = .str
.opt = W("pointer-integer-compare")
.kind = .warning
comparison_distinct_ptr
.msg = "comparison of distinct pointer types ({s})"
.extra = .str
.opt = W("compare-distinct-pointer-types")
.kind = .warning
incompatible_pointers
.msg = "incompatible pointer types ({s})"
.extra = .str
.kind = .@"error"
invalid_argument_un
.msg = "invalid argument type '{s}' to unary expression"
.extra = .str
.kind = .@"error"
incompatible_assign
.msg = "assignment to {s}"
.extra = .str
.kind = .@"error"
implicit_ptr_to_int
.msg = "implicit pointer to integer conversion from {s}"
.extra = .str
.opt = W("int-conversion")
.kind = .warning
invalid_cast_to_float
.msg = "pointer cannot be cast to type '{s}'"
.extra = .str
.kind = .@"error"
invalid_cast_to_pointer
.msg = "operand of type '{s}' cannot be cast to a pointer type"
.extra = .str
.kind = .@"error"
invalid_cast_type
.msg = "cannot cast to non arithmetic or pointer type '{s}'"
.extra = .str
.kind = .@"error"
qual_cast
.msg = "cast to type '{s}' will not preserve qualifiers"
.extra = .str
.opt = W("cast-qualifiers")
.kind = .warning
invalid_index
.msg = "array subscript is not an integer"
.kind = .@"error"
invalid_subscript
.msg = "subscripted value is not an array or pointer"
.kind = .@"error"
array_after
.msg = "array index {s} is past the end of the array"
.extra = .str
.opt = W("array-bounds")
.kind = .warning
array_before
.msg = "array index {s} is before the beginning of the array"
.extra = .str
.opt = W("array-bounds")
.kind = .warning
statement_int
.msg = "statement requires expression with integer type ('{s}' invalid)"
.extra = .str
.kind = .@"error"
statement_scalar
.msg = "statement requires expression with scalar type ('{s}' invalid)"
.extra = .str
.kind = .@"error"
func_should_return
.msg = "non-void function '{s}' should return a value"
.extra = .str
.opt = W("return-type")
.kind = .@"error"
.all = true
incompatible_return
.msg = "returning {s}"
.extra = .str
.kind = .@"error"
incompatible_return_sign
.msg = "returning {s}" ++ pointer_sign_message
.extra = .str
.kind = .warning
.opt = W("pointer-sign")
implicit_int_to_ptr
.msg = "implicit integer to pointer conversion from {s}"
.extra = .str
.opt = W("int-conversion")
.kind = .warning
func_does_not_return
.msg = "non-void function '{s}' does not return a value"
.extra = .str
.opt = W("return-type")
.kind = .warning
.all = true
void_func_returns_value
.msg = "void function '{s}' should not return a value"
.extra = .str
.opt = W("return-type")
.kind = .@"error"
.all = true
incompatible_arg
.msg = "passing {s}"
.extra = .str
.kind = .@"error"
incompatible_ptr_arg
.msg = "passing {s}"
.extra = .str
.kind = .warning
.opt = W("incompatible-pointer-types")
incompatible_ptr_arg_sign
.msg = "passing {s}" ++ pointer_sign_message
.extra = .str
.kind = .warning
.opt = W("pointer-sign")
parameter_here
.msg = "passing argument to parameter here"
.kind = .note
atomic_array
.msg = "atomic cannot be applied to array type '{s}'"
.extra = .str
.kind = .@"error"
atomic_func
.msg = "atomic cannot be applied to function type '{s}'"
.extra = .str
.kind = .@"error"
atomic_incomplete
.msg = "atomic cannot be applied to incomplete type '{s}'"
.extra = .str
.kind = .@"error"
addr_of_register
.msg = "address of register variable requested"
.kind = .@"error"
variable_incomplete_ty
.msg = "variable has incomplete type '{s}'"
.extra = .str
.kind = .@"error"
parameter_incomplete_ty
.msg = "parameter has incomplete type '{s}'"
.extra = .str
.kind = .@"error"
tentative_array
.msg = "tentative array definition assumed to have one element"
.kind = .warning
deref_incomplete_ty_ptr
.msg = "dereferencing pointer to incomplete type '{s}'"
.extra = .str
.kind = .@"error"
alignas_on_func
.msg = "'_Alignas' attribute only applies to variables and fields"
.kind = .@"error"
alignas_on_param
.msg = "'_Alignas' attribute cannot be applied to a function parameter"
.kind = .@"error"
minimum_alignment
.msg = "requested alignment is less than minimum alignment of {d}"
.extra = .unsigned
.kind = .@"error"
maximum_alignment
.msg = "requested alignment of {s} is too large"
.extra = .str
.kind = .@"error"
negative_alignment
.msg = "requested negative alignment of {s} is invalid"
.extra = .str
.kind = .@"error"
align_ignored
.msg = "'_Alignas' attribute is ignored here"
.kind = .warning
zero_align_ignored
.msg = "requested alignment of zero is ignored"
.kind = .warning
non_pow2_align
.msg = "requested alignment is not a power of 2"
.kind = .@"error"
pointer_mismatch
.msg = "pointer type mismatch ({s})"
.extra = .str
.opt = W("pointer-type-mismatch")
.kind = .warning
static_assert_not_constant
.msg = "static_assert expression is not an integral constant expression"
.kind = .@"error"
static_assert_missing_message
.msg = "static_assert with no message is a C23 extension"
.opt = W("c23-extensions")
.kind = .warning
.suppress_version = .c23
pre_c23_compat
.msg = "{s} is incompatible with C standards before C23"
.extra = .str
.kind = .off
.suppress_unless_version = .c23
.opt = W("pre-c23-compat")
unbound_vla
.msg = "variable length array must be bound in function definition"
.kind = .@"error"
array_too_large
.msg = "array is too large"
.kind = .@"error"
incompatible_ptr_init
.msg = "incompatible pointer types initializing {s}"
.extra = .str
.opt = W("incompatible-pointer-types")
.kind = .warning
incompatible_ptr_init_sign
.msg = "incompatible pointer types initializing {s}" ++ pointer_sign_message
.extra = .str
.opt = W("pointer-sign")
.kind = .warning
incompatible_ptr_assign
.msg = "incompatible pointer types assigning to {s}"
.extra = .str
.opt = W("incompatible-pointer-types")
.kind = .warning
incompatible_ptr_assign_sign
.msg = "incompatible pointer types assigning to {s} " ++ pointer_sign_message
.extra = .str
.opt = W("pointer-sign")
.kind = .warning
vla_init
.msg = "variable-sized object may not be initialized"
.kind = .@"error"
func_init
.msg = "illegal initializer type"
.kind = .@"error"
incompatible_init
.msg = "initializing {s}"
.extra = .str
.kind = .@"error"
empty_scalar_init
.msg = "scalar initializer cannot be empty"
.kind = .@"error"
excess_scalar_init
.msg = "excess elements in scalar initializer"
.opt = W("excess-initializers")
.kind = .warning
excess_str_init
.msg = "excess elements in string initializer"
.opt = W("excess-initializers")
.kind = .warning
excess_struct_init
.msg = "excess elements in struct initializer"
.opt = W("excess-initializers")
.kind = .warning
excess_array_init
.msg = "excess elements in array initializer"
.opt = W("excess-initializers")
.kind = .warning
str_init_too_long
.msg = "initializer-string for char array is too long"
.opt = W("excess-initializers")
.kind = .warning
arr_init_too_long
.msg = "cannot initialize type ({s})"
.extra = .str
.kind = .@"error"
invalid_typeof
.msg = "'{s} typeof' is invalid"
.extra = .str
.kind = .@"error"
division_by_zero
.msg = "{s} by zero is undefined"
.extra = .str
.opt = W("division-by-zero")
.kind = .warning
division_by_zero_macro
.msg = "{s} by zero in preprocessor expression"
.extra = .str
.kind = .@"error"
builtin_choose_cond
.msg = "'__builtin_choose_expr' requires a constant expression"
.kind = .@"error"
alignas_unavailable
.msg = "'_Alignas' attribute requires integer constant expression"
.kind = .@"error"
case_val_unavailable
.msg = "case value must be an integer constant expression"
.kind = .@"error"
enum_val_unavailable
.msg = "enum value must be an integer constant expression"
.kind = .@"error"
incompatible_array_init
.msg = "cannot initialize array of type {s}"
.extra = .str
.kind = .@"error"
array_init_str
.msg = "array initializer must be an initializer list or wide string literal"
.kind = .@"error"
initializer_overrides
.msg = "initializer overrides previous initialization"
.opt = W("initializer-overrides")
.kind = .warning
.w_extra = true
previous_initializer
.msg = "previous initialization"
.kind = .note
invalid_array_designator
.msg = "array designator used for non-array type '{s}'"
.extra = .str
.kind = .@"error"
negative_array_designator
.msg = "array designator value {s} is negative"
.extra = .str
.kind = .@"error"
oob_array_designator
.msg = "array designator index {s} exceeds array bounds"
.extra = .str
.kind = .@"error"
invalid_field_designator
.msg = "field designator used for non-record type '{s}'"
.extra = .str
.kind = .@"error"
no_such_field_designator
.msg = "record type has no field named '{s}'"
.extra = .str
.kind = .@"error"
empty_aggregate_init_braces
.msg = "initializer for aggregate with no elements requires explicit braces"
.kind = .@"error"
ptr_init_discards_quals
.msg = "initializing {s} discards qualifiers"
.extra = .str
.opt = W("incompatible-pointer-types-discards-qualifiers")
.kind = .warning
ptr_assign_discards_quals
.msg = "assigning to {s} discards qualifiers"
.extra = .str
.opt = W("incompatible-pointer-types-discards-qualifiers")
.kind = .warning
ptr_ret_discards_quals
.msg = "returning {s} discards qualifiers"
.extra = .str
.opt = W("incompatible-pointer-types-discards-qualifiers")
.kind = .warning
ptr_arg_discards_quals
.msg = "passing {s} discards qualifiers"
.extra = .str
.opt = W("incompatible-pointer-types-discards-qualifiers")
.kind = .warning
unknown_attribute
.msg = "unknown attribute '{s}' ignored"
.extra = .str
.opt = W("unknown-attributes")
.kind = .warning
ignored_attribute
.msg = "{s}"
.extra = .str
.opt = W("ignored-attributes")
.kind = .warning
invalid_fallthrough
.msg = "fallthrough annotation does not directly precede switch label"
.kind = .@"error"
cannot_apply_attribute_to_statement
.msg = "'{s}' attribute cannot be applied to a statement"
.extra = .str
.kind = .@"error"
builtin_macro_redefined
.msg = "redefining builtin macro"
.opt = W("builtin-macro-redefined")
.kind = .warning
feature_check_requires_identifier
.msg = "builtin feature check macro requires a parenthesized identifier"
.kind = .@"error"
missing_tok_builtin
.msg = "missing '{s}', after builtin feature-check macro"
.extra = .tok_id_expected
.kind = .@"error"
gnu_label_as_value
.msg = "use of GNU address-of-label extension"
.opt = W("gnu-label-as-value")
.kind = .off
.pedantic = true
expected_record_ty
.msg = "member reference base type '{s}' is not a structure or union"
.extra = .str
.kind = .@"error"
member_expr_not_ptr
.msg = "member reference type '{s}' is not a pointer; did you mean to use '.'?"
.extra = .str
.kind = .@"error"
member_expr_ptr
.msg = "member reference type '{s}' is a pointer; did you mean to use '->'?"
.extra = .str
.kind = .@"error"
no_such_member
.msg = "no member named {s}"
.extra = .str
.kind = .@"error"
malformed_warning_check
.msg = "{s} expected option name (e.g. \"-Wundef\")"
.extra = .str
.opt = W("malformed-warning-check")
.kind = .warning
.all = true
invalid_computed_goto
.msg = "computed goto in function with no address-of-label expressions"
.kind = .@"error"
pragma_warning_message
.msg = "{s}"
.extra = .str
.opt = W("#pragma-messages")
.kind = .warning
pragma_error_message
.msg = "{s}"
.extra = .str
.kind = .@"error"
pragma_message
.msg = "#pragma message: {s}"
.extra = .str
.kind = .note
pragma_requires_string_literal
.msg = "pragma {s} requires string literal"
.extra = .str
.kind = .@"error"
poisoned_identifier
.msg = "attempt to use a poisoned identifier"
.kind = .@"error"
pragma_poison_identifier
.msg = "can only poison identifier tokens"
.kind = .@"error"
pragma_poison_macro
.msg = "poisoning existing macro"
.kind = .warning
newline_eof
.msg = "no newline at end of file"
.opt = W("newline-eof")
.kind = .off
.pedantic = true
empty_translation_unit
.msg = "ISO C requires a translation unit to contain at least one declaration"
.opt = W("empty-translation-unit")
.kind = .off
.pedantic = true
omitting_parameter_name
.msg = "omitting the parameter name in a function definition is a C23 extension"
.opt = W("c23-extensions")
.kind = .warning
.suppress_version = .c23
non_int_bitfield
.msg = "bit-field has non-integer type '{s}'"
.extra = .str
.kind = .@"error"
negative_bitwidth
.msg = "bit-field has negative width ({s})"
.extra = .str
.kind = .@"error"
zero_width_named_field
.msg = "named bit-field has zero width"
.kind = .@"error"
bitfield_too_big
.msg = "width of bit-field exceeds width of its type"
.kind = .@"error"
invalid_utf8
.msg = "source file is not valid UTF-8"
.kind = .@"error"
implicitly_unsigned_literal
.msg = "integer literal is too large to be represented in a signed integer type, interpreting as unsigned"
.opt = W("implicitly-unsigned-literal")
.kind = .warning
invalid_preproc_operator
.msg = "token is not a valid binary operator in a preprocessor subexpression"
.kind = .@"error"
invalid_preproc_expr_start
.msg = "invalid token at start of a preprocessor expression"
.kind = .@"error"
c99_compat
.msg = "using this character in an identifier is incompatible with C99"
.opt = W("c99-compat")
.kind = .off
unexpected_character
.msg = "unexpected character <U+{X:0>4}>"
.extra = .actual_codepoint
.kind = .@"error"
invalid_identifier_start_char
.msg = "character <U+{X:0>4}> not allowed at the start of an identifier"
.extra = .actual_codepoint
.kind = .@"error"
unicode_zero_width
.msg = "identifier contains Unicode character <U+{X:0>4}> that is invisible in some environments"
.opt = W("unicode-homoglyph")
.extra = .actual_codepoint
.kind = .warning
unicode_homoglyph
.msg = "treating Unicode character <U+{X:0>4}> as identifier character rather than as '{u}' symbol"
.extra = .codepoints
.opt = W("unicode-homoglyph")
.kind = .warning
meaningless_asm_qual
.msg = "meaningless '{s}' on assembly outside function"
.extra = .str
.kind = .@"error"
duplicate_asm_qual
.msg = "duplicate asm qualifier '{s}'"
.extra = .str
.kind = .@"error"
invalid_asm_str
.msg = "cannot use {s} string literal in assembly"
.extra = .str
.kind = .@"error"
dollar_in_identifier_extension
.msg = "'$' in identifier"
.opt = W("dollar-in-identifier-extension")
.kind = .off
.pedantic = true
dollars_in_identifiers
.msg = "illegal character '$' in identifier"
.kind = .@"error"
expanded_from_here
.msg = "expanded from here"
.kind = .note
skipping_macro_backtrace
.msg = "(skipping {d} expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)"
.extra = .unsigned
.kind = .note
pragma_operator_string_literal
.msg = "_Pragma requires exactly one string literal token"
.kind = .@"error"
unknown_gcc_pragma
.msg = "pragma GCC expected 'error', 'warning', 'diagnostic', 'poison'"
.opt = W("unknown-pragmas")
.kind = .off
.all = true
unknown_gcc_pragma_directive
.msg = "pragma GCC diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'"
.opt = W("unknown-pragmas")
.kind = .warning
.all = true
predefined_top_level
.msg = "predefined identifier is only valid inside function"
.opt = W("predefined-identifier-outside-function")
.kind = .warning
incompatible_va_arg
.msg = "first argument to va_arg, is of type '{s}' and not 'va_list'"
.extra = .str
.kind = .@"error"
too_many_scalar_init_braces
.msg = "too many braces around scalar initializer"
.opt = W("many-braces-around-scalar-init")
.kind = .warning
uninitialized_in_own_init
.msg = "variable '{s}' is uninitialized when used within its own initialization"
.extra = .str
.opt = W("uninitialized")
.kind = .off
.all = true
gnu_statement_expression
.msg = "use of GNU statement expression extension"
.opt = W("gnu-statement-expression")
.kind = .off
.suppress_gnu = true
.pedantic = true
stmt_expr_not_allowed_file_scope
.msg = "statement expression not allowed at file scope"
.kind = .@"error"
gnu_imaginary_constant
.msg = "imaginary constants are a GNU extension"
.opt = W("gnu-imaginary-constant")
.kind = .off
.suppress_gnu = true
.pedantic = true
plain_complex
.msg = "plain '_Complex' requires a type specifier; assuming '_Complex double'"
.kind = .warning
complex_int
.msg = "complex integer types are a GNU extension"
.opt = W("gnu-complex-integer")
.suppress_gnu = true
.kind = .off
qual_on_ret_type
.msg = "'{s}' type qualifier on return type has no effect"
.opt = W("ignored-qualifiers")
.extra = .str
.kind = .off
.all = true
cli_invalid_standard
.msg = "invalid standard '{s}'"
.extra = .str
.kind = .@"error"
cli_invalid_target
.msg = "invalid target '{s}'"
.extra = .str
.kind = .@"error"
cli_invalid_emulate
.msg = "invalid compiler '{s}'"
.extra = .str
.kind = .@"error"
cli_unknown_arg
.msg = "unknown argument '{s}'"
.extra = .str
.kind = .@"error"
cli_error
.msg = "{s}"
.extra = .str
.kind = .@"error"
cli_unused_link_object
.msg = "{s}: linker input file unused because linking not done"
.extra = .str
.kind = .warning
cli_unknown_linker
.msg = "unrecognized linker '{s}'"
.extra = .str
.kind = .@"error"
extra_semi
.msg = "extra ';' outside of a function"
.opt = W("extra-semi")
.kind = .off
.pedantic = true
func_field
.msg = "field declared as a function"
.kind = .@"error"
vla_field
.msg = "variable length array fields extension is not supported"
.kind = .@"error"
field_incomplete_ty
.msg = "field has incomplete type '{s}'"
.extra = .str
.kind = .@"error"
flexible_in_union
.msg = "flexible array member in union is not allowed"
.kind = .@"error"
.suppress_msvc = true
flexible_non_final
.msg = "flexible array member is not at the end of struct"
.kind = .@"error"
flexible_in_empty
.msg = "flexible array member in otherwise empty struct"
.kind = .@"error"
.suppress_msvc = true
duplicate_member
.msg = "duplicate member '{s}'"
.extra = .str
.kind = .@"error"
binary_integer_literal
.msg = "binary integer literals are a GNU extension"
.kind = .off
.opt = W("gnu-binary-literal")
.pedantic = true
gnu_va_macro
.msg = "named variadic macros are a GNU extension"
.opt = W("variadic-macros")
.kind = .off
.pedantic = true
builtin_must_be_called
.msg = "builtin function must be directly called"
.kind = .@"error"
va_start_not_in_func
.msg = "'va_start' cannot be used outside a function"
.kind = .@"error"
va_start_fixed_args
.msg = "'va_start' used in a function with fixed args"
.kind = .@"error"
va_start_not_last_param
.msg = "second argument to 'va_start' is not the last named parameter"
.opt = W("varargs")
.kind = .warning
attribute_not_enough_args
.msg = "'{s}' attribute takes at least {d} argument(s)"
.kind = .@"error"
.extra = .attr_arg_count
attribute_too_many_args
.msg = "'{s}' attribute takes at most {d} argument(s)"
.kind = .@"error"
.extra = .attr_arg_count
attribute_arg_invalid
.msg = "Attribute argument is invalid, expected {s} but got {s}"
.kind = .@"error"
.extra = .attr_arg_type
unknown_attr_enum
.msg = "Unknown `{s}` argument. Possible values are: {s}"
.kind = .@"error"
.extra = .attr_enum
attribute_requires_identifier
.msg = "'{s}' attribute requires an identifier"
.kind = .@"error"
.extra = .str
declspec_not_enabled
.msg = "'__declspec' attributes are not enabled; use '-fdeclspec' or '-fms-extensions' to enable support for __declspec attributes"
.kind = .@"error"
declspec_attr_not_supported
.msg = "__declspec attribute '{s}' is not supported"
.extra = .str
.opt = W("ignored-attributes")
.kind = .warning
deprecated_declarations
.msg = "{s}"
.extra = .str
.opt = W("deprecated-declarations")
.kind = .warning
deprecated_note
.msg = "'{s}' has been explicitly marked deprecated here"
.extra = .str
.opt = W("deprecated-declarations")
.kind = .note
unavailable
.msg = "{s}"
.extra = .str
.kind = .@"error"
unavailable_note
.msg = "'{s}' has been explicitly marked unavailable here"
.extra = .str
.kind = .note
warning_attribute
.msg = "{s}"
.extra = .str
.kind = .warning
.opt = W("attribute-warning")
error_attribute
.msg = "{s}"
.extra = .str
.kind = .@"error"
ignored_record_attr
.msg = "attribute '{s}' is ignored, place it after \"{s}\" to apply attribute to type declaration"
.extra = .ignored_record_attr
.kind = .warning
.opt = W("ignored-attributes")
backslash_newline_escape
.msg = "backslash and newline separated by space"
.kind = .warning
.opt = W("backslash-newline-escape")
array_size_non_int
.msg = "size of array has non-integer type '{s}'"
.extra = .str
.kind = .@"error"
cast_to_smaller_int
.msg = "cast to smaller integer type {s}"
.extra = .str
.kind = .warning
.opt = W("pointer-to-int-cast")
gnu_switch_range
.msg = "use of GNU case range extension"
.opt = W("gnu-case-range")
.kind = .off
.pedantic = true
empty_case_range
.msg = "empty case range specified"
.kind = .warning
non_standard_escape_char
.msg = "use of non-standard escape character '\\{s}'"
.kind = .off
.opt = W("pedantic")
.extra = .invalid_escape
invalid_pp_stringify_escape
.msg = "invalid string literal, ignoring final '\\'"
.kind = .warning
vla
.msg = "variable length array used"
.kind = .off
.opt = W("vla")
float_overflow_conversion
.msg = "implicit conversion of non-finite value from {s} is undefined"
.extra = .str
.kind = .off
.opt = W("float-overflow-conversion")
float_out_of_range
.msg = "implicit conversion of out of range value from {s} is undefined"
.extra = .str
.kind = .warning
.opt = W("literal-conversion")
float_zero_conversion
.msg = "implicit conversion from {s}"
.extra = .str
.kind = .off
.opt = W("float-zero-conversion")
float_value_changed
.msg = "implicit conversion from {s}"
.extra = .str
.kind = .warning
.opt = W("float-conversion")
float_to_int
.msg = "implicit conversion turns floating-point number into integer: {s}"
.extra = .str
.kind = .off
.opt = W("literal-conversion")
const_decl_folded
.msg = "expression is not an integer constant expression; folding it to a constant is a GNU extension"
.kind = .off
.opt = W("gnu-folding-constant")
.pedantic = true
const_decl_folded_vla
.msg = "variable length array folded to constant array as an extension"
.kind = .off
.opt = W("gnu-folding-constant")
.pedantic = true
redefinition_of_typedef
.msg = "typedef redefinition with different types ({s})"
.extra = .str
.kind = .@"error"
undefined_macro
.msg = "'{s}' is not defined, evaluates to 0"
.extra = .str
.kind = .off
.opt = W("undef")
fn_macro_undefined
.msg = "function-like macro '{s}' is not defined"
.extra = .str
.kind = .@"error"
preprocessing_directive_only
.msg = "'{s}' must be used within a preprocessing directive"
.extra = .tok_id_expected
.kind = .@"error"
missing_lparen_after_builtin
.msg = "Missing '(' after built-in macro '{s}'"
.extra = .str
.kind = .@"error"
offsetof_ty
.msg = "offsetof requires struct or union type, '{s}' invalid"
.extra = .str
.kind = .@"error"
offsetof_incomplete
.msg = "offsetof of incomplete type '{s}'"
.extra = .str
.kind = .@"error"
offsetof_array
.msg = "offsetof requires array type, '{s}' invalid"
.extra = .str
.kind = .@"error"
pragma_pack_lparen
.msg = "missing '(' after '#pragma pack' - ignoring"
.kind = .warning
.opt = W("ignored-pragmas")
pragma_pack_rparen
.msg = "missing ')' after '#pragma pack' - ignoring"
.kind = .warning
.opt = W("ignored-pragmas")
pragma_pack_unknown_action
.msg = "unknown action for '#pragma pack' - ignoring"
.opt = W("ignored-pragmas")
.kind = .warning
pragma_pack_show
.msg = "value of #pragma pack(show) == {d}"
.extra = .unsigned
.kind = .warning
pragma_pack_int
.msg = "expected #pragma pack parameter to be '1', '2', '4', '8', or '16'"
.opt = W("ignored-pragmas")
.kind = .warning
pragma_pack_int_ident
.msg = "expected integer or identifier in '#pragma pack' - ignored"
.opt = W("ignored-pragmas")
.kind = .warning
pragma_pack_undefined_pop
.msg = "specifying both a name and alignment to 'pop' is undefined"
.kind = .warning
pragma_pack_empty_stack
.msg = "#pragma pack(pop, ...) failed: stack empty"
.opt = W("ignored-pragmas")
.kind = .warning
cond_expr_type
.msg = "used type '{s}' where arithmetic or pointer type is required"
.extra = .str
.kind = .@"error"
too_many_includes
.msg = "#include nested too deeply"
.kind = .@"error"
enumerator_too_small
.msg = "ISO C restricts enumerator values to range of 'int' ({s} is too small)"
.extra = .str
.kind = .off
.opt = W("pedantic")
enumerator_too_large
.msg = "ISO C restricts enumerator values to range of 'int' ({s} is too large)"
.extra = .str
.kind = .off
.opt = W("pedantic")
include_next
.msg = "#include_next is a language extension"
.kind = .off
.pedantic = true
.opt = W("gnu-include-next")
include_next_outside_header
.msg = "#include_next in primary source file; will search from start of include path"
.kind = .warning
.opt = W("include-next-outside-header")
enumerator_overflow
.msg = "overflow in enumeration value"
.kind = .warning
enum_not_representable
.msg = "incremented enumerator value {s} is not representable in the largest integer type"
.kind = .warning
.opt = W("enum-too-large")
.extra = .pow_2_as_string
enum_too_large
.msg = "enumeration values exceed range of largest integer"
.kind = .warning
.opt = W("enum-too-large")
enum_fixed
.msg = "enumeration types with a fixed underlying type are a Clang extension"
.kind = .off
.pedantic = true
.opt = W("fixed-enum-extension")
enum_prev_nonfixed
.msg = "enumeration previously declared with nonfixed underlying type"
.kind = .@"error"
enum_prev_fixed
.msg = "enumeration previously declared with fixed underlying type"
.kind = .@"error"
enum_different_explicit_ty
# str will be like 'new' (was 'old'
.msg = "enumeration redeclared with different underlying type {s})"
.extra = .str
.kind = .@"error"
enum_not_representable_fixed
.msg = "enumerator value is not representable in the underlying type '{s}'"
.extra = .str
.kind = .@"error"
transparent_union_wrong_type
.msg = "'transparent_union' attribute only applies to unions"
.opt = W("ignored-attributes")
.kind = .warning
transparent_union_one_field
.msg = "transparent union definition must contain at least one field; transparent_union attribute ignored"
.opt = W("ignored-attributes")
.kind = .warning
transparent_union_size
.msg = "size of field {s} bits) does not match the size of the first field in transparent union; transparent_union attribute ignored"
.extra = .str
.opt = W("ignored-attributes")
.kind = .warning
transparent_union_size_note
.msg = "size of first field is {d}"
.extra = .unsigned
.kind = .note
designated_init_invalid
.msg = "'designated_init' attribute is only valid on 'struct' type'"
.kind = .@"error"
designated_init_needed
.msg = "positional initialization of field in 'struct' declared with 'designated_init' attribute"
.opt = W("designated-init")
.kind = .warning
ignore_common
.msg = "ignoring attribute 'common' because it conflicts with attribute 'nocommon'"
.opt = W("ignored-attributes")
.kind = .warning
ignore_nocommon
.msg = "ignoring attribute 'nocommon' because it conflicts with attribute 'common'"
.opt = W("ignored-attributes")
.kind = .warning
non_string_ignored
.msg = "'nonstring' attribute ignored on objects of type '{s}'"
.opt = W("ignored-attributes")
.kind = .warning
local_variable_attribute
.msg = "'{s}' attribute only applies to local variables"
.extra = .str
.opt = W("ignored-attributes")
.kind = .warning
ignore_cold
.msg = "ignoring attribute 'cold' because it conflicts with attribute 'hot'"
.opt = W("ignored-attributes")
.kind = .warning
ignore_hot
.msg = "ignoring attribute 'hot' because it conflicts with attribute 'cold'"
.opt = W("ignored-attributes")
.kind = .warning
ignore_noinline
.msg = "ignoring attribute 'noinline' because it conflicts with attribute 'always_inline'"
.opt = W("ignored-attributes")
.kind = .warning
ignore_always_inline
.msg = "ignoring attribute 'always_inline' because it conflicts with attribute 'noinline'"
.opt = W("ignored-attributes")
.kind = .warning
invalid_noreturn
.msg = "function '{s}' declared 'noreturn' should not return"
.extra = .str
.kind = .warning
.opt = W("invalid-noreturn")
nodiscard_unused
.msg = "ignoring return value of '{s}', declared with 'nodiscard' attribute"
.extra = .str
.kind = .warning
.opt = W("unused-result")
warn_unused_result
.msg = "ignoring return value of '{s}', declared with 'warn_unused_result' attribute"
.extra = .str
.kind = .warning
.opt = W("unused-result")
invalid_vec_elem_ty
.msg = "invalid vector element type '{s}'"
.extra = .str
.kind = .@"error"
vec_size_not_multiple
.msg = "vector size not an integral multiple of component size"
.kind = .@"error"
invalid_imag
.msg = "invalid type '{s}' to __imag operator"
.extra = .str
.kind = .@"error"
invalid_real
.msg = "invalid type '{s}' to __real operator"
.extra = .str
.kind = .@"error"
zero_length_array
.msg = "zero size arrays are an extension"
.kind = .off
.pedantic = true
.opt = W("zero-length-array")
old_style_flexible_struct
.msg = "array index {s} is past the end of the array"
.extra = .str
.kind = .off
.pedantic = true
.opt = W("old-style-flexible-struct")
comma_deletion_va_args
.msg = "token pasting of ',' and __VA_ARGS__ is a GNU extension"
.kind = .off
.pedantic = true
.opt = W("gnu-zero-variadic-macro-arguments")
.suppress_gcc = true
main_return_type
.msg = "return type of 'main' is not 'int'"
.kind = .warning
.opt = W("main-return-type")
expansion_to_defined
.msg = "macro expansion producing 'defined' has undefined behavior"
.kind = .off
.pedantic = true
.opt = W("expansion-to-defined")
invalid_int_suffix
.msg = "invalid suffix '{s}' on integer constant"
.extra = .str
.kind = .@"error"
invalid_float_suffix
.msg = "invalid suffix '{s}' on floating constant"
.extra = .str
.kind = .@"error"
invalid_octal_digit
.msg = "invalid digit '{c}' in octal constant"
.extra = .ascii
.kind = .@"error"
invalid_binary_digit
.msg = "invalid digit '{c}' in binary constant"
.extra = .ascii
.kind = .@"error"
exponent_has_no_digits
.msg = "exponent has no digits"
.kind = .@"error"
hex_floating_constant_requires_exponent
.msg = "hexadecimal floating constant requires an exponent"
.kind = .@"error"
sizeof_returns_zero
.msg = "sizeof returns 0"
.kind = .warning
.suppress_gcc = true
.suppress_clang = true
declspec_not_allowed_after_declarator
.msg = "'declspec' attribute not allowed after declarator"
.kind = .@"error"
declarator_name_tok
.msg = "this declarator"
.kind = .note
type_not_supported_on_target
.msg = "{s} is not supported on this target"
.extra = .str
.kind = .@"error"
bit_int
.msg = "'_BitInt' in C17 and earlier is a Clang extension'"
.kind = .off
.pedantic = true
.opt = W("bit-int-extension")
.suppress_version = .c23
unsigned_bit_int_too_small
.msg = "{s} must have a bit size of at least 1"
.extra = .str
.kind = .@"error"
signed_bit_int_too_small
.msg = "{s} must have a bit size of at least 2"
.extra = .str
.kind = .@"error"
bit_int_too_big
.msg = "{s} of bit sizes greater than " ++ std.fmt.comptimePrint("{d}", .{Properties.max_bits}) ++ " not supported"
.extra = .str
.kind = .@"error"
keyword_macro
.msg = "keyword is hidden by macro definition"
.kind = .off
.pedantic = true
.opt = W("keyword-macro")
ptr_arithmetic_incomplete
.msg = "arithmetic on a pointer to an incomplete type '{s}'"
.extra = .str
.kind = .@"error"
callconv_not_supported
.msg = "'{s}' calling convention is not supported for this target"
.extra = .str
.opt = W("ignored-attributes")
.kind = .warning
pointer_arith_void
.msg = "invalid application of '{s}' to a void type"
.extra = .str
.kind = .off
.pedantic = true
.opt = W("pointer-arith")
sizeof_array_arg
.msg = "sizeof on array function parameter will return size of {s}"
.extra = .str
.kind = .warning
.opt = W("sizeof-array-argument")
array_address_to_bool
.msg = "address of array '{s}' will always evaluate to 'true'"
.extra = .str
.kind = .warning
.opt = W("pointer-bool-conversion")
string_literal_to_bool
.msg = "implicit conversion turns string literal into bool: {s}"
.extra = .str
.kind = .off
.opt = W("string-conversion")
constant_expression_conversion_not_allowed
.msg = "this conversion is not allowed in a constant expression"
.kind = .note
invalid_object_cast
.msg = "cannot cast an object of type {s}"
.extra = .str
.kind = .@"error"
cli_invalid_fp_eval_method
.msg = "unsupported argument '{s}' to option '-ffp-eval-method='; expected 'source', 'double', or 'extended'"
.extra = .str
.kind = .@"error"
suggest_pointer_for_invalid_fp16
.msg = "{s} cannot have __fp16 type; did you forget * ?"
.extra = .str
.kind = .@"error"
bitint_suffix
.msg = "'_BitInt' suffix for literals is a C23 extension"
.opt = W("c23-extensions")
.kind = .warning
.suppress_version = .c23
auto_type_extension
.msg = "'__auto_type' is a GNU extension"
.opt = W("gnu-auto-type")
.kind = .off
.pedantic = true
auto_type_not_allowed
.msg = "'__auto_type' not allowed in {s}"
.kind = .@"error"
.extra = .str
auto_type_requires_initializer
.msg = "declaration of variable '{s}' with deduced type requires an initializer"
.kind = .@"error"
.extra = .str
auto_type_requires_single_declarator
.msg = "'__auto_type' may only be used with a single declarator"
.kind = .@"error"
auto_type_requires_plain_declarator
.msg = "'__auto_type' requires a plain identifier as declarator"
.kind = .@"error"
invalid_cast_to_auto_type
.msg = "invalid cast to '__auto_type'"
.kind = .@"error"
auto_type_from_bitfield
.msg = "cannot use bit-field as '__auto_type' initializer"
.kind = .@"error"
array_of_auto_type
.msg = "'{s}' declared as array of '__auto_type'"
.kind = .@"error"
.extra = .str
auto_type_with_init_list
.msg = "cannot use '__auto_type' with initializer list"
.kind = .@"error"
missing_semicolon
.msg = "expected ';' at end of declaration list"
.kind = .warning
tentative_definition_incomplete
.msg = "tentative definition has type '{s}' that is never completed"
.kind = .@"error"
.extra = .str
forward_declaration_here
.msg = "forward declaration of '{s}'"
.kind = .note
.extra = .str
gnu_union_cast
.msg = "cast to union type is a GNU extension"
.opt = W("gnu-union-cast")
.kind = .off
.pedantic = true
invalid_union_cast
.msg = "cast to union type from type '{s}' not present in union"
.kind = .@"error"
.extra = .str
cast_to_incomplete_type
.msg = "cast to incomplete type '{s}'"
.kind = .@"error"
.extra = .str
invalid_source_epoch
.msg = "environment variable SOURCE_DATE_EPOCH must expand to a non-negative integer less than or equal to 253402300799"
.kind = .@"error"
fuse_ld_path
.msg = "'-fuse-ld=' taking a path is deprecated; use '--ld-path=' instead"
.kind = .off
.opt = W("fuse-ld-path")
invalid_rtlib
.msg = "invalid runtime library name '{s}'"
.kind = .@"error"
.extra = .str
unsupported_rtlib_gcc
.msg = "unsupported runtime library 'libgcc' for platform '{s}'"
.kind = .@"error"
.extra = .str
invalid_unwindlib
.msg = "invalid unwind library name '{s}'"
.kind = .@"error"
.extra = .str
incompatible_unwindlib
.msg = "--rtlib=libgcc requires --unwindlib=libgcc"
.kind = .@"error"
gnu_asm_disabled
.msg = "GNU-style inline assembly is disabled"
.kind = .@"error"
extension_token_used
.msg = "extension used"
.kind = .off
.pedantic = true
.opt = W("language-extension-token")
complex_component_init
.msg = "complex initialization specifying real and imaginary components is an extension"
.opt = W("complex-component-init")
.kind = .off
.pedantic = true
complex_prefix_postfix_op
.msg = "ISO C does not support '++'/'--' on complex type '{s}'"
.opt = W("pedantic")
.extra = .str
.kind = .off
not_floating_type
.msg = "argument type '{s}' is not a real floating point type"
.extra = .str
.kind = .@"error"
argument_types_differ
.msg = "arguments are of different types ({s})"
.extra = .str
.kind = .@"error"
ms_search_rule
.msg = "#include resolved using non-portable Microsoft search rules as: {s}"
.extra = .str
.opt = W("microsoft-include")
.kind = .warning
ctrl_z_eof
.msg = "treating Ctrl-Z as end-of-file is a Microsoft extension"
.opt = W("microsoft-end-of-file")
.kind = .off
.pedantic = true
illegal_char_encoding_warning
.msg = "illegal character encoding in character literal"
.opt = W("invalid-source-encoding")
.kind = .warning
illegal_char_encoding_error
.msg = "illegal character encoding in character literal"
.kind = .@"error"
ucn_basic_char_error
.msg = "character '{c}' cannot be specified by a universal character name"
.kind = .@"error"
.extra = .ascii
ucn_basic_char_warning
.msg = "specifying character '{c}' with a universal character name is incompatible with C standards before C23"
.kind = .off
.extra = .ascii
.suppress_unless_version = .c23
.opt = W("pre-c23-compat")
ucn_control_char_error
.msg = "universal character name refers to a control character"
.kind = .@"error"
ucn_control_char_warning
.msg = "universal character name referring to a control character is incompatible with C standards before C23"
.kind = .off
.suppress_unless_version = .c23
.opt = W("pre-c23-compat")
c89_ucn_in_literal
.msg = "universal character names are only valid in C99 or later"
.suppress_version = .c99
.kind = .warning
.opt = W("unicode")
four_char_char_literal
.msg = "multi-character character constant"
.opt = W("four-char-constants")
.kind = .off
multi_char_char_literal
.msg = "multi-character character constant"
.kind = .off
missing_hex_escape
.msg = "\\{c} used with no following hex digits"
.kind = .@"error"
.extra = .ascii
unknown_escape_sequence
.msg = "unknown escape sequence '\\{s}'"
.kind = .warning
.opt = W("unknown-escape-sequence")
.extra = .invalid_escape
attribute_requires_string
.msg = "attribute '{s}' requires an ordinary string"
.kind = .@"error"
.extra = .str
unterminated_string_literal_warning
.msg = "missing terminating '\"' character"
.kind = .warning
.opt = W("invalid-pp-token")
unterminated_string_literal_error
.msg = "missing terminating '\"' character"
.kind = .@"error"
empty_char_literal_warning
.msg = "empty character constant"
.kind = .warning
.opt = W("invalid-pp-token")
empty_char_literal_error
.msg = "empty character constant"
.kind = .@"error"
unterminated_char_literal_warning
.msg = "missing terminating ' character"
.kind = .warning
.opt = W("invalid-pp-token")
unterminated_char_literal_error
.msg = "missing terminating ' character"
.kind = .@"error"
unterminated_comment
.msg = "unterminated comment"
.kind = .@"error"
def_no_proto_deprecated
.msg = "a function definition without a prototype is deprecated in all versions of C and is not supported in C23"
.kind = .warning
.opt = W("deprecated-non-prototype")
passing_args_to_kr
.msg = "passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C23"
.kind = .warning
.opt = W("deprecated-non-prototype")
unknown_type_name
.msg = "unknown type name '{s}'"
.kind = .@"error"
.extra = .str
label_compound_end
.msg = "label at end of compound statement is a C23 extension"
.opt = W("c23-extensions")
.kind = .warning
.suppress_version = .c23
u8_char_lit
.msg = "UTF-8 character literal is a C23 extension"
.opt = W("c23-extensions")
.kind = .warning
.suppress_version = .c23
malformed_embed_param
.msg = "unexpected token in embed parameter"
.kind = .@"error"
malformed_embed_limit
.msg = "the limit parameter expects one non-negative integer as a parameter"
.kind = .@"error"
duplicate_embed_param
.msg = "duplicate embed parameter '{s}'"
.kind = .warning
.extra = .str
.opt = W("duplicate-embed-param")
unsupported_embed_param
.msg = "unsupported embed parameter '{s}' embed parameter"
.kind = .warning
.extra = .str
.opt = W("unsupported-embed-param")
invalid_compound_literal_storage_class
.msg = "compound literal cannot have {s} storage class"
.kind = .@"error"
.extra = .str
va_opt_lparen
.msg = "missing '(' following __VA_OPT__"
.kind = .@"error"
va_opt_rparen
.msg = "unterminated __VA_OPT__ argument list"
.kind = .@"error"
attribute_int_out_of_range
.msg = "attribute value '{s}' out of range"
.kind = .@"error"
.extra = .str
identifier_not_normalized
.msg = "'{s}' is not in NFC"
.kind = .warning
.extra = .normalized
.opt = W("normalized")
c23_auto_plain_declarator
.msg = "'auto' requires a plain identifier declarator"
.kind = .@"error"
c23_auto_single_declarator
.msg = "'auto' can only be used with a single declarator"
.kind = .@"error"
c32_auto_requires_initializer
.msg = "'auto' requires an initializer"
.kind = .@"error"
c23_auto_scalar_init
.msg = "'auto' requires a scalar initializer"
.kind = .@"error"