// VALUES: 
// x = error name in enumeration
// y = number of the error, exists purely because there's two errors that map to the same thing but have different semantics
// z = The error text for easy searching
// a = ERROR LEVEL
// b = mapped GCC -> OrangeC error name
// c = Mapped help categories
// FURTHER POSSIBLE UPDATES INCLUDE:
// LISTING THE ERROR CATEGORY SUCH THAT WE KNOW WHEN SOMETHING IS ACTIVATED BY -Wall AND CAN ADD/REMOVE EASILY
// The above may be done by just having a "-Wall" list or the like that lists all numbers/warnings activated when doing "-Wall" or "-Wextra"
#ifndef ERRLIST
// In the normal list of errors
#    define ERRLIST(x, y, z, a)
#endif
#ifndef ERRSCHEMA
// In the list of errors that uses the same errc as another error
#    define ERRSCHEMA(x, y, z, a)
#endif
#ifndef ERRWITHHELP
// ERRLIST but with an extra flag so that you don't need to just know error number, and -W from GCC works
#    define ERRWITHHELP(x, y, z, a, b)
#endif
#ifndef ERRWITHWARNFLAG
#    define ERRWITHWARNFLAG(x, y, z, a, b)
#endif
#ifndef ERRWITHWARNFLAGHELP
#    define ERRWITHWARNFLAGHELP(x, y, z, a, b, c)
#endif
ERRLIST(ERR_UNKNOWN, 0, "Unknown error", ERROR)
ERRLIST(ERR_TOO_MANY_ERRORS, 1, "Too many errors or warnings", ERROR)
ERRLIST(ERR_CONSTTOOLARGE, 2, "Constant too large", ERROR)
ERRLIST(ERR_CONSTANT_VALUE_EXPECTED, 3, "Expected constant", ERROR)
ERRLIST(ERR_INVCONST, 4, "Invalid constant", ERROR)
ERRLIST(ERR_INVFPCONST, 5, "Invalid floating point constant", ERROR)
ERRLIST(ERR_INVALID_CHAR_CONSTANT, 6, "Invalid character constant", ERROR)
ERRLIST(ERR_UNTERM_CHAR_CONSTANT, 7, "Unterminated character constant", ERROR)
ERRLIST(ERR_INVALID_STRING_CONSTANT, 8, "Invalid string constant", ERROR)
ERRLIST(ERR_UNTERM_STRING_CONSTANT, 9, "Unterminated string constant", ERROR)
ERRLIST(ERR_STRING_CONSTANT_TOO_LONG, 10, "String constant too long", ERROR)
ERRLIST(ERR_NEEDY, 11, "Syntax error: %c expected", ERROR)
ERRLIST(ERR_NEEDSTRING, 12, "Syntax error: string constant expected", ERROR)
ERRLIST(ERR_NEED_CONSTANT_OR_ADDRESS, 13, "Expected constant or address", ERROR)
ERRLIST(ERR_NEED_INTEGER_TYPE, 14, "Expected integer type", ERROR)
ERRLIST(ERR_NEED_INTEGER_EXPRESSION, 15, "Expected integer expression", ERROR)
ERRLIST(ERR_IDENTIFIER_EXPECTED, 16, "Identifier expected", ERROR)
ERRLIST(ERR_DUPLICATE_IDENTIFIER, 17, "Multiple declaration of '%s'", ERROR)
ERRLIST(ERR_UNDEFINED_IDENTIFIER, 18, "Undefined symbol '%s'", ERROR)
ERRLIST(ERR_TOO_MANY_IDENTIFIERS, 19, "Too many identififiers in type", ERROR)
ERRLIST(ERR_UNEXPECTED_EOF, 20, "Unexpected end of file", ERROR)
ERRLIST(ERR_EOF_NONTERM, 21, "File not terminated with End Of Line character", TRIVIALWARNING)
ERRLIST(ERR_NESTEDCOMMENTS, 22, "Nested Comments", TRIVIALWARNING)
ERRLIST(ERR_EOF_COMMENT, 23, "Non-terminated comment in file started at line %d", WARNING)
ERRLIST(ERR_EOF_PREPROC, 24, "Non-terminated preprocessor conditional in include file started at line %d", ERROR)
ERRLIST(ERR_PPELIF_NO_IF, 25, "#elif without #if", ERROR)
ERRLIST(ERR_PPELSE_NO_IF, 26, "#else without #if", ERROR)
ERRLIST(ERR_PPENDIF_NO_IF, 27, "#endif without #if", ERROR)
ERRLIST(ERR_MACROSUBS, 28, "Macro substitution error", ERROR)
ERRLIST(ERR_WRONGMACROARGS, 29, "Incorrect macro argument in call to '%s'", ERROR)
ERRLIST(ERR_EOL_UNEXPECTED, 30, "Unexpected end of line in directive", ERROR)
ERRLIST(ERR_UNKNOWNDIR, 31, "Unknown preprocessor directive '%s'", ERROR)
ERRLIST(ERR_PP_DIR_ERROR, 32, "#error: '%s'", ERROR)
ERRLIST(ERR_INCL_FILE_NAME, 33, "Expected include file name", ERROR)
ERRLIST(ERR_INCL_CANT_OPEN, 34, "Cannot open include file \"%s\"", ERROR)
ERRLIST(ERR_PP_INV_DEFINITION, 35, "Invalid macro definition", ERROR)
ERRLIST(ERR_PP_REDEFINE_NOT_SAME, 36, "Redefinition of macro '%s' changes value", ANSIWARNING)
ERRLIST(ERR_PRAGERROR, 37, "error: %s", ERROR)
ERRLIST(ERR_PRAGWARN, 38, "warning: %s", WARNING)
ERRLIST(ERR_PREVIOUS, 39, "Previous declaration of '%s' here", WARNING)
ERRLIST(ERR_UNKNOWN_CHAR, 40, "Unknown symbol '%c'", ERROR)
ERRLIST(ERR_UNSIZED, 41, "Size of '%s' is unknown or zero", ERROR)
ERRLIST(ERR_UNSIZED_TYPE, 42, "Size of the type '%s' is unknown or zero", ERROR)
ERRLIST(ERR_MISMATCHED_STRUCTURED_TYPE_IN_REDEFINITION, 43, "Tag '%s' not defined as this type", ERROR)
ERRLIST(ERR_STRUCTURE_BODY_NO_MEMBERS, 44, "Structure body has no members", ERROR)
ERRLIST(ERR_ANONYMOUS_UNION_WARNING, 45, "Anonymous unions are nonportable", TRIVIALWARNING | ANSIERROR)
ERRLIST(ERR_ANONYMOUS_STRUCT_WARNING, 46, "Anonymous structures are nonportable", TRIVIALWARNING | ANSIERROR)
ERRLIST(ERR_STRUCT_HAS_BODY, 47, "Structured type '%s' previously defined", ERROR)
ERRLIST(ERR_STRUCT_MAY_NOT_CONTAIN_INCOMPLETE_STRUCT, 48, "Type may not contain a structure with incomplete array", ERROR)
ERRLIST(ERR_ENUM_CONSTANTS_DEFINED, 49, "Enumerated type '%s' previously defined", ERROR)
ERRLIST(ERR_ANSI_ENUM_NO_COMMA, 50, "Trailing comma in enum declaration", ANSIERROR)
ERRLIST(ERR_ORIGINAL_TYPE_NOT_ENUMERATION, 51, "Tag '%s' not defined as this type", ERROR)
ERRLIST(ERR_ANSI_ENUM_NEEDS_BODY, 52, "Enumerated type may not be forward declared", ERROR)
ERRLIST(ERR_BIT_STRUCT_MEMBER, 53, "Bit field must be a non-static member of a structured type", ERROR)
ERRLIST(ERR_ANSI_INT_BIT, 54, "Bit field type must be 'int', 'unsigned', or '_Bool'", ANSIERROR)
ERRLIST(ERR_BIT_FIELD_INTEGER_TYPE, 55, "Bit field must be an integer type", ERROR)
ERRLIST(ERR_BIT_FIELD_TOO_LARGE, 56, "Bit field too large", ERROR)
ERRLIST(ERR_BIT_FIELD_MUST_CONTAIN_AT_LEAST_ONE_BIT, 57, "Bit field must contain at least one bit", ERROR)
ERRLIST(ERR_MEMBER_NAME_EXPECTED, 58, "%s", ERROR)
ERRLIST(ERR_POINTER_TO_STRUCTURE_EXPECTED, 59, "Pointer to structure required to left of '%s'", ERROR)
ERRLIST(ERR_STRUCTURED_TYPE_EXPECTED, 60, "Structure required to left of '%s'", ERROR)
ERRLIST(ERR_INVALID_STORAGE_CLASS, 61, "Storage class '%s' not allowed here", ERROR)
ERRLIST(ERR_ABSOLUTE_NEEDS_ADDRESS, 62, "_absolute storage class requires address", ERROR)
ERRLIST(ERR_TOO_MANY_STORAGE_CLASS_SPECIFIERS, 63, "Too many storage class specifiers", ERROR)
ERRLIST(ERR_ANSI_FORBID_BOTH_EXTERN_STATIC, 64, "Declarations for '%s' use both 'extern' and 'static' storage classes",
        WARNING | ANSIERROR)
ERRLIST(ERR_INLINE_NO_STATIC, 65, "Static object '%s' may not be declared within inline function", ERROR) /* fixme */
ERRLIST(ERR_INLINE_CANNOT_REFER_TO_STATIC, 66, "Static object '%s' may not be referred to within inline function", ERROR)
ERRLIST(ERR_NO_LINKAGE_HERE, 67, "Linkage specifier not allowed here", ERROR)
ERRLIST(ERR_TOO_MANY_LINKAGE_SPECIFIERS, 68, "Too many linkage specifiers in declaration", ERROR)
ERRLIST(ERR_DECLARE_SYNTAX, 69, "Declaration syntax error", ERROR)
ERRLIST(ERR_DECLARATION_DIFFERENT_QUALIFIERS, 70, "Redeclaration for '%s' with different qualifiers", ERROR)
ERRLIST(ERR_NO_DECLARATION_HERE, 71, "Declaration not allowed here", ERROR)
ERRLIST(ERR_DUPLICATE_TYPE_QUALIFIER, 72, "'%s' has already been included", ERROR)
ERRLIST(ERR_MISSING_TYPE_SPECIFIER, 73, "Missing type in declaration", WARNING)
ERRLIST(ERR_MISSING_TYPE_FOR_PARAMETER, 74, "Missing type for parameter '%s'", WARNING)
ERRLIST(ERR_C99_KEYWORD, 75, "'%s' is a C99 or C11 keyword - did you mean to specify C99 or C11 mode?", WARNING)
ERRLIST(ERR_TOO_MANY_TYPE_SPECIFIERS, 76, "Too many types in declaration", ERROR)
ERRLIST(ERR_TOO_MANY_IDENTIFIERS_IN_DECLARATION, 77, "Too many identifiers in declaration", ERROR)
ERRLIST(ERR_TYPE_C99, 78, "Type '%s' requires C99", ERROR)
ERRLIST(ERR_VOID_NOT_ALLOWED, 79, "Type 'void' not allowed here", ERROR)
ERRLIST(ERR_INCOMPATIBLE_TYPE_CONVERSION, 80, "Incompatible type conversion", ERROR)
ERRLIST(ERR_REDEFINITION_OF_TYPE, 81, "Multiple declaration for type '%s'", ERROR)
ERRLIST(ERR_TOO_MANY_QUALIFIERS, 82, "Too many type qualifiers", ERROR)
ERRLIST(ERR_TYPE_MISMATCH_IN_REDECLARATION, 83, "Type mismatch in redeclaration of '%s'", ERROR)
ERRLIST(ERR_TWO_OPERANDS_SAME_TYPE, 84, "Two operands must evaluate to same type", ERROR)
ERRLIST(ERR_VLA_c99, 85, "Variably modified type requires C99", ERROR)
ERRLIST(ERR_VLA_BLOCK_SCOPE, 86, "Variably modified type allowed only in functions or parameters", ERROR)
ERRLIST(ERR_UNSIZED_VLA_PARAMETER, 87, "Unsized Variable length array may only be used in a prototype", ERROR)
ERRLIST(ERR_ARRAY_QUALIFIERS_C99, 88, "Array qualifier requires C99", ERROR)
ERRLIST(ERR_QUAL_LAST_ARRAY_ELEMENT, 89, "Array qualifier must be on last element of array", ERROR)
ERRLIST(ERR_ARRAY_QUAL_PARAMETER_ONLY, 90, "Array qualifier must be on a function parameter", ERROR)
ERRLIST(ERR_ONLY_FIRST_INDEX_MAY_BE_EMPTY, 91, "Only first array size specifier may be empty", ERROR)
ERRLIST(ERR_ARRAY_INDEX_INTEGER_TYPE, 92, "Array size specifier must be of integer type", ERROR)
ERRLIST(ERR_ARRAY_NEED_CLOSEBRACKET, 93, "Array declaration or use needs closebracket", ERROR)
ERRLIST(ERR_INVALID_ARRAY_INDEX, 94, "Array initialization designator not within array bounds", ERROR)
ERRLIST(ERR_ARRAY_INVALID_INDEX, 95, "Array must have at least one element", ERROR)
ERRLIST(ERR_EMPTY_ARRAY_LAST, 96, "Nonsized array must be last element of structure", ERROR)
ERRLIST(ERR_ARRAY_EXPECTED, 97, "Array expected", ERROR)
ERRLIST(ERR_ARRAY_INDEX_OUT_OF_RANGE, 98, "Array designator out of range", ERROR)
ERRLIST(ERR_TYPE_MISMATCH_FUNC_DECLARATION, 99, "Type mismatch in redeclaration of function '%s'", ERROR)
ERRLIST(ERR_FUNCTION_BODY_EXPECTED, 100, "Untyped parameters must be used with a function body", ERROR)
ERRLIST(ERR_FUNCTION_PARAMETER_EXPECTED, 101, "Function parameter expected", ERROR)
ERRLIST(ERR_PARAMETER_MUST_HAVE_NAME, 102, "Parameter '%s' missing name", ERROR)
ERRLIST(ERR_STRUCT_UNION_NO_FUNCTION, 103, "Functions may not be part of a structure or union", ERROR)
ERRLIST(ERR_FUNCTION_NO_RETURN_FUNCTION_ARRAY, 104, "Functions may not return functions or arrays", ERROR)
ERRLIST(ERR_FUNCTION_SHOULD_RETURN_VALUE, 105, "Function should return a value", WARNING)
ERRLIST(ERR_VOID_ONLY_PARAMETER, 106, "Type void must be unnamed and the only parameter", ERROR)
ERRLIST(ERR_INLINE_NOT_ALLOWED, 107, "'inline' not allowed here", ERROR)
ERRLIST(ERR_MAIN_CANNOT_BE_INLINE_FUNC, 108, "'main' may not be declared as inline", ERROR)
ERRLIST(ERR_FUNCTION_TAKES_NO_PARAMETERS, 109, "Function takes no arguments", ERROR)
ERRWITHWARNFLAG(ERR_CALL_FUNCTION_NO_PROTO, 110, "Call to function '%s' without a prototype", TRIVIALWARNING, "missing-prototypes")
ERRLIST(ERR_PARAMETER_LIST_TOO_LONG, 111, "Argument list too long in call to '%s'", ERROR)
ERRLIST(ERR_PARAMETER_LIST_TOO_SHORT, 112, "Argument list too short in call to '%s'", ERROR)
ERRLIST(ERR_CALL_OF_NONFUNCTION, 113, "Call of nonfunction", ERROR)
ERRLIST(ERR_TYPE_MISMATCH_IN_ARGUMENT, 114, "Type mismatch in parameter '%s' in call to '%s'", ERROR)
ERRLIST(ERR_EXTERN_NO_INIT, 115, "extern object may not be initialized", ERROR)
ERRLIST(ERR_TYPEDEF_NO_INIT, 116, "typedef may not be initialized", ERROR)
ERRLIST(ERR_VLA_NO_INIT, 117, "object with variably modified type may not be initialized", ERROR)
ERRLIST(ERR_TOO_MANY_INITIALIZERS, 118, "Too many initializers", ERROR)
ERRLIST(ERR_C99_STYLE_INITIALIZATION_USED, 119, "Initialization designator requires C99", ERROR)
ERRLIST(ERR_C99_NON_CONSTANT_INITIALIZATION, 120, "Non-constant initialization requires C99", ERROR)
ERRLIST(ERR_BIT_NO_INITIAL_VALUE, 121, "Bitwise object may not be initialized", ERROR)
ERRLIST(ERR_CANNOT_INITIALIZE, 122, "Object of type '%s' may not be initialized", ERROR) /* fixme */
ERRLIST(ERR_ABSOLUTE_NOT_INITIALIZED, 123, "Objects with _absolute storage class may not be initialized", ERROR)
ERRLIST(ERR_CONSTANT_MUST_BE_INITIALIZED, 124, "Constant variable '%s' must be initialized", ERROR)
ERRLIST(ERR_STRING_TYPE_MISMATCH_IN_INITIALIZATION, 125, "String type mismatch in initialization", TRIVIALWARNING)
ERRLIST(ERR_MULTIPLE_INITIALIZATION, 126, "Multiple initialization of '%s'", ERROR)
ERRLIST(ERR_INITIALIZATION_MAY_BE_BYPASSED, 127, "Initialization bypassed", WARNING)
ERRLIST(ERR_GOTO_BYPASSES_VLA_INITIALIZATION, 128, "Object with variably modified type in line '%s' bypassed by goto", ERROR)
ERRLIST(ERR_NONPORTABLE_POINTER_CONVERSION, 129, "Nonportable pointer conversion", WARNING)
ERRLIST(ERR_NONPORTABLE_POINTER_COMPARISON, 130, "Nonportable pointer comparison", WARNING)
ERRLIST(ERR_INVALID_POINTER_CONVERSION, 131, "Nonportable pointer conversion", ERROR)
ERRLIST(ERR_SUSPICIOUS_POINTER_CONVERSION, 132, "Suspicious pointer conversion", WARNING)
ERRLIST(ERR_SHORT_POINTER, 133, "Dangerous pointer conversion", ERROR)
ERRLIST(ERR_INVALID_BASE_TYPE_FOR_STRING_CONSTANT, 134, "String constant may not be used as initializer here", ERROR)
ERRLIST(ERR_LVALUE, 135, "Lvalue required", ERROR)
ERRLIST(ERR_DEREF, 136, "Invalid indirection", ERROR)
ERRLIST(ERR_USED_WITHOUT_ASSIGNMENT, 137, "'%s' used without prior assignment", WARNING)
ERRLIST(ERR_POSSIBLE_INCORRECT_ASSIGNMENT, 138, "Possible incorrect assignment", WARNING)
ERRLIST(ERR_ANSI_FORBIDS_IMPLICIT_CONVERSION_FROM_VOID, 139, "Ansi forbids automatic conversion from void in assignment", ERROR)
ERRWITHWARNFLAG(ERR_SYM_ASSIGNED_VALUE_NEVER_USED, 140, "'%s' assigned a value that is never used", TRIVIALWARNING, "unused-but-set-variable")
ERRWITHWARNFLAG(ERR_UNUSED_PARAMETER, 141, "Parameter '%s' unused", TRIVIALWARNING, "unused-parameter")
ERRWITHWARNFLAG(ERR_UNUSED_VARIABLE, 142, "'%s' unused", TRIVIALWARNING, "unused-variable")
ERRLIST(ERR_UNUSED_STATIC, 143, "static object '%s' is unused", TRIVIALWARNING)
ERRWITHWARNFLAG(ERR_VARIABLE_OBSCURES_VARIABLE_AT_HIGHER_SCOPE, 144, "'%s' hides declaration at outer scope", WARNING, "shadow")
ERRLIST(ERR_NOT_AN_ALLOWED_TYPE, 145, "Cannot use 'void' value here", ERROR)
ERRLIST(ERR_CANNOT_MODIFY_CONST_OBJECT, 146, "Cannot modify a const object", ERROR)
ERRLIST(ERR_EXPRESSION_SYNTAX, 147, "Expression syntax error", ERROR)
ERRWITHWARNFLAG(ERR_SIGNED_UNSIGNED_MISMATCH_RELAT, 148, "signed/unsigned mismatch in '%s' comparison", TRIVIALWARNING, "sign-compare")
ERRLIST(ERR_SIZEOF_NO_FUNCTION, 149, "sizeof may not be used with a function designator", ERROR)
ERRLIST(ERR_ILL_STRUCTURE_ASSIGNMENT, 150, "Invalid structure assignment", ERROR)
ERRLIST(ERR_ILL_STRUCTURE_OPERATION, 151, "Invalid structure operation", ERROR)
ERRLIST(ERR_ILL_USE_OF_COMPLEX, 152, "Invalid use of complex", ERROR)
ERRLIST(ERR_ILL_USE_OF_FLOATING, 153, "Invalid use of floating point", ERROR)
ERRLIST(ERR_ILL_POINTER_OPERATION, 154, "Invalid pointer operation", ERROR)
ERRLIST(ERR_ILL_POINTER_ADDITION, 155, "Invalid pointer addition", ERROR)
ERRLIST(ERR_ILL_POINTER_SUBTRACTION, 156, "Invalid pointer subtraction", ERROR)
ERRLIST(ERR_CANNOT_TAKE_ADDRESS_OF_BIT_FIELD, 157, "Cannot take the address of a bit field", ERROR)
ERRLIST(ERR_CANNOT_TAKE_ADDRESS_OF_REGISTER, 158, "Cannot take address of a register variable", ERROR)
ERRLIST(ERR_MUST_TAKE_ADDRESS_OF_MEMORY_LOCATION, 159, "Must take address of memory location", ERROR)
ERRLIST(ERR_CANNOT_USE_bool_HERE, 160, "Cannot use variable of type 'bool' here", ERROR)
ERRLIST(ERR_HOOK_NEEDS_COLON, 161, "conditional needs ':'", ERROR)
ERRLIST(ERR_SWITCH_SELECTION_INTEGRAL, 162, "switch selection expression must be of integral type", ERROR)
ERRLIST(ERR_BREAK_NO_LOOP, 163, "'break' without enclosing loop or switch", ERROR)
ERRLIST(ERR_CASE_NO_SWITCH, 164, "'case' without enclosing switch", ERROR)
ERRLIST(ERR_DUPLICATE_CASE, 165, "Duplicate case '%s'", ERROR)
ERRLIST(ERR_CASE_INTEGER_CONSTANT, 166, "case value must be an integer expression", ERROR)
ERRLIST(ERR_CONTINUE_NO_LOOP, 167, "'continue' without enclosing loop", ERROR)
ERRLIST(ERR_DEFAULT_NO_SWITCH, 168, "'default' without enclosing switch", ERROR)
ERRLIST(ERR_SWITCH_NEEDS_OPENPA, 169, "switch statement needs open parenthesis", ERROR)
ERRLIST(ERR_SWITCH_NEEDS_CLOSEPA, 170, "switch statement needs close parenthesis", ERROR)
ERRLIST(ERR_SWITCH_HAS_DEFAULT, 171, "switch statement already has default", ERROR)
ERRLIST(ERR_DO_STMT_NEEDS_WHILE, 172, "do statement needs while", ERROR)
ERRLIST(ERR_DOWHILE_NEEDS_OPENPA, 173, "do-while statement needs open parenthesis", ERROR)
ERRLIST(ERR_DOWHILE_NEEDS_CLOSEPA, 174, "do-while statement needs close parenthesis", ERROR)
ERRLIST(ERR_WHILE_NEEDS_OPENPA, 175, "while statement needs open parenthesis", ERROR)
ERRLIST(ERR_WHILE_NEEDS_CLOSEPA, 176, "while statement needs close parenthesis", ERROR)
ERRLIST(ERR_FOR_NEEDS_SEMI, 177, "for statement needs semicolon", ERROR)
ERRLIST(ERR_FOR_NEEDS_OPENPA, 178, "for statement needs open parenthesis", ERROR)
ERRLIST(ERR_FOR_NEEDS_CLOSEPA, 179, "for statement needs close parenthesis", ERROR)
ERRLIST(ERR_IF_NEEDS_OPENPA, 180, "if statement needs open parenthesis", ERROR)
ERRLIST(ERR_IF_NEEDS_CLOSEPA, 181, "if statement needs close parenthesis", ERROR)
ERRLIST(ERR_MISPLACED_ELSE, 182, "Misplaced else statement", ERROR)
ERRLIST(ERR_GOTO_NEEDS_LABEL, 183, "goto statement needs a label specifier", ERROR)
ERRLIST(ERR_DUPLICATE_LABEL, 184, "Duplicate label '%s'", ERROR)
ERRLIST(ERR_UNDEFINED_LABEL, 185, "Undefined label '%s'", ERROR)
ERRLIST(ERR_RETURN_MUST_RETURN_VALUE, 186, "Return statement should have value", WARNING)
ERRLIST(ERR_CANNOT_RETURN_VOID_VALUE, 187, "Attempt to return a value of type void", ERROR)
ERRLIST(ERR_RETURN_NO_VALUE, 188, "Value specified in return of function with return type 'void'", WARNING)
ERRLIST(ERR_RETMISMATCH, 189, "Type mismatch in return statement", WARNING)
ERRWITHWARNFLAG(ERR_FUNCTION_RETURNING_ADDRESS_STACK_VARIABLE, 190, "Returning address of a local variable", WARNING, "return-local-addr")
ERRLIST(ERR_EXPRESSION_HAS_NO_EFFECT, 191, "Expression has no effect", WARNING)
ERRLIST(ERR_UNEXPECTED_END_OF_BLOCKDATA, 192, "Unexpected block end marker", ERROR) /* fixme */
ERRLIST(ERR_UNREACHABLE_CODE, 193, "Unreachable code", TRIVIALWARNING)
ERRLIST(ERR_ANSI_CANNOT_OMIT_SEMI, 194, "Ansi forbids omission of semicolon", ERROR)
ERRLIST(ERR_NO_REF_POINTER_REF, 195, "Pointer or reference to reference is not allowed", ERROR)
ERRLIST(ERR_ARRAY_OF_REFS_NOT_ALLOWED, 196, "Array of references is not allowed", ERROR)
ERRLIST(ERR_REF_MUST_INITIALIZE, 197, "Reference variable '%s' must be initialized", ERROR)
ERRLIST(ERR_REF_INIT_REQUIRES_LVALUE, 198, "Reference initialization requires Lvalue", ERROR)
ERRLIST(ERR_REF_INIT_TYPE_CANNOT_BE_BOUND, 199, "Reference initialization of type '%s' cannot be bound to type '%s'", ERROR)
ERRLIST(ERR_REF_CLASS_NO_CONSTRUCTORS, 200, "Reference member '%s' in a class without constructors", ERROR)
ERRLIST(ERR_REF_NOT_INITIALIZED_IN_CONSTRUCTOR, 201, "Reference member '%s' not initialized in class constructor", ERROR)
ERRLIST(ERR_REF_NO_QUALIFIERS, 202, "Qualified reference variable not allowed", WARNING)
ERRLIST(ERR_REF_RETURN_LOCAL, 203, "Attempt to return reference to local variable", ERROR)
ERRLIST(ERR_CANNOT_CONVERT_TYPE, 204, "Cannot convert '%s' to '%s'", ERROR)
ERRLIST(ERR_CANNOT_CAST_TYPE, 205, "Cannot cast '%s' to '%s'", ERROR)
ERRLIST(ERR_INVALID_USE_OF_NAMESPACE, 206, "Invalid use of namespace '%s'", ERROR)
ERRLIST(ERR_NO_NAMESPACE_IN_FUNCTION, 207, "Cannot declare namespace within function", ERROR)
ERRLIST(ERR_NOT_A_NAMESPACE, 208, "'%s' is not a namespace", ERROR)
ERRLIST(ERR_NAMESPACE_NOT_INLINE, 209, "Namespace '%s' not previously declared as inline", ERROR)
ERRLIST(ERR_EXPECTED_NAMESPACE_NAME, 210, "Expected namespace name", ERROR)
ERRLIST(ERR_CYCLIC_USING_DIRECTIVE, 211, "Cyclic using directive", TRIVIALWARNING)
ERRLIST(ERR_PURESTRING, 212, "%s", ERROR)
ERRSCHEMA(ERR_ASM, ERR_PURESTRING, "%s",
          ERROR)  // This is the same as ERR_PURESTRING, different ERR_SCHEMA just for this because of that
ERRLIST(ERR_CREATE_TEMPORARY, 213, "Creating temporary for variable of type '%s'", TRIVIALWARNING)
ERRLIST(ERR_TYPE_NAME_EXPECTED, 214, "Type name expected", ERROR)
ERRLIST(ERR_AMBIGUITY_BETWEEN, 215, "Ambiguity between '%s' and '%s'", ERROR)
ERRLIST(ERR_UNKNOWN_LINKAGE, 216, "Unknown linkage specifier '%s'", WARNING)
ERRLIST(ERR_CHAR1632_CONSTANT_TOO_LONG, 217, "char16_t or char32_t constant too long", ERROR)
ERRLIST(ERR_EOF_RAW_STRING, 218, "Non-terminated raw string in file started at line %d", ERROR)
ERRLIST(ERR_RAW_STRING_INVALID_CHAR, 219, "Invalid character in raw string", ERROR)
ERRLIST(ERR_MAIN_CANNOT_BE_STATIC_FUNC, 220, "'main' may not be declared as static", ERROR)
ERRLIST(ERR_MAIN_CANNOT_BE_CONSTEXPR, 221, "'main' may not be declared as constexpr", ERROR)
ERRLIST(ERR_CONSTANT_EXPRESSION_EXPECTED, 222, "constexpr expression does not evaluate to a constant", ERROR)
ERRLIST(ERR_CONSTANT_FUNCTION_EXPECTED, 223, "constexpr function '%s' does not evaluate to constexpr", ERROR)
ERRLIST(ERR_CONSTEXPR_REQUIRES_INITIALIZER, 224, "constexpr declaration requires initializer or function body", ERROR)
ERRLIST(ERR_CONSTEXPR_SIMPLE_TYPE, 225, "Variable style constexpr declaration needs simple type", ERROR)
ERRLIST(ERR_FUNCTION_RETURNING_REF_SHOULD_RETURN_VALUE, 226, "Function returning reference must return a value", ERROR)
ERRLIST(ERR_QUALIFIED_NAME_NOT_ALLOWED_HERE, 227, "Qualified name not allowed here", ERROR)
ERRLIST(ERR_NAME_IS_NOT_A_MEMBER_OF_NAME, 228, "%s", ERROR)
ERRLIST(ERR_QUALIFIER_NOT_A_CLASS_OR_NAMESPACE, 229, "Qualifier '%s' is not a class or namespace", ERROR)
ERRLIST(ERR_LINKAGE_MISMATCH_IN_FUNC_OVERLOAD, 230, "Linkage mismatch in overload of function '%s'", ERROR)
ERRLIST(ERR_OVERLOAD_DIFFERS_ONLY_IN_RETURN_TYPE, 231, "Overload of '%s' differs only in return type", ERROR)
ERRLIST(ERR_NO_OVERLOAD_MATCH_FOUND, 232, "Could not find a match for '%s'", ERROR)
ERRLIST(ERR_CANNOT_REDECLARE_DEFAULT_ARGUMENT, 233, "Redeclaration of default argument for '%s' not allowed", ERROR)
ERRLIST(ERR_NO_LOCAL_VAR_OR_PARAMETER_DEFAULT_ARGUMENT, 234, "Default argument may not be a parameter or local variable", ERROR)
ERRLIST(ERR_NO_POINTER_TO_FUNCTION_DEFAULT_ARGUMENT, 235, "Default argument may not be a pointer or reference to function", ERROR)
ERRLIST(ERR_NO_DEFAULT_ARGUMENT_IN_TYPEDEF, 236, "Default argument not allowed in typedef", ERROR)
ERRLIST(ERR_NO_THIS_DEFAULT_ARGUMENT, 237, "Default argument may not use 'this'", ERROR)
ERRLIST(ERR_MISSING_DEFAULT_ARGUMENT, 238, "Default argument missing after parameter '%s'", ERROR)
ERRLIST(ERR_DELETE_ON_REDECLARATION, 239, "Deleting or defaulting existing function '%s'", ERROR)
ERRLIST(ERR_DELETED_FUNCTION_REFERENCED, 240, "Reference to deleted function '%s'", ERROR)
ERRLIST(ERR_MAIN_CANNOT_BE_DELETED, 241, "'main' may not be deleted", ERROR)
ERRLIST(ERR_ENUMERATION_OUT_OF_RANGE_OF_BASE_TYPE, 242, "Enumerated constant too large for base type", ERROR)
ERRLIST(ERR_ENUMERATED_TYPE_NEEDS_NAME, 243, "Enumerated type needs name", ERROR)
ERRLIST(ERR_CANNOT_OMIT_ENUMERATION_BASE, 244, "Enumerated base type must not be ommitted here", ERROR)
ERRLIST(ERR_REDEFINITION_OF_ENUMERATION_SCOPE_OR_BASE_TYPE, 245, "Redeclaration of enumeration scope or base type", ERROR)
ERRLIST(ERR_CANNOT_DEFINE_ENUMERATION_CONSTANT_HERE, 246, "Definition of enumeration constant not allowed here", ERROR)
ERRLIST(ERR_SCOPED_TYPE_MISMATCH, 247, "Attempt to use scoped enumeration as integer", WARNING)
ERRLIST(ERR_SIZEOF_BITFIELD, 248, "Cannot take the size of a bit field", ERROR)
ERRLIST(ERR_SIZEOF_UNFIXED_ENUMERATION, 249, "Cannot take the size of an unfixed enumeration", ERROR)
ERRLIST(ERR_AUTO_NEEDS_INITIALIZATION, 250, "'auto' variable '%s' needs initialization", ERROR)
ERRLIST(ERR_AUTO_NOT_ALLOWED, 251, "Type 'auto' not allowed in this context", ERROR)
ERRLIST(ERR_REF_INITIALIZATION_DISCARDS_QUALIFIERS, 252, "Reference initialization discards qualifiers", ERROR)
ERRLIST(ERR_REF_INITIALIZATION_CANNOT_USE_RVALUE_OF_TYPE, 253, "Initialization of lvalue reference cannot use rvalue of type '%s'",
        ERROR)
ERRLIST(ERR_GLOBAL_ANONYMOUS_UNION_NOT_STATIC, 254, "Global anonymous union not static", ERROR)
ERRLIST(ERR_UNION_CANNOT_HAVE_BASE_CLASSES, 255, "Union having base classes not allowed", ERROR)
ERRLIST(ERR_UNION_CANNOT_BE_BASE_CLASS, 256, "Union as a base class not allowed", ERROR)
ERRLIST(ERR_CANNOT_REDEFINE_ACCESS_FOR, 257, "Redefining access for '%s' not allowed", ERROR)
ERRLIST(ERR_CANNOT_ACCESS, 258, "'%s' is not accessible", ERROR)
ERRLIST(ERR_NONFUNCTION_CANNOT_BE_DECLARED_VIRTUAL, 259, "Declaring nonfunction '%s' virtual is not allowed", ERROR)
ERRLIST(ERR_FUNCTION_CAN_HAVE_ONE_FINAL_OR_OVERRIDE, 260, "Member function '%s' already has final or override specifier", ERROR)
ERRLIST(ERR_NAMESPACE_NO_STRUCT, 261, "Namespace within class not allowed", ERROR)
ERRLIST(ERR_NOT_UNAMBIGUOUS_BASE, 262, "'%s' is not an unambiguous base class of '%s'", ERROR)
ERRLIST(ERR_RETURN_TYPES_NOT_COVARIANT, 263, "Return type for virtual functions '%s' and '%s' not covariant", ERROR)
ERRLIST(ERR_OVERRIDING_FINAL_VIRTUAL_FUNC, 264, "Overriding final virtual function '%s' not allowed", ERROR)
ERRLIST(ERR_FUNCTION_DOES_NOT_OVERRIDE, 265, "Function '%s' does not override another virtual function", ERROR)
ERRLIST(ERR_AMBIGUOUS_VIRTUAL_FUNCTIONS, 266, "Ambiguity between virtual functions '%s' and '%s'", ERROR)
ERRLIST(ERR_DELETED_VIRTUAL_FUNC, 267, "Virtual function '%s' has been deleted while virtual function '%s' has not", ERROR)
ERRLIST(ERR_FINAL_BASE_CLASS, 268, "Inheriting from final base class '%s' not allowed", ERROR)
ERRLIST(ERR_LOCAL_CLASS_FUNCTION_NEEDS_BODY, 269, "Function '%s' in locally defined class needs inline body", ERROR)
ERRLIST(ERR_MEMBER_SAME_NAME_AS_CLASS, 270, "Class member has same name as class", ERROR)
ERRLIST(ERR_PURE_SPECIFIER_CONST_ZERO, 271, "Pure specifier needs constant value of zero", ERROR)
ERRLIST(ERR_SPECIFIER_VIRTUAL_FUNC, 272, "Pure, final, or override specifier needs virtual function", ERROR)
ERRLIST(ERR_FUNCTION_NOT_IN_STRUCT, 273, "Functions may not be a part of a structure or union", ERROR)
ERRLIST(ERR_AMBIGUOUS_MEMBER_DEFINITION, 274, "Ambiguous member definition for '%s'", ERROR)
ERRLIST(ERR_ACCESS_MEMBER_NO_OBJECT, 275, "Use of non-static member '%s' without object", ERROR)
ERRLIST(ERR_NON_CONST_FUNCTION_CALLED_FOR_CONST_OBJECT, 276, "Non-const function '%s' called for const object", ERROR)
ERRLIST(ERR_BASE_CLASS_INCLUDED_MORE_THAN_ONCE, 277, "Base class '%s' is included more than once", ERROR)
ERRLIST(ERR_ONLY_MEMBER_CONST_VOLATILE, 278, "Only non-static member functions may be 'const' or 'volatile'", ERROR)
ERRLIST(ERR_ILLEGAL_USE_OF_MEMBER_PTR, 279, "Illegal use of member pointer", ERROR)
ERRLIST(ERR_NORETURN, 280, "_Noreturn function is returning", ERROR)
ERRLIST(ERR_DUPLICATE_TYPE_IN_GENERIC, 281, "Duplicate type in generic expression", ERROR)
ERRLIST(ERR_GENERIC_TOO_MANY_DEFAULTS, 282, "Too many defaults in generic expression", ERROR)
ERRLIST(ERR_GENERIC_MISSING_TYPE, 283, "Invalid type in generic expression", ERROR)
ERRLIST(ERR_GENERIC_MISSING_EXPRESSION, 284, "Invalid expression in generic expression", ERROR)
ERRLIST(ERR_GENERIC_NOTHING_SELECTED, 285, "Could not find a match for generic expression", ERROR)
ERRLIST(ERR_THREAD_LOCAL_INVALID_STORAGE_CLASS, 286, "Invalid storage class for thread local variable", ERROR)
ERRLIST(ERR_THREAD_LOCAL_NOT_AUTO, 287, "Thread local variable cannot have auto or register storage class", ERROR)
ERRLIST(ERR_FUNC_NOT_THREAD_LOCAL, 288, "Functions cannot be thread local", ERROR)
ERRLIST(ERR_THREAD_LOCAL_MUST_ALWAYS_APPEAR, 289, "Mismatched thread_local storage class specifier", ERROR)
ERRLIST(ERR_ATOMIC_TYPE_SPECIFIER_NO_QUALS, 290, "Qualifiers not allowed with atomic type specifier", WARNING)
ERRLIST(ERR_ATOMIC_NO_FUNCTION_OR_ARRAY, 291, "Function or array not allowed as atomic type", ERROR)
ERRLIST(ERR_CANNOT_REDECLARE_OUTSIDE_CLASS, 292, "Redeclaration of '%s' outside its class not allowed", ERROR)
ERRLIST(ERR_TYPE_DEFINITION_NOT_ALLOWED_HERE, 293, "Definition of type '%s' not allowed here", ERROR)
ERRLIST(ERR_POINTER_ARRAY_NOT_FRIENDS, 294, "Pointers and arrays cannot be friends", ERROR)
ERRLIST(ERR_DECLARATOR_NOT_ALLOWED_HERE, 295, "Declarator not allowed here", ERROR)
ERRLIST(ERR_THIS_MEMBER_FUNC, 296, "'this' may only be used in a member function", ERROR)
ERRLIST(ERR_INVALID_AS_OPERATOR, 297, "operator '%s' not allowed", ERROR)
ERRLIST(ERR_OPERATOR_MUST_BE_FUNCTION, 298, "operator '%s' must be a function", ERROR)
ERRLIST(ERR_OPERATOR_NEEDS_NO_PARAMETERS, 299, "operator '%s' must have no parameters", ERROR)
ERRLIST(ERR_OPERATOR_NEEDS_ONE_PARAMETER, 300, "operator '%s' must have one parameter", ERROR)
ERRLIST(ERR_OPERATOR_NEEDS_ZERO_OR_ONE_PARAMETER, 301, "operator '%s' must have zero or one parameter", ERROR)
ERRLIST(ERR_OPERATOR_NEEDS_PARAMETER_OF_TYPE_INT, 302, "operator '%s' must have parameter of type int", ERROR)
ERRLIST(ERR_OPERATOR_NONSTATIC, 303, "operator '%s' must be nonstatic when used as a member function", ERROR)
ERRLIST(ERR_OPERATOR_NEEDS_A_CLASS_OR_ENUMERATION_PARAMETER, 304,
        "operator '%s' must have structured or enumeration parameter when used as a non-member", ERROR)
ERRLIST(ERR_OPERATOR_NEEDS_TWO_PARAMETERS, 305, "operator '%s' must have two parameters", ERROR)
ERRLIST(ERR_OPERATOR_NEEDS_ONE_OR_TWO_PARAMETER, 306, "operator '%s' must have one or two parameters", ERROR)
ERRLIST(ERR_OPERATOR_NEEDS_SECOND_PARAMETER_OF_TYPE_INT, 307, "operator '%s' must have second parameter of type int", ERROR)
ERRLIST(ERR_OPERATOR_MUST_BE_NONSTATIC, 308, "operator '%s' must be a nonstatic member function", ERROR)
ERRLIST(ERR_OPERATOR_RETURN_REFERENCE_OR_POINTER, 309, "operator '%s' must return a reference or pointer type", ERROR)
ERRLIST(ERR_CANNOT_CREATE_INSTANCE_ABSTRACT, 310, "Cannot create instance of abstract class '%s'", ERROR)
ERRLIST(ERR_ABSTRACT_BECAUSE, 311, "Class '%s' is abstract because of ''%s' = 0'", ERROR)
ERRLIST(ERR_OPERATOR_LITERAL_EMPTY_STRING, 312, "operator \"\" requires empty string", ERROR)
ERRLIST(ERR_OPERATOR_LITERAL_NEEDS_ID, 313, "operator \"\" requires identifier", ERROR)
ERRLIST(ERR_OPERATOR_LITERAL_NAMESPACE_SCOPE, 314, "'%s' requires namespace scope", ERROR)
ERRLIST(ERR_OPERATOR_LITERAL_INVALID_PARAMETER_LIST, 315, "Invalid parameters for '%s'", ERROR)
ERRLIST(ERR_COULD_NOT_FIND_A_MATCH_FOR_LITERAL_SUFFIX, 316, "Could not find a match for literal suffix '%s'", ERROR)
ERRLIST(ERR_LITERAL_SUFFIX_MISMATCH, 317, "Literal suffix mismatch", ERROR)
ERRLIST(ERR_STRUCT_NOT_DEFINED, 318, "Structured type '%s' not fully defined", ERROR)
ERRLIST(ERR_CANNOT_USE_DESTRUCTOR_HERE, 319, "Incorrect use of destructor syntax", ERROR)
ERRLIST(ERR_CONSTRUCTOR_OR_DESTRUCTOR_MUST_BE_FUNCTION, 320, "Constructor or destructor for '%s' must be a function", ERROR)
ERRLIST(ERR_DEFAULT_ONLY_SPECIAL_FUNCTION, 321, "Default may only be used on a special function", ERROR)
ERRLIST(ERR_CONSTRUCTOR_MUST_HAVE_BODY, 322, "Constructor for '%s' must have body", ERROR)
ERRLIST(ERR_CONSTRUCTOR_OR_DESTRUCTOR_NO_CONST_VOLATILE, 323, "Constructor or destructor cannot be declared const or volatile",
        ERROR)
ERRLIST(ERR_INITIALIZER_LIST_REQUIRES_CONSTRUCTOR, 324, "Initializer list requires constructor", ERROR)
ERRLIST(ERR_CONSTRUCTOR_OR_DESTRUCTOR_NO_TYPE, 325, "Constructor or destructor cannot have a return type", ERROR)
ERRLIST(ERR_CANNOT_TAKE_ADDRESS_OF_CONSTRUCTOR_OR_DESTRUCTOR, 326, "Cannot take address of constructor or destructor", ERROR)
ERRLIST(ERR_POINTER_TYPE_EXPECTED, 327, "Pointer type expected", ERROR)
ERRLIST(ERR_STRUCTURE_INITIALIZATION_NEEDS_CONSTRUCTOR, 328, "Objects of type '%s' cannot be initialized with { }", ERROR)
ERRLIST(ERR_MEMBER_NAME_REQUIRED, 329, "Member name required", ERROR)
ERRLIST(ERR_MEMBER_INITIALIZATION_REQUIRED, 330, "Member initializer required", ERROR)
ERRLIST(ERR_NOT_A_MEMBER_OR_BASE_CLASS, 331, "'%s' is not a member or base class of '%s'", ERROR)
ERRLIST(ERR_NEED_NONSTATIC_MEMBER, 332, "'%s' must be a nonstatic member", ERROR)
ERRLIST(ERR_NO_APPROPRIATE_CONSTRUCTOR, 333, "Cannot find an appropriate constructor for class '%s'", ERROR)
ERRLIST(ERR_NO_COPY_CONSTRUCTOR, 334, "Cannot find a matching copy constructor for class '%s'", ERROR)
ERRLIST(ERR_NO_DEFAULT_CONSTRUCTOR, 335, "Cannot find a default constructor for class '%s'", ERROR)
ERRLIST(ERR_MEMBER_NAME_EXPECTED_NOT_DEFINED, 336, "'%s' is not a member of '%s', because the type is not defined", ERROR)
ERRLIST(ERR_DESTRUCTOR_CANNOT_HAVE_PARAMETERS, 337, "Destructor for '%s' must have empty parameter list", ERROR)
ERRLIST(ERR_REF_MEMBER_MUST_INITIALIZE, 338, "Reference member '%s' is not initialized in class constructor", ERROR)
ERRLIST(ERR_CONSTANT_MEMBER_MUST_BE_INITIALIZED, 339, "Constant member '%s' is not initialized in class constructor", ERROR)
ERRLIST(ERR_IMPROPER_USE_OF_TYPEDEF, 340, "Improper use of typedef '%s'", ERROR)
ERRLIST(ERR_TYPE_OF_RETURN_IS_IMPLICIT_FOR_OPERATOR_FUNC, 341, "Return type is implicit for 'operator %s'", ERROR)
ERRLIST(ERR_INVALID_PSUEDO_DESTRUCTOR, 342, "Invalid Psuedo-Destructor", ERROR)
ERRLIST(ERR_DESTRUCTOR_MUST_MATCH_CLASS, 343, "Destructor name must match class name", ERROR)
ERRLIST(ERR_MUST_CALL_OR_TAKE_ADDRESS_OF_MEMBER_FUNCTION, 344, "Must call or take the address of a member function", ERROR)
ERRLIST(ERR_NEED_NUMERIC_EXPRESSION, 345, "Need numeric expression", ERROR)
ERRLIST(ERR_IDENTIFIER_CANNOT_HAVE_TYPE_QUALIFIER, 346, "Identifier '%s' cannot have a type qualifier", ERROR)
ERRLIST(ERR_LAMBDA_CANNOT_CAPTURE, 347, "Lambda function outside function scope cannot capture variables", ERROR)
ERRLIST(ERR_INVALID_LAMBDA_CAPTURE_MODE, 348, "Invalid lambda capture mode", ERROR)
ERRLIST(ERR_CAPTURE_ITEM_LISTED_MULTIPLE_TIMES, 349, "Capture item listed multiple times", ERROR)
ERRLIST(ERR_EXPLICIT_CAPTURE_BLOCKED, 350, "Explicit capture blocked", ERROR)
ERRLIST(ERR_IMPLICIT_CAPTURE_BLOCKED, 351, "Implicit capture blocked", ERROR)
ERRLIST(ERR_CANNOT_DEFAULT_PARAMETERS_WITH_LAMBDA, 352, "Cannot default parameters of lambda function", ERROR)
ERRLIST(ERR_CANNOT_CAPTURE_THIS, 353, "Cannot capture this", ERROR)
ERRLIST(ERR_MUST_CAPTURE_AUTO_VARIABLE, 354, "Must capture variables with 'auto' storage class or 'this'", ERROR)
ERRLIST(ERR_LAMBDA_FUNCTION_BODY_EXPECTED, 355, "Lambda function must have body", ERROR)
ERRLIST(ERR_MISMATCHED_FORRANGE_BEGIN_END_TYPES, 356, "For-range iterator begin() and end() have mismatched types", ERROR)
ERRLIST(ERR_MISSING_FORRANGE_BEGIN_END, 357, "For-range iterator begin() and/or end() are missing", ERROR)
ERRLIST(ERR_MISSING_OPERATOR_PLUSPLUS_FORRANGE_ITERATOR, 358, "Operator ++() missing on for-range iterator type", ERROR)
ERRLIST(ERR_MISSING_OPERATOR_STAR_FORRANGE_ITERATOR, 359, "Operator *() missing on for-range iterator type", ERROR)
ERRLIST(ERR_MISSING_OPERATOR_EQ_FORRANGE_ITERATOR, 360, "Operator ==() missing on for-range iterator type", ERROR)
ERRLIST(ERR_OPERATOR_STAR_FORRANGE_WRONG_TYPE, 361, "Indirection on for-range iterator returns wrong type", ERROR)
ERRLIST(ERR_FORRANGE_REQUIRES_STRUCT_OR_ARRAY, 362, "For-range expression requires structured or array type", ERROR)
ERRLIST(ERR_FORRANGE_ARRAY_UNSIZED, 363, "For-range array expression unsized", ERROR)
ERRLIST(ERR_FORRANGE_DECLARATOR_NO_INIT, 364, "For-range declarator cannot be initialized", ERROR)
ERRLIST(ERR_FOR_DECLARATOR_MUST_INITIALIZE, 365, "For declarator must be initialized", ERROR)
ERRLIST(ERR_INIT_NARROWING, 366, "Value narrowing within { } is not allowed", ERROR)
ERRLIST(ERR_NONSTRUCTURED_INIT_LIST, 367, "Nonstructured initializer list expected", ERROR)
ERRLIST(ERR_CANNOT_USE_INIT_LIST, 368, "Cannot use initializer list here", ERROR)
ERRLIST(ERR_CANNOT_USE_INIT_LIST_WITH_BUILTIN_BRACKET, 369, "Initializer list requires overloaded operator []", ERROR)
ERRLIST(ERR_CANNOT_USE_ARRAY_OF_STRUCTURES_AS_FUNC_ARG, 370, "Cannot use array of structures as function argument", ERROR)
ERRLIST(ERR_ANONYMOUS_UNION_NO_FUNCTION_OR_TYPE, 371, "Anonymous union cannot contain function or nested type", ERROR)
ERRLIST(ERR_ANONYMOUS_UNION_PUBLIC_MEMBERS, 372, "Anonymous union must contain only public members", ERROR)
ERRLIST(ERR_ANONYMOUS_UNION_NONSTATIC_MEMBERS, 373, "Anonymous union must contain only nonstatic data members", ERROR)
ERRWITHWARNFLAG(ERR_GOTO_BYPASSES_INITIALIZATION, 374, "Goto on line %s bypasses initialization", CPLUSPLUSERROR | WARNING, "jump-misses-init")
ERRLIST(ERR_EXPECTED_TRY_BLOCK, 375, "Try keyword requires compound statement", ERROR)
ERRLIST(ERR_EXPECTED_CATCH_CLAUSE, 376, "One or more catch handlers expected", ERROR)
ERRLIST(ERR_EXPECTED_CATCH_BLOCK, 377, "Catch handler requires compound statement", ERROR)
ERRLIST(ERR_NO_MORE_CATCH_CLAUSES_ALLOWED, 378, "catch (...) must be last catch handler", ERROR)
ERRLIST(ERR_CATCH_WITHOUT_TRY, 379, "Catch handler without try", ERROR)
ERRLIST(ERR_CONSTRUCTOR_HAS_RETURN, 380, "Constructor or Destructor returns a value", ERROR)
ERRLIST(ERR_GOTO_INTO_TRY_OR_CATCH_BLOCK, 381, "Cannot use goto to enter a try block or catch handler", ERROR)
ERRLIST(ERR_EXCEPTION_SPECIFIER_AT_LEAST_AS_RESTRICTIVE, 382,
        "Exception specifier of virtual function '%s' must be at least as restrictive as base class declarations", ERROR)
ERRLIST(ERR_EXCEPTION_SPECIFIER_MUST_MATCH, 383, "Exception specifier of function '%s' must match earlier declarations", ERROR)
ERRLIST(ERR_NEED_TYPEINFO_H, 384, "Use of typeid requires '#include <typeinfo>'", ERROR)
ERRLIST(ERR_MULTIPLE_RETURN_TYPES_SPECIFIED, 385, "Multiple return types specified", ERROR)
ERRLIST(ERR_NO_ATTRIBUTE_SPECIFIERS_HERE, 386, "Cannot place attribute specifiers here", ERROR)
ERRLIST(ERR_NO_ATTRIBUTE_ARGUMENT_CLAUSE_HERE, 387, "Cannot place attribute argument clause here", ERROR)
ERRLIST(ERR_EXPLICIT_CONSTRUCTOR_OR_CONVERSION_FUNCTION, 388, "Only constructors or conversion functions may be explicit", ERROR)
ERRLIST(ERR_IMPLICIT_USE_OF_EXPLICIT_CONVERSION, 389, "Implicit use of explicit constructor or conversion function", ERROR)
ERRLIST(ERR_NOT_DEFINED_WITH_VIRTUAL_FUNCS, 390, "Type '%s' is not a defined class with virtual functions", ERROR)
ERRLIST(ERR_TEMPLATE_NO_LOCAL_CLASS, 391, "Template may not be declared in class defined within function scope", ERROR)
ERRLIST(ERR_TEMPLATE_GLOBAL_OR_CLASS_SCOPE, 392, "Template must be declared at global scope or within a class", ERROR)
ERRLIST(ERR_CANNOT_USE_DEFAULT_WITH_PACKED_TEMPLATE_PARAMETER, 393, "Packed template parameter cannot have default", ERROR)
ERRLIST(ERR_CLASS_TEMPLATE_PARAMETER_MISSING_DEFAULT, 394, "'Class' template parameter missing default", ERROR)
ERRLIST(ERR_CLASS_TEMPLATE_DEFAULT_MUST_REFER_TO_TYPE, 395, "'Class' template parameter default must refer to type", ERROR)
ERRLIST(ERR_TEMPLATE_TEMPLATE_PARAMETER_MISSING_DEFAULT, 396, "Template 'template' parameter missing default", ERROR)
ERRLIST(ERR_NONTYPE_TEMPLATE_PARAMETER_INVALID_TYPE, 397, "'Non-type' template parameter has invalid type", ERROR)
ERRLIST(ERR_TYPE_NONTYPE_TEMPLATE_PARAMETER_DEFAULT_TYPE_MISMATCH, 398,
        "Type mismatch in default for 'non-type' template parameter", ERROR)
ERRLIST(ERR_NOT_A_TEMPLATE, 399, "'%s' was not previously declared as a template", ERROR)
ERRLIST(ERR_IS_ALREADY_DEFINED_AS_A_TEMPLATE, 400, "'%s' was previously declared as a template", ERROR)
ERRLIST(ERR_TEMPLATE_DEFINITION_MISMATCH, 401, "Template parameters do not agree with previous declaration", ERROR)
ERRLIST(ERR_MISSING_DEFAULT_VALUES_IN_TEMPLATE_DECLARATION, 402, "Missing default values in template declaration after '%s'", ERROR)
ERRLIST(ERR_MULTIPLE_DEFAULT_VALUES_IN_TEMPLATE_DECLARATION, 403,
        "Redefinition of default value for '%s' in template redeclaration", ERROR)
ERRLIST(ERR_TEMPLATE_TEMPLATE_PARAMETER_MUST_NAME_CLASS, 404, "'Template' template parameter must name a class", ERROR)
ERRLIST(ERR_TEMPLATES_MUST_BE_CLASSES_OR_FUNCTIONS, 405, "Templates must be classes, functions or data", ERROR)
ERRLIST(ERR_FUNCTION_TEMPLATE_NO_PARTIAL_SPECIALIZE, 406, "Cannot partially specialize a function template", ERROR)
ERRLIST(ERR_PARTIAL_SPECIALIZATION_MISSING_TEMPLATE_PARAMETERS, 407,
        "Partial specialization missing parameter from template header", ERROR)
ERRLIST(ERR_SPECIALIZATION_REQUIRES_PRIMARY, 408, "Specialization of '%s' cannot be declared before primary template", ERROR)
ERRLIST(ERR_TOO_FEW_ARGS_PASSED_TO_TEMPLATE, 409, "Too few arguments passed to template '%s'", ERROR)
ERRLIST(ERR_TOO_MANY_ARGS_PASSED_TO_TEMPLATE, 410, "Too many arguments passed to template '%s'", ERROR)
ERRLIST(ERR_INCORRECT_ARGS_PASSED_TO_TEMPLATE, 411, "Incorrect arguments passed to template '%s'", ERROR)
ERRLIST(ERR_TEMPLATE_CANT_INSTANTIATE_NOT_DEFINED, 412, "Cannot instantiate template '%s' because it is not defined", ERROR)
ERRLIST(ERR_NO_TEMPLATE_MATCHES, 413, "Cannot generate template specialization from '%s'", ERROR)
ERRLIST(ERR_NEED_TEMPLATE_ARGUMENTS, 414, "Cannot use template '%s' without specifying template arguments", ERROR)
ERRLIST(ERR_INVALID_TEMPLATE_PARAMETER, 415, "Invalid template parameter", ERROR)
ERRLIST(ERR_BODY_ALREADY_DEFINED_FOR_FUNCTION, 416, "Body has already been defined for function '%s'", ERROR)
ERRLIST(ERR_INVALID_EXPLICIT_SPECIALIZATION, 417, "Invalid explicit specialization of '%s'", ERROR)
ERRLIST(ERR_EXTERN_NOT_ALLOWED, 418, "Storage class 'extern' not allowed here", ERROR)
ERRLIST(ERR_TEMPLATE_ALREADY_INSTANTIATED, 419, "Template '%s' is already instantiated", WARNING)
ERRLIST(ERR_USE_DOT_OR_POINTSTO_TO_CALL, 420, "Use . or -> to call '%s'", ERROR)
ERRLIST(ERR_TEMPLATE_ARGUMENT_MUST_BE_CONSTANT, 421, "Template argument must be a constant expression", ERROR)
ERRLIST(ERR_PACK_SPECIFIER_NOT_ALLOWED_HERE, 422, "Pack ... specifier not allowed here", ERROR)
ERRLIST(ERR_PACK_SPECIFIER_REQUIRES_PACKED_TEMPLATE_PARAMETER, 423,
        "Pack ... specifier on variable requires packed template parameter", ERROR)
ERRLIST(ERR_PACK_SPECIFIER_REQUIRES_PACKED_FUNCTION_PARAMETER, 424,
        "Pack ... specifier on expression requires packed function parameter", ERROR)
ERRLIST(ERR_PACK_SPECIFIER_MUST_BE_USED_IN_PARAMETER, 425, "Pack ... specifier must be used on function parameter", ERROR)
ERRLIST(ERR_PACK_SPECIFIER_MUST_BE_USED_IN_ARGUMENT, 426, "Pack ... specifier must be used on function argument", ERROR)
ERRLIST(ERR_SIZEOFELLIPSE_NEEDS_TEMPLATE_PACK, 427, "sizeof... argument must be a template parameter pack", ERROR)
ERRLIST(ERR_PACK_SPECIFIERS_SIZE_MISMATCH, 428, "Multiple pack ... specifiers not same size", ERROR)
ERRLIST(ERR_NEED_PACKED_TEMPLATE_OF_TYPE_CLASS, 429, "Packed ... template parameter must be 'class' template parameter", ERROR)
ERRLIST(ERR_STRUCTURED_TYPE_EXPECTED_IN_PACKED_TEMPLATE_PARAMETER, 430,
        "Packed ... template parameter expected to hold structured types", ERROR)
ERRLIST(ERR_STRUCTURED_TYPE_EXPECTED_IN_TEMPLATE_PARAMETER, 431, "'Class' template parameter expected to hold structured types",
        ERROR)
ERRLIST(ERR_PACK_SPECIFIER_REQUIRED_HERE, 432, "Pack ... specifier required here", ERROR)
ERRLIST(ERR_CLASS_TEMPLATE_PARAMETER_EXPECTED, 433, "'Class' template parameter expected", ERROR)
ERRLIST(ERR_CLASS_TYPE_EXPECTED, 434, "Structured type expected", ERROR)
ERRLIST(ERR_PACKED_TEMPLATE_PARAMETER_NOT_ALLOWED_HERE, 435, "Packed template parameter not allowed here", ERROR)
ERRLIST(ERR_TEMPLATE_INSTANTIATION_STARTED_IN, 436, "In template instantiation started here", NOTE)
ERRLIST(ERR_IMPROPER_USE_OF_TYPE, 437, "Invalid use of type '%s'", ERROR)
ERRLIST(ERR_REQUIRES_TEMPLATE_HEADER, 438, "Requires template<> header", ERROR)
ERRLIST(ERR_MUTABLE_NON_CONST, 439, "Mutable member '%s' must be non-const", ERROR)
ERRLIST(ERR_DEPENDENT_TYPE_NOT_A_CLASS_OR_STRUCT, 440, "Dependent type '%s' not a class or structured type", ERROR)
ERRLIST(ERR_DEPENDENT_TYPE_DOES_NOT_EXIST_IN_TYPE, 441, "Dependent type '%s' is not defined in structured type '%s'", ERROR)
ERRLIST(ERR_CONSTRUCTOR_NOT_ALLOWED, 442, "Constructor '%s' is not allowed", ERROR)
ERRLIST(ERR_CONST_CLASS_NO_CONSTRUCTORS, 443, "Constant member '%s' in a class without constructors", ERROR)
ERRLIST(ERR_DELETE_OF_POINTER_TO_UNDEFINED_TYPE, 444, "Delete of pointer to undefined type '%s'", WARNING)
ERRLIST(ERR_ARITHMETIC_WITH_VOID_STAR, 445, "Arithmetic with pointer of type 'void *'", WARNING)
ERRLIST(ERR_OVERLOADED_FUNCTION_AMBIGUOUS, 446, "Overloaded function '%s' is ambiguous in this context", ERROR)
ERRLIST(ERR_NEED_INITIALIZER_LIST_H, 447, "Use of an initializer-list requires '#include <initializer_list>'", ERROR)
ERRLIST(ERR_NO_IMPLICIT_MEMBER_FUNCTION_ADDRESS, 448, "Use '&' to take the address of a member function", ERROR)
ERRLIST(ERR_CANNOT_INITIALIZE_STATIC_MEMBER_IN_CLASS, 449,
        "ISO C++ forbids in-class initialization of non-const static member '%s'", ERROR)
ERRLIST(ERR_NEED_PACKED_TEMPLATE_PARAMETER, 450, "Need packed template parameter", ERROR)
ERRLIST(ERR_MISMATCHED_INFERRED_LAMBDA_TYPES, 451, "Mismatched types '%s' and '%s' while infering lambda return type", ERROR)
ERRLIST(ERR_EXCEPTION_SPECIFIER_BLOCKS_EXCEPTIONS, 452, "Exception specifier blocks exceptions thrown from '%s'", WARNING)
ERRLIST(ERR_EXCEPTION_SPECIFIER_BLOCKS_THROW, 453, "Exception specifier blocks locally thrown exception of type '%s'", WARNING)
ERRLIST(ERR_UNDEFINED_EXTERNAL, 454, "undefined external '%s'", ERROR)
ERRLIST(ERR_DELEGATING_CONSTRUCTOR_ONLY_INITIALIZER, 455, "Delegating constructor call must be the only initializer", ERROR)
ERRLIST(ERR_PACKED_TEMPLATE_TYPE_MISMATCH, 456, "Mismatch on packed template types", ERROR)
ERRLIST(ERR_NEW_NO_ALLOCATE_REFERENCE, 457, "Cannot use new() to allocate a reference", ERROR)
ERRLIST(ERR_NEED_IMPORTED_NAMESPACE, 458, "This feature may only be used for imported namespaces", ERROR)
ERRLIST(ERR_MANAGED_OBJECT_NO_ADDRESS, 459, "Cannot use the address of a managed object", ERROR)
ERRLIST(ERR_PROPERTY_QUALIFIER_NOT_ALLOWED_ON_FUNCTIONS, 460, "__property qualifier not allowed on functions", ERROR)
ERRLIST(ERR_GETTER_ALREADY_EXISTS, 461, "Getter for property '%s' already defined", ERROR)
ERRLIST(ERR_SETTER_ALREADY_EXISTS, 462, "Setter for property '%s' already defined", ERROR)
ERRLIST(ERR_ONLY_SIMPLE_PROPERTIES_SUPPORTED, 463, "Only simple property declarations are supported", ERROR)
ERRLIST(ERR_NO_PROPERTY_IN_FUNCTION, 464, "Property cannot be declared inside function", ERROR)
ERRLIST(ERR_MUST_DECLARE_PROPERTY_GETTER, 465, "Must define getter for property '%s'", ERROR)
ERRLIST(ERR_CANNOT_MODIFY_PROPERTY_WITHOUT_SETTER, 466, "Cannot modify property '%s' because there is no setter", ERROR)
ERRLIST(ERR_CANNOT_TAKE_ADDRESS_OF_PROPERTY, 467, "Cannot take address of property '%s'", ERROR)
ERRLIST(ERR_ENTRYPOINT_FUNC_ONLY, 468, "__entrypoint cannot be used on non-function '%s'", ERROR)
ERRLIST(ERR_RETURN_TYPE_MISMATCH_FOR_AUTO_FUNCTION, 469, "Mismatched return types for function '%s' with auto return type", ERROR)
ERRLIST(ERR_AUTO_FUNCTION_RETURN_TYPE_NOT_DEFINED, 470, "Function '%s' with auto return type not fully defined yet", ERROR)
ERRLIST(ERR_DECLTYPE_AUTO_NO_REFERENCE, 471, "Cannot use referenced auto as decltype argument", ERROR)
ERRLIST(ERR_CONSTEXPR_FUNC_NO_GOTO, 472, "constexpr function uses goto statement", ERROR)
ERRLIST(ERR_WARNING, 473, "%s", WARNING)
ERRLIST(ERR_AUTO_NOT_ALLOWED_IN_USING_STATEMENT, 474, "'auto' not allowed in 'using =' declaration", ERROR)
ERRLIST(ERR_AUTO_NOT_ALLOWED_IN_PARAMETER, 475, "'auto' not allowed in parameter declaration", ERROR)
ERRLIST(ERR_AUTO_NOT_ALLOWED_IN_CONVERSION_FUNCTION, 476, "'auto' not allowed as a conversion function type", ERROR)
ERRLIST(ERR_ASSIGN_ONLY_MSIL_ARRAY_ELEMENTS, 477, "Only base elements of an MSIL array may be assigned", ERROR)
ERRLIST(ERR_SEH_HANDLER_WITHOUT_TRY, 478, "Use of __catch or __fault or __finally must be preceded by __try", ERROR)
ERRLIST(ERR_EXPECTED_SEH_HANDLER, 479, "Expected __catch or __fault or __finally", ERROR)
ERRLIST(ERR_FINALLY_FAULT_APPEAR_ONLY_ONCE, 480, "__fault or __finally can appear only once per __try block", ERROR)
ERRLIST(ERR_UNDEFINED_STATIC_FUNCTION, 481, "static or internally attributed function '%s' is undefined", TRIVIALWARNING)
ERRLIST(ERR_UNDEFINED_IDENTIFIER_EXPECTING_TYPE, 482, "Missing type specifier for identifier '%s'", WARNING)
ERRLIST(ERR_CANNOT_DEDUCE_AUTO_TYPE, 483, "Cannot deduce auto type '%s' from '%s'", ERROR)
ERRLIST(ERR_DECLSPEC_MEMBER_OF_DECLSPEC_CLASS_NOT_ALLOWED, 484,
        "%s: dll interface member may not be declared in dll interface class", ERROR)
ERRLIST(ERR_ATTEMPING_TO_REDEFINE_DLL_LINKAGE, 485, "%s: attempting to redefine dll interface linkage for class", WARNING)
ERRLIST(ERR_IGNORING__ATTRIBUTE, 486, "Ignoring __attribute__ specifier", WARNING)
ERRLIST(ERR_IGNORING__DECLSPEC, 487, "Ignoring __declspec specifier", WARNING)
ERRLIST(ERR_INVALID_ALIGNMENT, 488, "Invalid alignment value", ERROR)
ERRWITHWARNFLAG(ERR_INVALID_CHARACTER_STRING_CONVERSION, 489, "Conversion of character string to 'char *' deprecated", WARNING, "write-strings")
ERRLIST(ERR_FUNCTION_CALL_NEEDS_ARGUMENT_LIST, 490, "Function call needs argument list", WARNING)
ERRLIST(ERR_REF_RETURN_TEMPORARY, 491, "Return value would require a temporary variable", ERROR)
ERRLIST(ERR_CONFLICTS_WITH, 492, "Declaration of '%s' conflicts with previous declaration", ERROR)
ERRLIST(ERR_EXPECTED_END_OF_TEMPLATE_ARGUMENTS_NEAR_UNDEFINED_TYPE, 493,
        "Expected end of template arguments near undefined type '%s'", ERROR)
ERRLIST(ERR_EXPECTED_TYPE_NEED_TYPENAME, 494, "Expected type.   Did you mean to use 'typename'?", ERROR)
ERRLIST(ERR_MINIMUM_ALIGN_NOT_ACHIEVED, 495, "Minimum alignment for '%s' not achieved", WARNING)
ERRLIST(ERR_INVALID_VECTOR_SIZE, 496, "Invalid size used with attribute((vector()))", ERROR)
ERRLIST(ERR_INVALID_VECTOR_TYPE, 497, "Need an arithmetic type with attribute((vector()))", ERROR)
ERRLIST(ERR_INVALID_ATTRIBUTE_COPY, 498, "Type mismatch with attribute((copy()))", ERROR)
ERRLIST(ERR_INVALID_ATTRIBUTE_CLEANUP, 499, "Invalid cleanup function", ERROR)
ERRLIST(ERR_NULL_TERMINATED_STRING_REQUIRED, 500, "Null terminated string required", ERROR)
ERRLIST(ERR_ATTRIBUTE_NAMESPACE_NOT_ATTRIBUTE, 501, "Attribute namespace '%s' is not an attribute", ERROR)
ERRLIST(ERR_ATTRIBUTE_DOES_NOT_EXIST, 502, "Attribute '%s' does not exist", ERROR)
ERRLIST(ERR_ATTRIBUTE_DOES_NOT_EXIST_IN_NAMESPACE, 503, "Attribute '%s' does not exist in attribute namespace '%s'", ERROR)
ERRWITHWARNFLAG(ERR_STATIC_FUNCTION_USED_BUT_NOT_DEFINED, 504, "static function '%s' is declared but never defined", TRIVIALWARNING, "unused-function")
ERRLIST(ERR_REFERENCED_IN_INSTANTIATION, 505, "Referenced in instantiation of '%s'", NOTE)
ERRLIST(ERR_TYPEDEFS_CANNOT_BE_TEMPLATES, 506, "typedef templates not allowed", ERROR)
ERRLIST(ERR_DEPENDENT_TYPE_NEEDS_TYPENAME, 507, "Missing 'typename' in front of dependent type '%s'", ERROR)
ERRLIST(ERR_NO_TYPENAME_HERE, 508, "'typename' only used for dependent types", WARNING)
ERRLIST(ERR_FUNCTION_HAS_BODY, 509, "Function '%s' already has a body", ERROR)
ERRLIST(ERR_STATIC_ASSERT, 510, "static_assert generated: %s", ERROR)
ERRLIST(ERR_UNKNOWN_TYPE_TEMPLATE_ARG, 511, "Unknown type in template argument", ERROR)
ERRLIST(ERR_CONSTEXPR_MEMBER_MUST_BE_STATIC, 512, "Members qualified with constexpr must also be static", ERROR)
ERRLIST(ERR_CONSTEXPR_NO_PARAM, 513, "'constexpr' specifier cannot be used with a function parameter", ERROR)
ERRLIST(ERR_CONSTEXPR_NO_STRUCT, 514, "'constexpr' specifier cannot be used with a structure", ERROR)
ERRLIST(ERR_CONSTEXPR_MUST_INITIALIZE, 515, "constexpr constructor does not initialize '%s'", ERROR) 
#undef ERRLIST
#undef ERRSCHEMA
#undef ERRWITHHELP
#undef ERRWITHWARNFLAG
#undef ERRWITHWARNFLAGHELP