/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|* Code to implement the __has_attribute logic                                *|
|*                                                                            *|
|* Automatically generated file, do not edit!                                 *|
|*                                                                            *|
\*===----------------------------------------------------------------------===*/

const llvm::Triple &T = Target.getTriple();
switch (Syntax) {
case AttrSyntax::GNU:
  return llvm::StringSwitch<int>(Name)
    .Case("amdgpu_flat_work_group_size", 1)
    .Case("amdgpu_num_sgpr", 1)
    .Case("amdgpu_num_vgpr", 1)
    .Case("amdgpu_waves_per_eu", 1)
    .Case("interrupt", true && (T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::armeb || T.getArch() == llvm::Triple::thumbeb) ? 1 : 0)
    .Case("interrupt", true && (T.getArch() == llvm::Triple::avr) ? 1 : 0)
    .Case("signal", true && (T.getArch() == llvm::Triple::avr) ? 1 : 0)
    .Case("abi_tag", 1)
    .Case("acquire_capability", 1)
    .Case("acquire_shared_capability", 1)
    .Case("exclusive_lock_function", 1)
    .Case("shared_lock_function", 1)
    .Case("acquire_capability", 1)
    .Case("acquire_shared_capability", 1)
    .Case("exclusive_lock_function", 1)
    .Case("shared_lock_function", 1)
    .Case("acquire_capability", 1)
    .Case("acquire_shared_capability", 1)
    .Case("exclusive_lock_function", 1)
    .Case("shared_lock_function", 1)
    .Case("acquire_capability", 1)
    .Case("acquire_shared_capability", 1)
    .Case("exclusive_lock_function", 1)
    .Case("shared_lock_function", 1)
    .Case("acquired_after", 1)
    .Case("acquired_before", 1)
    .Case("address_space", 1)
    .Case("alias", 1)
    .Case("align_value", 1)
    .Case("aligned", 1)
    .Case("alloc_align", 1)
    .Case("alloc_size", 1)
    .Case("always_inline", 1)
    .Case("analyzer_noreturn", 1)
    .Case("annotate", 1)
    .Case("interrupt", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0)
    .Case("no_caller_saved_registers", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0)
    .Case("nocf_check", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0)
    .Case("objc_arc_weak_reference_unavailable", 1)
    .Case("argument_with_type_tag", 1)
    .Case("pointer_with_type_tag", 1)
    .Case("argument_with_type_tag", 1)
    .Case("pointer_with_type_tag", 1)
    .Case("artificial", 1)
    .Case("assert_capability", 1)
    .Case("assert_shared_capability", 1)
    .Case("assert_capability", 1)
    .Case("assert_shared_capability", 1)
    .Case("assert_exclusive_lock", 1)
    .Case("assert_shared_lock", 1)
    .Case("assume_aligned", 1)
    .Case("availability", 1)
    .Case("blocks", 1)
    .Case("bounded", 1)
    .Case("cdecl", 1)
    .Case("cf_audited_transfer", 1)
    .Case("cf_consumed", 1)
    .Case("cf_returns_not_retained", 1)
    .Case("cf_returns_retained", 1)
    .Case("cf_unknown_transfer", 1)
    .Case("constant", 1)
    .Case("cudart_builtin", 1)
    .Case("device", 1)
    .Case("device_builtin", 1)
    .Case("device_builtin_surface_type", 1)
    .Case("device_builtin_texture_type", 1)
    .Case("global", 1)
    .Case("host", 1)
    .Case("launch_bounds", 1)
    .Case("shared", 1)
    .Case("callable_when", 1)
    .Case("capability", 1)
    .Case("shared_capability", 1)
    .Case("capability", 1)
    .Case("shared_capability", 1)
    .Case("carries_dependency", 1)
    .Case("cleanup", 1)
    .Case("cold", 1)
    .Case("common", 1)
    .Case("const", 1)
    .Case("__const", 1)
    .Case("const", 1)
    .Case("__const", 1)
    .Case("constructor", 1)
    .Case("consumable", 1)
    .Case("consumable_auto_cast_state", 1)
    .Case("consumable_set_state_on_read", 1)
    .Case("convergent", 1)
    .Case("dllexport", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::aarch64) && (T.getOS() == llvm::Triple::Win32) ? 1 : 0)
    .Case("dllimport", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::aarch64) && (T.getOS() == llvm::Triple::Win32) ? 1 : 0)
    .Case("deprecated", 1)
    .Case("destructor", 1)
    .Case("diagnose_if", 1)
    .Case("disable_tail_calls", 1)
    .Case("enable_if", 1)
    .Case("enum_extensibility", 1)
    .Case("exclusive_trylock_function", 1)
    .Case("ext_vector_type", 1)
    .Case("external_source_symbol", 1)
    .Case("fastcall", 1)
    .Case("flag_enum", 1)
    .Case("flatten", 1)
    .Case("format", 1)
    .Case("format_arg", 1)
    .Case("gnu_inline", 1)
    .Case("guarded_by", 1)
    .Case("guarded_var", 1)
    .Case("hot", 1)
    .Case("ibaction", 1)
    .Case("iboutlet", 1)
    .Case("iboutletcollection", 1)
    .Case("ifunc", true && (T.getObjectFormat() == llvm::Triple::ELF) ? 1 : 0)
    .Case("init_priority", 1)
    .Case("intel_ocl_bicc", 1)
    .Case("internal_linkage", 1)
    .Case("lto_visibility_public", 1)
    .Case("lock_returned", 1)
    .Case("lockable", 1)
    .Case("locks_excluded", 1)
    .Case("ms_abi", 1)
    .Case("interrupt", true && (T.getArch() == llvm::Triple::msp430) ? 1 : 0)
    .Case("ms_struct", 1)
    .Case("may_alias", 1)
    .Case("micromips", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0)
    .Case("minsize", 1)
    .Case("mips16", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0)
    .Case("interrupt", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0)
    .Case("long_call", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) ? 1 : 0)
    .Case("far", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) ? 1 : 0)
    .Case("long_call", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) ? 1 : 0)
    .Case("far", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) ? 1 : 0)
    .Case("short_call", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) ? 1 : 0)
    .Case("near", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) ? 1 : 0)
    .Case("short_call", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) ? 1 : 0)
    .Case("near", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) ? 1 : 0)
    .Case("mode", 1)
    .Case("ns_consumed", 1)
    .Case("ns_consumes_self", 1)
    .Case("ns_returns_autoreleased", 1)
    .Case("ns_returns_not_retained", 1)
    .Case("ns_returns_retained", 1)
    .Case("naked", 1)
    .Case("neon_polyvector_type", 1)
    .Case("neon_vector_type", 1)
    .Case("nocommon", 1)
    .Case("nodebug", 1)
    .Case("noduplicate", 1)
    .Case("noescape", 1)
    .Case("noinline", 1)
    .Case("no_instrument_function", 1)
    .Case("nomicromips", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0)
    .Case("nomips16", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0)
    .Case("noreturn", 1)
    .Case("no_sanitize", 1)
    .Case("no_address_safety_analysis", 1)
    .Case("no_sanitize_address", 1)
    .Case("no_sanitize_thread", 1)
    .Case("no_sanitize_memory", 1)
    .Case("no_address_safety_analysis", 1)
    .Case("no_sanitize_address", 1)
    .Case("no_sanitize_thread", 1)
    .Case("no_sanitize_memory", 1)
    .Case("no_address_safety_analysis", 1)
    .Case("no_sanitize_address", 1)
    .Case("no_sanitize_thread", 1)
    .Case("no_sanitize_memory", 1)
    .Case("no_address_safety_analysis", 1)
    .Case("no_sanitize_address", 1)
    .Case("no_sanitize_thread", 1)
    .Case("no_sanitize_memory", 1)
    .Case("no_split_stack", 1)
    .Case("no_thread_safety_analysis", 1)
    .Case("nothrow", 1)
    .Case("nonnull", 1)
    .Case("not_tail_called", 1)
    .Case("nv_weak", 1)
    .Case("objc_boxable", 1)
    .Case("objc_bridge", 1)
    .Case("objc_bridge_mutable", 1)
    .Case("objc_bridge_related", 1)
    .Case("objc_designated_initializer", 1)
    .Case("objc_exception", 1)
    .Case("objc_protocol_requires_explicit_implementation", 1)
    .Case("objc_gc", 1)
    .Case("objc_independent_class", 1)
    .Case("objc_method_family", 1)
    .Case("NSObject", 1)
    .Case("objc_ownership", 1)
    .Case("objc_precise_lifetime", 1)
    .Case("objc_requires_property_definitions", 1)
    .Case("objc_requires_super", 1)
    .Case("objc_returns_inner_pointer", 1)
    .Case("objc_root_class", 1)
    .Case("objc_runtime_name", 1)
    .Case("objc_runtime_visible", 1)
    .Case("objc_subclassing_restricted", 1)
    .Case("intel_reqd_sub_group_size", 1)
    .Case("nosvm", 1)
    .Case("opencl_unroll_hint", 1)
    .Case("optnone", 1)
    .Case("overloadable", 1)
    .Case("ownership_holds", 1)
    .Case("ownership_returns", 1)
    .Case("ownership_takes", 1)
    .Case("ownership_holds", 1)
    .Case("ownership_returns", 1)
    .Case("ownership_takes", 1)
    .Case("ownership_holds", 1)
    .Case("ownership_returns", 1)
    .Case("ownership_takes", 1)
    .Case("packed", 1)
    .Case("param_typestate", 1)
    .Case("pascal", 1)
    .Case("pass_object_size", 1)
    .Case("pcs", 1)
    .Case("preserve_all", 1)
    .Case("preserve_most", 1)
    .Case("pt_guarded_by", 1)
    .Case("pt_guarded_var", 1)
    .Case("pure", 1)
    .Case("regcall", 1)
    .Case("regparm", 1)
    .Case("release_capability", 1)
    .Case("release_shared_capability", 1)
    .Case("release_generic_capability", 1)
    .Case("unlock_function", 1)
    .Case("release_capability", 1)
    .Case("release_shared_capability", 1)
    .Case("release_generic_capability", 1)
    .Case("unlock_function", 1)
    .Case("release_capability", 1)
    .Case("release_shared_capability", 1)
    .Case("release_generic_capability", 1)
    .Case("unlock_function", 1)
    .Case("release_capability", 1)
    .Case("release_shared_capability", 1)
    .Case("release_generic_capability", 1)
    .Case("unlock_function", 1)
    .Case("kernel", 1)
    .Case("reqd_work_group_size", 1)
    .Case("require_constant_initialization", 1)
    .Case("requires_capability", 1)
    .Case("exclusive_locks_required", 1)
    .Case("requires_shared_capability", 1)
    .Case("shared_locks_required", 1)
    .Case("requires_capability", 1)
    .Case("exclusive_locks_required", 1)
    .Case("requires_shared_capability", 1)
    .Case("shared_locks_required", 1)
    .Case("requires_capability", 1)
    .Case("exclusive_locks_required", 1)
    .Case("requires_shared_capability", 1)
    .Case("shared_locks_required", 1)
    .Case("requires_capability", 1)
    .Case("exclusive_locks_required", 1)
    .Case("requires_shared_capability", 1)
    .Case("shared_locks_required", 1)
    .Case("malloc", 1)
    .Case("return_typestate", 1)
    .Case("returns_nonnull", 1)
    .Case("returns_twice", 1)
    .Case("scoped_lockable", 1)
    .Case("section", 1)
    .Case("selectany", 1)
    .Case("sentinel", 1)
    .Case("set_typestate", 1)
    .Case("shared_trylock_function", 1)
    .Case("stdcall", 1)
    .Case("swiftcall", 1)
    .Case("swift_context", 1)
    .Case("swift_error_result", 1)
    .Case("swift_indirect_result", 1)
    .Case("sysv_abi", 1)
    .Case("tls_model", 1)
    .Case("target", 1)
    .Case("test_typestate", 1)
    .Case("thiscall", 1)
    .Case("transparent_union", 1)
    .Case("trivial_abi", 1)
    .Case("try_acquire_capability", 1)
    .Case("try_acquire_shared_capability", 1)
    .Case("try_acquire_capability", 1)
    .Case("try_acquire_shared_capability", 1)
    .Case("type_tag_for_datatype", 1)
    .Case("type_visibility", 1)
    .Case("unavailable", 1)
    .Case("unused", 1)
    .Case("used", 1)
    .Case("vecreturn", 1)
    .Case("vec_type_hint", 1)
    .Case("vectorcall", 1)
    .Case("vector_size", 1)
    .Case("visibility", 1)
    .Case("warn_unused", 1)
    .Case("warn_unused_result", 1)
    .Case("weak", 1)
    .Case("weak_import", 1)
    .Case("weakref", 1)
    .Case("work_group_size_hint", 1)
    .Case("force_align_arg_pointer", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0)
    .Case("xray_always_instrument", 1)
    .Case("xray_never_instrument", 1)
    .Case("xray_always_instrument", 1)
    .Case("xray_never_instrument", 1)
    .Case("xray_log_args", 1)
    .Default(0);
case AttrSyntax::Declspec:
  return llvm::StringSwitch<int>(Name)
    .Case("align", 1)
    .Case("__constant__", 1)
    .Case("__cudart_builtin__", 1)
    .Case("__device__", 1)
    .Case("__device_builtin__", 1)
    .Case("__device_builtin_surface_type__", 1)
    .Case("__device_builtin_texture_type__", 1)
    .Case("__global__", 1)
    .Case("__host__", 1)
    .Case("__launch_bounds__", 1)
    .Case("__shared__", 1)
    .Case("dllexport", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::aarch64) && (T.getOS() == llvm::Triple::Win32) ? 1 : 0)
    .Case("dllimport", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::aarch64) && (T.getOS() == llvm::Triple::Win32) ? 1 : 0)
    .Case("deprecated", 1)
    .Case("empty_bases", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::aarch64) && (Target.getCXXABI().getKind() == TargetCXXABI::Microsoft) ? 1 : 0)
    .Case("layout_version", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::aarch64) && (Target.getCXXABI().getKind() == TargetCXXABI::Microsoft) ? 1 : 0)
    .Case("novtable", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::aarch64) && (Target.getCXXABI().getKind() == TargetCXXABI::Microsoft) ? 1 : 0)
    .Case("naked", 1)
    .Case("noalias", 1)
    .Case("noinline", 1)
    .Case("noreturn", 1)
    .Case("nothrow", 1)
    .Case("restrict", 1)
    .Case("allocate", 1)
    .Case("selectany", 1)
    .Case("thread", 1)
    .Case("uuid", 1)
    .Case("property", 1)
    .Default(0);
case AttrSyntax::Microsoft:
  return llvm::StringSwitch<int>(Name)
    .Case("uuid", 1)
    .Default(0);
case AttrSyntax::Pragma:
  return llvm::StringSwitch<int>(Name)
    .Case("init_seg", 1)
    .Case("loop", 1)
    .Case("unroll", 1)
    .Case("nounroll", 1)
    .Case("loop", 1)
    .Case("unroll", 1)
    .Case("nounroll", 1)
    .Case("loop", 1)
    .Case("unroll", 1)
    .Case("nounroll", 1)
    .Case("declare simd", 1)
    .Case("declare target", 1)
    .Default(0);
case AttrSyntax::CXX: {
if (!Scope || Scope->getName() == "") {
  return llvm::StringSwitch<int>(Name)
    .Case("noreturn", LangOpts.CPlusPlus11 ? 200809 : 0)
    .Case("carries_dependency", LangOpts.CPlusPlus11 ? 200809 : 0)
    .Case("deprecated", LangOpts.CPlusPlus11 ? 201309 : 0)
    .Case("deprecated", LangOpts.CPlusPlus11 ? 201309 : 0)
    .Case("fallthrough", LangOpts.CPlusPlus11 ? 201603 : 0)
    .Case("fallthrough", LangOpts.CPlusPlus11 ? 201603 : 0)
    .Case("maybe_unused", LangOpts.CPlusPlus11 ? 201603 : 0)
    .Case("unused", LangOpts.CPlusPlus11 ? 201603 : 0)
    .Case("nodiscard", LangOpts.CPlusPlus11 ? 201603 : 0)
    .Case("warn_unused_result", LangOpts.CPlusPlus11 ? 201603 : 0)
    .Case("warn_unused_result", LangOpts.CPlusPlus11 ? 201603 : 0)
    .Default(0);
} else if (Scope->getName() == "clang") {
  return llvm::StringSwitch<int>(Name)
    .Case("amdgpu_flat_work_group_size", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("amdgpu_num_sgpr", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("amdgpu_num_vgpr", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("amdgpu_waves_per_eu", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("acquire_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("acquire_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("acquire_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("acquire_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("address_space", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("annotate", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_arc_weak_reference_unavailable", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("argument_with_type_tag", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("pointer_with_type_tag", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("argument_with_type_tag", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("pointer_with_type_tag", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("assert_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("assert_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("assert_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("assert_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("availability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("blocks", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("cf_audited_transfer", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("cf_consumed", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("cf_returns_not_retained", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("cf_returns_retained", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("cf_unknown_transfer", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("callable_when", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("consumable", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("consumable_auto_cast_state", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("consumable_set_state_on_read", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("convergent", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("disable_tail_calls", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("enum_extensibility", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("external_source_symbol", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("fallthrough", LangOpts.CPlusPlus11 ? 201603 : 0)
    .Case("flag_enum", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("guarded_var", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("ibaction", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("iboutlet", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("iboutletcollection", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("intel_ocl_bicc", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("internal_linkage", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("lto_visibility_public", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("minsize", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("ns_consumed", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("ns_consumes_self", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("ns_returns_autoreleased", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("ns_returns_not_retained", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("ns_returns_retained", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("neon_polyvector_type", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("neon_vector_type", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("noduplicate", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("noescape", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("no_sanitize", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("no_sanitize_memory", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("no_thread_safety_analysis", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("not_tail_called", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_boxable", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_bridge", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_bridge_mutable", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_bridge_related", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_designated_initializer", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_exception", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_protocol_requires_explicit_implementation", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_gc", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_independent_class", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_method_family", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("NSObject", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_ownership", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_precise_lifetime", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_requires_property_definitions", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_requires_super", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_returns_inner_pointer", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_root_class", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_runtime_name", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_runtime_visible", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("objc_subclassing_restricted", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("optnone", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("overloadable", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("ownership_holds", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("ownership_returns", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("ownership_takes", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("ownership_holds", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("ownership_returns", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("ownership_takes", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("ownership_holds", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("ownership_returns", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("ownership_takes", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("param_typestate", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("pascal", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("pass_object_size", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("preserve_all", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("preserve_most", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("pt_guarded_var", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("release_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("release_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("release_generic_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("unlock_function", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("release_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("release_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("release_generic_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("unlock_function", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("release_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("release_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("release_generic_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("unlock_function", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("release_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("release_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("release_generic_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("unlock_function", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("require_constant_initialization", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("requires_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("exclusive_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("requires_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("shared_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("requires_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("exclusive_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("requires_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("shared_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("requires_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("exclusive_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("requires_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("shared_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("requires_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("exclusive_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("requires_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("shared_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("return_typestate", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("scoped_lockable", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("set_typestate", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("swiftcall", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("swift_context", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("swift_error_result", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("swift_indirect_result", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("test_typestate", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("trivial_abi", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("try_acquire_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("try_acquire_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("try_acquire_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("try_acquire_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("type_tag_for_datatype", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("type_visibility", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("unavailable", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("vecreturn", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("vectorcall", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("warn_unused_result", LangOpts.CPlusPlus11 ? 201603 : 0)
    .Case("weak_import", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("xray_always_instrument", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("xray_never_instrument", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("xray_always_instrument", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("xray_never_instrument", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("xray_log_args", LangOpts.CPlusPlus11 ? 1 : 0)
    .Default(0);
} else if (Scope->getName() == "gnu") {
  return llvm::StringSwitch<int>(Name)
    .Case("interrupt", true && (T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::armeb || T.getArch() == llvm::Triple::thumbeb) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("interrupt", true && (T.getArch() == llvm::Triple::avr) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("signal", true && (T.getArch() == llvm::Triple::avr) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("abi_tag", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("alias", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("aligned", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("alloc_align", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("alloc_size", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("always_inline", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("interrupt", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("no_caller_saved_registers", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("nocf_check", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("artificial", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("assume_aligned", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("cdecl", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("cleanup", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("cold", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("common", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("const", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("__const", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("const", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("__const", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("constructor", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("dllexport", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::aarch64) && (T.getOS() == llvm::Triple::Win32) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("dllimport", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::aarch64) && (T.getOS() == llvm::Triple::Win32) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("deprecated", LangOpts.CPlusPlus11 ? 201309 : 0)
    .Case("destructor", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("fastcall", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("flatten", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("format", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("format_arg", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("gnu_inline", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("hot", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("ifunc", true && (T.getObjectFormat() == llvm::Triple::ELF) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("init_priority", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("ms_abi", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("interrupt", true && (T.getArch() == llvm::Triple::msp430) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("ms_struct", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("may_alias", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("micromips", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("mips16", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("interrupt", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("long_call", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("far", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("long_call", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("far", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("short_call", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("near", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("short_call", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("near", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("mode", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("naked", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("nocommon", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("nodebug", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("noinline", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("no_instrument_function", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("nomicromips", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("nomips16", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("noreturn", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("no_address_safety_analysis", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("no_sanitize_address", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("no_sanitize_thread", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("no_address_safety_analysis", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("no_sanitize_address", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("no_sanitize_thread", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("no_address_safety_analysis", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("no_sanitize_address", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("no_sanitize_thread", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("no_split_stack", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("nothrow", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("nonnull", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("packed", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("pcs", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("pure", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("regcall", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("regparm", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("malloc", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("returns_nonnull", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("returns_twice", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("section", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("selectany", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("sentinel", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("stdcall", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("sysv_abi", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("tls_model", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("target", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("thiscall", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("transparent_union", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("unused", LangOpts.CPlusPlus11 ? 201603 : 0)
    .Case("used", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("vector_size", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("visibility", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("warn_unused", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("warn_unused_result", LangOpts.CPlusPlus11 ? 201603 : 0)
    .Case("weak", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("weakref", LangOpts.CPlusPlus11 ? 1 : 0)
    .Case("force_align_arg_pointer", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) && LangOpts.CPlusPlus11 ? 1 : 0)
    .Default(0);
} else if (Scope->getName() == "gsl") {
  return llvm::StringSwitch<int>(Name)
    .Case("suppress", LangOpts.CPlusPlus11 ? 1 : 0)
    .Default(0);
}
} break;
case AttrSyntax::C: {
if (!Scope || Scope->getName() == "") {
  return llvm::StringSwitch<int>(Name)
    .Case("deprecated", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("fallthrough", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("maybe_unused", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("nodiscard", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Default(0);
} else if (Scope->getName() == "clang") {
  return llvm::StringSwitch<int>(Name)
    .Case("address_space", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("annotate", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_arc_weak_reference_unavailable", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("argument_with_type_tag", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("pointer_with_type_tag", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("argument_with_type_tag", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("pointer_with_type_tag", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("availability", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("blocks", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("cf_audited_transfer", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("cf_consumed", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("cf_returns_not_retained", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("cf_returns_retained", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("cf_unknown_transfer", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("convergent", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("disable_tail_calls", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("enum_extensibility", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("external_source_symbol", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("flag_enum", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("ibaction", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("iboutlet", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("iboutletcollection", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("internal_linkage", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("lto_visibility_public", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("minsize", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("ns_consumed", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("ns_consumes_self", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("ns_returns_autoreleased", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("ns_returns_not_retained", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("ns_returns_retained", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("neon_polyvector_type", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("neon_vector_type", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("noduplicate", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("noescape", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("no_sanitize", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("no_sanitize_memory", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("no_thread_safety_analysis", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("not_tail_called", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_boxable", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_bridge", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_bridge_mutable", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_bridge_related", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_designated_initializer", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_exception", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_protocol_requires_explicit_implementation", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_gc", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_independent_class", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_method_family", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("NSObject", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_ownership", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_precise_lifetime", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_requires_property_definitions", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_requires_super", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_returns_inner_pointer", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_root_class", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_runtime_name", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_runtime_visible", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("objc_subclassing_restricted", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("optnone", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("overloadable", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("ownership_holds", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("ownership_returns", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("ownership_takes", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("ownership_holds", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("ownership_returns", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("ownership_takes", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("ownership_holds", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("ownership_returns", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("ownership_takes", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("pascal", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("pass_object_size", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("preserve_all", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("preserve_most", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("swiftcall", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("swift_context", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("swift_error_result", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("swift_indirect_result", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("type_tag_for_datatype", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("type_visibility", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("unavailable", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("vectorcall", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("weak_import", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("xray_always_instrument", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("xray_never_instrument", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("xray_always_instrument", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("xray_never_instrument", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Case("xray_log_args", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
    .Default(0);
}
} break;
}
