//===--- DiagnosticsIRGen.def - Diagnostics Text ----------------*- C++ -*-===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
//
//  This file defines diagnostics emitted during IR generation.
//  Each diagnostic is described using one of three kinds (error, warning, or
//  note) along with a unique identifier, category, options, and text, and is
//  followed by a signature describing the diagnostic argument kinds.
//
//===----------------------------------------------------------------------===//

#define DEFINE_DIAGNOSTIC_MACROS
#include "DefineDiagnosticMacros.h"

ERROR(no_llvm_target,none,
      "error loading LLVM target for triple '%0': %1", (StringRef, StringRef))
ERROR(error_codegen_init_fail,none,
      "cannot initialize code generation passes for target", ())

ERROR(irgen_unimplemented,none,
      "unimplemented IR generation feature %0", (StringRef))
ERROR(irgen_failure,none, "IR generation failure: %0", (StringRef))

ERROR(type_to_verify_not_found,none, "unable to find type '%0' to verify",
      (StringRef))
ERROR(type_to_verify_ambiguous,none, "type to verify '%0' is ambiguous",
      (StringRef))
ERROR(type_to_verify_dependent,none,
      "type to verify '%0' has unbound generic parameters",
      (StringRef))
ERROR(too_few_output_filenames,none,
      "too few output file names specified", ())
ERROR(no_input_files_for_mt,none,
      "no swift input files for multi-threaded compilation", ())

ERROR(alignment_dynamic_type_layout_unsupported,none,
      "@_alignment is not supported on types with dynamic layout", ())
ERROR(alignment_less_than_natural,none,
      "@_alignment cannot decrease alignment below natural alignment of %0",
      (unsigned))
ERROR(alignment_more_than_maximum,none,
      "@_alignment cannot increase alignment above maximum alignment of %0",
      (unsigned))
      
ERROR(temporary_allocation_size_negative,none,
      "allocation capacity must be greater than or equal to zero", ())
ERROR(temporary_allocation_size_overflow,none,
      "allocation byte count too large", ())
ERROR(temporary_allocation_alignment_not_positive,none,
      "alignment value must be greater than zero", ())
ERROR(temporary_allocation_alignment_not_power_of_2,none,
      "alignment value must be a power of two", ())

ERROR(explosion_size_oveflow,none,
      "explosion size too large", ())

NOTE(layout_strings_blocked,none,
     "Layout string value witnesses have been disabled for module '%0' "
     "through block list entry", (StringRef))

ERROR(attr_objc_implementation_resilient_property_not_supported, none,
      "'@implementation' does not support stored properties whose size can "
      "change due to library evolution; store this value in an object or 'any' "
      "type",
      ())
ERROR(attr_objc_implementation_resilient_property_deployment_target, none,
      "'@implementation' on %0 %1 does not support stored properties whose "
      "size can change due to library evolution; raise the minimum deployment "
      "target to %0 %2 or store this value in an object or 'any' type",
      (StringRef, const llvm::VersionTuple, const llvm::VersionTuple))

ERROR(unable_to_load_pass_plugin,none,
      "unable to load plugin '%0': '%1'", (StringRef, StringRef))

#define UNDEFINE_DIAGNOSTIC_MACROS
#include "DefineDiagnosticMacros.h"
