//==--- DiagnosticFrontendKinds.td - frontend diagnostics -----------------===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

let Component = "Frontend" in {

def err_fe_error_opening : Error<"error opening '%0': %1">;
def err_fe_error_reading : Error<"error reading '%0'">;
def err_fe_error_reading_stdin : Error<"error reading stdin">;
def err_fe_error_backend : Error<"error in backend: %0">, DefaultFatal;
def err_fe_invalid_ast_file : Error<"invalid AST file: '%0'">, DefaultFatal;
def err_fe_invalid_ast_action : Error<"invalid action for AST input">,
                                      DefaultFatal;
// Error generated by the backend.
def err_fe_inline_asm : Error<"%0">, CatInlineAsm;
def note_fe_inline_asm_here : Note<"instantiated into assembly here">;



def err_fe_invalid_code_complete_file : Error<
    "cannot locate code-completion file %0">, DefaultFatal;
def err_fe_stdout_binary : Error<"unable to change standard output to binary">,
  DefaultFatal;
def err_fe_stderr_binary : Error<"unable to change standard error to binary">,
  DefaultFatal;
def err_fe_dependency_file_requires_MT : Error<
    "-dependency-file requires at least one -MT or -MQ option">;
def err_fe_incompatible_options : Error<
    "'%0' cannot be used with '%1'">, DefaultFatal;
def err_fe_no_fixit_and_codegen : Error<
    "FIX-ITs cannot be applied when generating code">;
def err_fe_unable_to_find_fixit_file : Error<
    "FIX-IT could not find file '%0'">;
def err_fe_invalid_plugin_name : Error<
    "unable to find plugin '%0'">;
def err_fe_expected_compiler_job : Error<
    "unable to handle compilation, expected exactly one compiler job in '%0'">;
def err_fe_expected_clang_command : Error<
    "expected a clang compiler command">;
def err_fe_remap_missing_to_file : Error<
    "could not remap file '%0' to the contents of file '%1'">, DefaultFatal;
def err_fe_remap_missing_from_file : Error<
    "could not remap from missing file '%0'">, DefaultFatal;
def err_fe_unable_to_load_pch : Error<
    "unable to load PCH file">;
def err_fe_unable_to_load_plugin : Error<
    "unable to load plugin '%0': '%1'">;
def err_fe_unable_to_create_target : Error<
    "unable to create target: '%0'">;
def err_fe_unable_to_interface_with_target : Error<
    "unable to interface with target machine">;
def err_fe_unable_to_read_pch_file : Error<
    "unable to read PCH file: '%0'">;
def err_fe_not_a_pch_file : Error<
    "input is not a PCH file: '%0'">;
def err_fe_pch_malformed : Error<
    "malformed or corrupted PCH file: '%0'">, DefaultFatal;
def err_fe_pch_malformed_block : Error<
    "malformed block record in PCH file: '%0'">, DefaultFatal;
def err_fe_pch_error_at_end_block : Error<
    "error at end of module block in PCH file: '%0'">, DefaultFatal;
def err_fe_pch_file_modified : Error<
    "file '%0' has been modified since the precompiled header was built">,
    DefaultFatal;
def err_fe_unable_to_open_output : Error<
    "unable to open output file '%0': '%1'">;
def err_fe_unable_to_rename_temp : Error<
    "unable to rename temporary '%0' to output file '%1': '%2'">;
def err_fe_unable_to_open_logfile : Error<
    "unable to open logfile file '%0': '%1'">;
def err_fe_pth_file_has_no_source_header : Error<
    "PTH file '%0' does not designate an original source header file for -include-pth">;
def warn_fe_macro_contains_embedded_newline : Warning<
    "macro '%0' contains embedded newline, text after the newline is ignored.">;
def warn_fe_cc_print_header_failure : Warning<
    "unable to open CC_PRINT_HEADERS file: %0 (using stderr)">;
def warn_fe_cc_log_diagnostics_failure : Warning<
    "unable to open CC_LOG_DIAGNOSTICS file: %0 (using stderr)">;

def err_verify_missing_start : Error<
    "cannot find start ('{{') of expected %0">;
def err_verify_missing_end : Error<
    "cannot find end ('}}') of expected %0">;
def err_verify_invalid_content : Error<
    "invalid expected %0: %1">;
def err_verify_inconsistent_diags : Error<
    "'%0' diagnostics %select{expected|seen}1 but not %select{seen|expected}1: "
    "%2">;

def note_fixit_applied : Note<"FIX-IT applied suggested code changes">;
def note_fixit_in_macro : Note<
    "FIX-IT unable to apply suggested code changes in a macro">;
def note_fixit_failed : Note<
    "FIX-IT unable to apply suggested code changes">;
def note_fixit_unfixed_error : Note<"FIX-IT detected an error it cannot fix">;
def note_fixit_main_file_unchanged : Note<
    "main file unchanged">;
def warn_fixit_no_changes : Note<
    "FIX-IT detected errors it could not fix; no output will be generated">;

def err_fe_invoking : Error<"error invoking%0: %1">, DefaultFatal;

// PCH reader
def err_relocatable_without_isysroot : Error<
    "must specify system root with -isysroot when building a relocatable "
    "PCH file">;
def warn_pch_target_triple : Error<
    "PCH file was compiled for the target '%0' but the current translation "
    "unit is being compiled for target '%1'">;
def err_pch_langopt_mismatch : Error<"%0 was %select{disabled|enabled}1 in "
    "PCH file but is currently %select{disabled|enabled}2">;
def err_pch_langopt_value_mismatch : Error<
  "%0 differs in PCH file vs. current file">;
  
def warn_pch_version_too_old : Error<
    "PCH file uses an older PCH format that is no longer supported">;
def warn_pch_version_too_new : Error<
    "PCH file uses a newer PCH format that cannot be read">;
def warn_pch_different_branch : Error<
    "PCH file built from a different branch (%0) than the compiler (%1)">;
def warn_cmdline_conflicting_macro_def : Error<
    "definition of the macro '%0' conflicts with the definition used to "
    "build the precompiled header">;
def note_pch_macro_defined_as : Note<
    "definition of macro '%0' in the precompiled header">;
def warn_cmdline_missing_macro_defs : Warning<
    "macro definitions used to build the precompiled header are missing">;
def note_using_macro_def_from_pch : Note<
    "using this macro definition from precompiled header">;
def warn_macro_name_used_in_pch : Error<
    "definition of macro %0 conflicts with an identifier used in the "
    "precompiled header">;
def warn_pch_compiler_options_mismatch : Error<
    "compiler options used when building the precompiled header differ from "
    "the options used when using the precompiled header">;

def err_not_a_pch_file : Error<
    "'%0' does not appear to be a precompiled header file">, DefaultFatal;
def warn_unknown_warning_option : Warning<
    "unknown warning option '%0'">,
    InGroup<DiagGroup<"unknown-warning-option"> >;
def warn_unknown_negative_warning_option : Warning<
    "unknown warning option '%0'">,
    InGroup<DiagGroup<"unknown-warning-option"> >, DefaultIgnore;
def warn_unknown_warning_specifier : Warning<
    "unknown %0 warning specifier: '%1'">,
    InGroup<DiagGroup<"unknown-warning-option"> >;

def warn_unknown_analyzer_checker : Warning<
    "no analyzer checkers are associated with '%0'">;
def warn_incompatible_analyzer_plugin_api : Warning<
    "checker plugin '%0' is not compatible with this version of the analyzer">,
    InGroup<DiagGroup<"analyzer-incompatible-plugin"> >;
def note_incompatible_analyzer_plugin_api : Note<
    "current API version is '%0', but plugin was compiled with version '%1'">;
}
