#ifdef COMMENTSTART
__COMMENTSTART = DIAG_START_COMMENT,
#undef COMMENTSTART
#endif

DIAG(note_add_deprecation_attr, CLASS_NOTE, diag::MAP_FATAL, "add a deprecation attribute to the declaration to silence this warning", 0, true, false, false, false, 16)
DIAG(note_doc_block_command_previous, CLASS_NOTE, diag::MAP_FATAL, "previous command '%select{\\|@}0%1' here", 0, true, false, false, false, 16)
DIAG(note_doc_block_command_previous_alias, CLASS_NOTE, diag::MAP_FATAL, "previous command '%select{\\|@}0%1' (an alias of '\\%2') here", 0, true, false, false, false, 16)
DIAG(note_doc_html_end_tag, CLASS_NOTE, diag::MAP_FATAL, "end tag", 0, true, false, false, false, 16)
DIAG(note_doc_html_tag_started_here, CLASS_NOTE, diag::MAP_FATAL, "HTML tag started here", 0, true, false, false, false, 16)
DIAG(note_doc_param_name_suggestion, CLASS_NOTE, diag::MAP_FATAL, "did you mean '%0'?", 0, true, false, false, false, 16)
DIAG(note_doc_param_previous, CLASS_NOTE, diag::MAP_FATAL, "previous documentation", 0, true, false, false, false, 16)
DIAG(note_doc_tparam_name_suggestion, CLASS_NOTE, diag::MAP_FATAL, "did you mean '%0'?", 0, true, false, false, false, 16)
DIAG(note_doc_tparam_previous, CLASS_NOTE, diag::MAP_FATAL, "previous documentation", 0, true, false, false, false, 16)
DIAG(warn_correct_comment_command_name, CLASS_WARNING, diag::MAP_IGNORE, "unknown command tag name '%0'; did you mean '%1'?", 115, true, false, false, false, 16)
DIAG(warn_doc_api_container_decl_mismatch, CLASS_WARNING, diag::MAP_IGNORE, "'%select{\\|@}0%select{class|interface|protocol|struct|union}1' command should not be used in a comment attached to a non-%select{class|interface|protocol|struct|union}2 declaration", 115, true, false, false, false, 16)
DIAG(warn_doc_block_command_duplicate, CLASS_WARNING, diag::MAP_IGNORE, "duplicated command '%select{\\|@}0%1'", 115, true, false, false, false, 16)
DIAG(warn_doc_block_command_empty_paragraph, CLASS_WARNING, diag::MAP_IGNORE, "empty paragraph passed to '%select{\\|@}0%1' command", 115, true, false, false, false, 16)
DIAG(warn_doc_container_decl_mismatch, CLASS_WARNING, diag::MAP_IGNORE, "'%select{\\|@}0%select{classdesign|coclass|dependency|helper|helperclass|helps|instancesize|ownership|performance|security|superclass}1' command should not be used in a comment attached to a non-container declaration", 115, true, false, false, false, 16)
DIAG(warn_doc_deprecated_not_sync, CLASS_WARNING, diag::MAP_IGNORE, "declaration is marked with '\\deprecated' command but does not have a deprecation attribute", 116, true, false, false, false, 16)
DIAG(warn_doc_function_method_decl_mismatch, CLASS_WARNING, diag::MAP_IGNORE, "'%select{\\|@}0%select{function|functiongroup|method|methodgroup|callback}1' command should be used in a comment attached to %select{a function|a function|an Objective-C method|an Objective-C method|a pointer to function}2 declaration", 115, true, false, false, false, 16)
DIAG(warn_doc_html_end_forbidden, CLASS_WARNING, diag::MAP_IGNORE, "HTML end tag '%0' is forbidden", 117, true, false, false, false, 16)
DIAG(warn_doc_html_end_unbalanced, CLASS_WARNING, diag::MAP_IGNORE, "HTML end tag does not match any start tag", 117, true, false, false, false, 16)
DIAG(warn_doc_html_start_end_mismatch, CLASS_WARNING, diag::MAP_IGNORE, "HTML start tag '%0' closed by '%1'", 117, true, false, false, false, 16)
DIAG(warn_doc_html_start_tag_expected_ident_or_greater, CLASS_WARNING, diag::MAP_IGNORE, "HTML start tag prematurely ended, expected attribute name or '>'", 115, true, false, false, false, 16)
DIAG(warn_doc_html_start_tag_expected_quoted_string, CLASS_WARNING, diag::MAP_IGNORE, "expected quoted string after equals sign", 115, true, false, false, false, 16)
DIAG(warn_doc_param_duplicate, CLASS_WARNING, diag::MAP_IGNORE, "parameter '%0' is already documented", 115, true, false, false, false, 16)
DIAG(warn_doc_param_invalid_direction, CLASS_WARNING, diag::MAP_IGNORE, "unrecognized parameter passing direction, valid directions are '[in]', '[out]' and '[in,out]'", 115, true, false, false, false, 16)
DIAG(warn_doc_param_not_attached_to_a_function_decl, CLASS_WARNING, diag::MAP_IGNORE, "'%select{\\|@}0param' command used in a comment that is not attached to a function declaration", 115, true, false, false, false, 16)
DIAG(warn_doc_param_not_found, CLASS_WARNING, diag::MAP_IGNORE, "parameter '%0' not found in the function declaration", 115, true, false, false, false, 16)
DIAG(warn_doc_param_spaces_in_direction, CLASS_WARNING, diag::MAP_IGNORE, "whitespace is not allowed in parameter passing direction", 118, true, false, false, false, 16)
DIAG(warn_doc_returns_attached_to_a_void_function, CLASS_WARNING, diag::MAP_IGNORE, "'%select{\\|@}0%1' command used in a comment that is attached to a %select{function returning void|constructor|destructor|method returning void}2", 115, true, false, false, false, 16)
DIAG(warn_doc_returns_not_attached_to_a_function_decl, CLASS_WARNING, diag::MAP_IGNORE, "'%select{\\|@}0%1' command used in a comment that is not attached to a function or method declaration", 115, true, false, false, false, 16)
DIAG(warn_doc_tparam_duplicate, CLASS_WARNING, diag::MAP_IGNORE, "template parameter '%0' is already documented", 115, true, false, false, false, 16)
DIAG(warn_doc_tparam_not_attached_to_a_template_decl, CLASS_WARNING, diag::MAP_IGNORE, "'%select{\\|@}0tparam' command used in a comment that is not attached to a template declaration", 115, true, false, false, false, 16)
DIAG(warn_doc_tparam_not_found, CLASS_WARNING, diag::MAP_IGNORE, "template parameter '%0' not found in the template declaration", 115, true, false, false, false, 16)
DIAG(warn_unknown_comment_command_name, CLASS_WARNING, diag::MAP_IGNORE, "unknown command tag name", 119, true, false, false, false, 16)
DIAG(warn_verbatim_block_end_without_start, CLASS_WARNING, diag::MAP_IGNORE, "'%select{\\|@}0%1' command does not terminate a verbatim text block", 115, true, false, false, false, 16)
