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

const llvm::Triple &T = Target.getTriple();
switch (Syntax) {
case AttributeCommonInfo::Syntax::AS_GNU:
  return llvm::StringSwitch<int>(Name)
    .Case("cmse_nonsecure_entry", (true && (T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::armeb || T.getArch() == llvm::Triple::thumbeb) ? 1 : 0))
    .Case("objc_bridge_related", (1))
    .Case("opencl_global", (1))
    .Case("release_shared_capability", (1))
    .Case("always_inline", (1))
    .Case("intel_reqd_sub_group_size", (1))
    .Case("uninitialized", (1))
    .Case("returns_twice", (1))
    .Case("preserve_static_offset", (true && (T.getArch() == llvm::Triple::bpfel || T.getArch() == llvm::Triple::bpfeb) ? 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("coro_await_elidable", (1))
    .Case("nv_weak", (1))
    .Case("release_capability", (1))
    .Case("ownership_takes", (1))
    .Case("selectany", (1))
    .Case("using_if_exists", (1))
    .Case("opencl_local", (1))
    .Case("acquired_after", (1))
    .Case("neon_vector_type", (1))
    .Case("cleanup", (1))
    .Case("flatten", (1))
    .Case("target", (1))
    .Case("sized_by", (1))
    .Case("warn_unused", (1))
    .Case("acquire_handle", (1))
    .Case("acquired_before", (1))
    .Case("zero_call_used_regs", (1))
    .Case("patchable_function_entry", (true && (T.getArch() == llvm::Triple::aarch64 || T.getArch() == llvm::Triple::aarch64_be || T.getArch() == llvm::Triple::loongarch32 || T.getArch() == llvm::Triple::loongarch64 || T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64 || T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::ppc || T.getArch() == llvm::Triple::ppc64) ? 1 : 0))
    .Case("argument_with_type_tag", (1))
    .Case("m68k_rtd", (1))
    .Case("objc_method_family", (1))
    .Case("stdcall", (1))
    .Case("pcs", (1))
    .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("sysv_abi", (1))
    .Case("swift_context", (1))
    .Case("try_acquire_shared_capability", (1))
    .Case("overloadable", (1))
    .Case("optnone", (1))
    .Case("coro_await_elidable_argument", (1))
    .Case("preserve_access_index", (true && (T.getArch() == llvm::Triple::bpfel || T.getArch() == llvm::Triple::bpfeb) ? 1 : 0))
    .Case("objc_direct", (1))
    .Case("convergent", (1))
    .Case("no_stack_protector", (1))
    .Case("ownership_holds", (1))
    .Case("returns_nonnull", (1))
    .Case("may_alias", (1))
    .Case("sycl_special_class", (1))
    .Case("__clang_arm_builtin_alias", (true && (T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::armeb || T.getArch() == llvm::Triple::thumbeb || T.getArch() == llvm::Triple::aarch64 || T.getArch() == llvm::Triple::aarch64_be || T.getArch() == llvm::Triple::aarch64_32) ? 1 : 0))
    .Case("swift_attr", (1))
    .Case("dllimport", (true && ( Target.getTriple().hasDLLImportExport() ) ? 1 : 0))
    .Case("import_module", (true && (T.getArch() == llvm::Triple::wasm32 || T.getArch() == llvm::Triple::wasm64) ? 1 : 0))
    .Case("exclusive_locks_required", (1))
    .Case("cmse_nonsecure_call", (true && (T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::armeb || T.getArch() == llvm::Triple::thumbeb) ? 1 : 0))
    .Case("warning", (1))
    .Case("format", (1))
    .Case("available_only_in_default_eval_method", (1))
    .Case("nocommon", (1))
    .Case("NSObject", (1))
    .Case("opencl_global_device", (1))
    .Case("trivial_abi", (1))
    .Case("objc_returns_inner_pointer", (1))
    .Case("dllexport", (true && ( Target.getTriple().hasDLLImportExport() ) ? 1 : 0))
    .Case("ns_consumed", (1))
    .Case("no_profile_instrument_function", (1))
    .Case("iboutlet", (1))
    .Case("atomic", (1))
    .Case("reentrant_capability", (1))
    .Case("cold", (1))
    .Case("error", (1))
    .Case("common", (1))
    .Case("alias", (1))
    .Case("launch_bounds", (1))
    .Case("maybe_undef", (1))
    .Case("opencl_global_host", (1))
    .Case("assume_aligned", (1))
    .Case("objc_designated_initializer", (1))
    .Case("consumable_auto_cast_state", (1))
    .Case("sycl_kernel_entry_point", (1))
    .Case("requires_shared_capability", (1))
    .Case("reinitializes", (1))
    .Case("acquire_shared_capability", (1))
    .Case("cf_unknown_transfer", (1))
    .Case("exclusive_trylock_function", (1))
    .Case("no_sanitize_memory", (1))
    .Case("callback", (1))
    .Case("__const", (1))
    .Case("objc_boxable", (1))
    .Case("swift_async_error", (1))
    .Case("objc_non_runtime_protocol", (1))
    .Case("enforce_tcb_leaf", (1))
    .Case("objc_requires_property_definitions", (1))
    .Case("swift_bridge", (1))
    .Case("amdgpu_num_sgpr", (1))
    .Case("nvptx_kernel", (1))
    .Case("aarch64_sve_pcs", (1))
    .Case("riscv_vls_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
    .Case("cf_audited_transfer", (1))
    .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("noconvergent", (1))
    .Case("use_handle", (1))
    .Case("require_explicit_initialization", (1))
    .Case("ms_abi", (1))
    .Case("nonnull", (1))
    .Case("cf_returns_retained", (1))
    .Case("swift_async_name", (1))
    .Case("try_acquire_capability", (1))
    .Case("no_specializations", (1))
    .Case("annotate", (1))
    .Case("cpu_dispatch", (1))
    .Case("neon_polyvector_type", (1))
    .Case("noinline", (1))
    .Case("assume", (1))
    .Case("swift_async", (1))
    .Case("device", (1))
    .Case("nonallocating", (1))
    .Case("regparm", (1))
    .Case("counted_by_or_null", (1))
    .Case("lto_visibility_public", (1))
    .Case("iboutletcollection", (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) || (true && (T.getArch() == llvm::Triple::avr) ? 1 : 0) || (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0) || (true && (T.getArch() == llvm::Triple::m68k) ? 1 : 0) || (true && (T.getArch() == llvm::Triple::msp430) ? 1 : 0) || (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0) || (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
    .Case("target_version", (true && (T.getArch() == llvm::Triple::aarch64 || T.getArch() == llvm::Triple::aarch64_be || T.getArch() == llvm::Triple::aarch64_32 || T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
    .Case("aligned", (1))
    .Case("acquire_capability", (1))
    .Case("objc_ownership", (1))
    .Case("always_destroy", (1))
    .Case("preferred_type", (1))
    .Case("unlock_function", (1))
    .Case("no_sanitize", (1))
    .Case("loader_uninitialized", (1))
    .Case("cfi_canonical_jump_table", (1))
    .Case("carries_dependency", (1))
    .Case("diagnose_as_builtin", (1))
    .Case("noderef", (1))
    .Case("objc_bridge", (1))
    .Case("nomips16", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
    .Case("shared", (1))
    .Case("pt_guarded_by", (1))
    .Case("coro_lifetimebound", (1))
    .Case("objc_protocol_requires_explicit_implementation", (1))
    .Case("nodebug", (1))
    .Case("no_address_safety_analysis", (1))
    .Case("param_typestate", (1))
    .Case("flag_enum", (1))
    .Case("objc_bridge_mutable", (1))
    .Case("set_typestate", (1))
    .Case("mode", (1))
    .Case("vector_size", (1))
    .Case("analyzer_noreturn", (1))
    .Case("coro_wrapper", (1))
    .Case("naked", (1))
    .Case("cf_consumed", (1))
    .Case("amdgpu_num_vgpr", (1))
    .Case("blocking", (1))
    .Case("guarded_by", (1))
    .Case("pass_object_size", (1))
    .Case("require_constant_initialization", (1))
    .Case("grid_constant", (1))
    .Case("amdgpu_kernel", (1))
    .Case("function_return", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
    .Case("thiscall", (1))
    .Case("os_returns_retained_on_zero", (1))
    .Case("malloc", (1))
    .Case("swift_wrapper", (1))
    .Case("clspv_libclc_builtin", (1))
    .Case("fastcall", (1))
    .Case("minsize", (1))
    .Case("matrix_type", (1))
    .Case("riscv_rvv_vector_bits", (1))
    .Case("vecreturn", (1))
    .Case("warn_unused_result", (1))
    .Case("amdgpu_flat_work_group_size", (1))
    .Case("shared_trylock_function", (1))
    .Case("aarch64_vector_pcs", (1))
    .Case("consumable", (1))
    .Case("fallthrough", (1))
    .Case("internal_linkage", (1))
    .Case("weak_import", (1))
    .Case("os_returns_not_retained", (1))
    .Case("assert_shared_capability", (1))
    .Case("objc_externally_retained", (1))
    .Case("suppress", (1))
    .Case("not_tail_called", (1))
    .Case("btf_decl_tag", (1))
    .Case("riscv_vector_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
    .Case("hybrid_patchable", (true && ( Target.getTriple().isWindowsArm64EC() ) ? 1 : 0))
    .Case("init_priority", (true && ( !Target.getTriple().isOSzOS() ) ? 1 : 0))
    .Case("standalone_debug", (1))
    .Case("sycl_kernel", (1))
    .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("btf_type_tag", (1))
    .Case("objc_precise_lifetime", (1))
    .Case("unused", (1))
    .Case("counted_by", (1))
    .Case("code_align", (1))
    .Case("enable_if", (1))
    .Case("ownership_returns", (1))
    .Case("capability", (1))
    .Case("model", (true && (T.getArch() == llvm::Triple::loongarch32 || T.getArch() == llvm::Triple::loongarch64 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::nvptx || T.getArch() == llvm::Triple::nvptx64 || T.getArch() == llvm::Triple::amdgcn || T.getArch() == llvm::Triple::r600 || T.getArch() == llvm::Triple::spirv || T.getArch() == llvm::Triple::spirv32 || T.getArch() == llvm::Triple::spirv64) ? 1 : 0))
    .Case("exclusive_lock_function", (1))
    .Case("device_builtin", (1))
    .Case("coro_disable_lifetimebound", (1))
    .Case("disable_sanitizer_instrumentation", (1))
    .Case("ptrauth_vtable_pointer", (1))
    .Case("retain", (1))
    .Case("deprecated", (1))
    .Case("__clang_arm_mve_strict_polymorphism", (true && (T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::armeb || T.getArch() == llvm::Triple::thumbeb) ? 1 : 0))
    .Case("preserve_all", (1))
    .Case("return_typestate", (1))
    .Case("nomerge", (1))
    .Case("constant", (1))
    .Case("coro_only_destroy_when_complete", (1))
    .Case("shared_locks_required", (1))
    .Case("diagnose_if", (1))
    .Case("swift_name", (1))
    .Case("vec_type_hint", (1))
    .Case("work_group_size_hint", (1))
    .Case("cfi_unchecked_callee", (1))
    .Case("mig_server_routine", (1))
    .Case("ifunc", (true && ( Target.supportsIFunc() ) ? 1 : 0))
    .Case("objc_exception", (1))
    .Case("os_returns_retained", (1))
    .Case("constructor", (1))
    .Case("locks_excluded", (1))
    .Case("force_align_arg_pointer", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
    .Case("objc_independent_class", (1))
    .Case("swift_error", (1))
    .Case("no_builtin", (1))
    .Case("amdgpu_max_num_work_groups", (1))
    .Case("external_source_symbol", (20230206))
    .Case("assert_capability", (1))
    .Case("availability", (1))
    .Case("nonstring", (1))
    .Case("requires_capability", (1))
    .Case("swift_newtype", (1))
    .Case("ns_returns_autoreleased", (1))
    .Case("scoped_lockable", (1))
    .Case("weak", (1))
    .Case("sentinel", (1))
    .Case("tls_model", (1))
    .Case("leaf", (1))
    .Case("swift_indirect_result", (1))
    .Case("objc_runtime_visible", (1))
    .Case("arm_sve_vector_bits", (1))
    .Case("format_matches", (1))
    .Case("no_split_stack", (1))
    .Case("objc_class_stub", (1))
    .Case("xray_log_args", (1))
    .Case("xray_never_instrument", (1))
    .Case("abi_tag", (1))
    .Case("cpu_specific", (1))
    .Case("swift_error_result", (1))
    .Case("no_speculative_load_hardening", (1))
    .Case("no_thread_safety_analysis", (1))
    .Case("objc_nonlazy_class", (1))
    .Case("regcall", (1))
    .Case("nocf_check", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
    .Case("nosvm", (1))
    .Case("shared_lock_function", (1))
    .Case("vectorcall", (1))
    .Case("assert_shared_lock", (1))
    .Case("min_vector_width", (1))
    .Case("micromips", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
    .Case("lock_returned", (1))
    .Case("allocating", (1))
    .Case("hot", (1))
    .Case("consumable_set_state_on_read", (1))
    .Case("gnu_inline", (1))
    .Case("noduplicate", (1))
    .Case("target_clones", (1))
    .Case("alloc_align", (1))
    .Case("destructor", (1))
    .Case("no_randomize_layout", (1))
    .Case("format_arg", (1))
    .Case("ibaction", (1))
    .Case("opencl_generic", (1))
    .Case("coro_return_type", (1))
    .Case("preserve_none", (true && (T.getArch() == llvm::Triple::aarch64 || T.getArch() == llvm::Triple::aarch64_be || T.getArch() == llvm::Triple::aarch64_32 || T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
    .Case("noreturn", (1))
    .Case("guarded_var", (1))
    .Case("mips16", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
    .Case("bpf_fastcall", (true && (T.getArch() == llvm::Triple::bpfel || T.getArch() == llvm::Triple::bpfeb) ? 1 : 0))
    .Case("ns_error_domain", (1))
    .Case("align_value", (1))
    .Case("lifetimebound", (1))
    .Case("device_builtin_texture_type", (1))
    .Case("exclude_from_explicit_instantiation", (1))
    .Case("export_name", (true && (T.getArch() == llvm::Triple::wasm32 || T.getArch() == llvm::Triple::wasm64) ? 1 : 0))
    .Case("section", (1))
    .Case("nouwtable", (1))
    .Case("device_kernel", (1))
    .Case("ext_vector_type", (1))
    .Case("nothrow", (1))
    .Case("objc_subclassing_restricted", (1))
    .Case("os_consumed", (1))
    .Case("unsafe_buffer_usage", (1))
    .Case("pt_guarded_var", (1))
    .Case("artificial", (1))
    .Case("pass_dynamic_object_size", (1))
    .Case("musttail", (1))
    .Case("preferred_name", (1))
    .Case("cf_returns_not_retained", (1))
    .Case("speculative_load_hardening", (1))
    .Case("type_tag_for_datatype", (1))
    .Case("test_typestate", (1))
    .Case("unavailable", (1))
    .Case("swiftcall", (1))
    .Case("swift_async_context", (1))
    .Case("device_builtin_surface_type", (1))
    .Case("type_visibility", (1))
    .Case("host", (1))
    .Case("swift_bridged_typedef", (1))
    .Case("xray_always_instrument", (1))
    .Case("reqd_work_group_size", (1))
    .Case("objc_direct_members", (1))
    .Case("ns_returns_retained", (1))
    .Case("ns_consumes_self", (1))
    .Case("enforce_tcb", (1))
    .Case("nomicromips", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
    .Case("address_space", (1))
    .Case("blocks", (1))
    .Case("global", (1))
    .Case("shared_capability", (1))
    .Case("lockable", (1))
    .Case("objc_runtime_name", (1))
    .Case("clang_builtin_alias", (1))
    .Case("packed", (1))
    .Case("pure", (1))
    .Case("opencl_private", (1))
    .Case("preserve_most", (1))
    .Case("visibility", (1))
    .Case("signal", (true && (T.getArch() == llvm::Triple::avr) ? 1 : 0))
    .Case("called_once", (1))
    .Case("objc_root_class", (1))
    .Case("no_instrument_function", (1))
    .Case("randomize_layout", (1))
    .Case("guard", (true && (T.getOS() == llvm::Triple::Win32) ? 1 : 0))
    .Case("os_consumes_this", (1))
    .Case("no_sanitize_address", (1))
    .Case("transparent_union", (1))
    .Case("objc_arc_weak_reference_unavailable", (1))
    .Case("const", (1))
    .Case("pascal", (1))
    .Case("assert_exclusive_lock", (1))
    .Case("release_handle", (1))
    .Case("used", (1))
    .Case("swift_private", (1))
    .Case("objc_gc", (1))
    .Case("import_name", (true && (T.getArch() == llvm::Triple::wasm32 || T.getArch() == llvm::Triple::wasm64) ? 1 : 0))
    .Case("os_returns_retained_on_non_zero", (1))
    .Case("enum_extensibility", (1))
    .Case("swift_objc_members", (1))
    .Case("release_generic_capability", (1))
    .Case("bounded", (1))
    .Case("enforce_read_only_placement", (1))
    .Case("no_caller_saved_registers", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
    .Case("intel_ocl_bicc", (1))
    .Case("interrupt_save_fp", (true && (T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::armeb || T.getArch() == llvm::Triple::thumbeb) ? 1 : 0))
    .Case("ns_returns_not_retained", (1))
    .Case("opencl_unroll_hint", (1))
    .Case("no_sanitize_thread", (1))
    .Case("noescape", (1))
    .Case("sized_by_or_null", (1))
    .Case("managed", (1))
    .Case("weakref", (1))
    .Case("no_destroy", (1))
    .Case("nonblocking", (1))
    .Case("pointer_with_type_tag", (1))
    .Case("objc_requires_super", (1))
    .Case("cdecl", (1))
    .Case("opencl_constant", (1))
    .Case("lifetime_capture_by", (1))
    .Case("cudart_builtin", (1))
    .Case("swiftasynccall", (1))
    .Case("callable_when", (1))
    .Case("disable_tail_calls", (1))
    .Case("ms_struct", (1))
    .Case("amdgpu_waves_per_eu", (1))
    .Case("alloc_size", (1))
    .Default(0);
case AttributeCommonInfo::Syntax::AS_Declspec:
  return llvm::StringSwitch<int>(Name)
    .Case("dllimport", (true && ( Target.getTriple().hasDLLImportExport() ) ? 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 || T.getArch() == llvm::Triple::amdgcn || T.getArch() == llvm::Triple::nvptx || T.getArch() == llvm::Triple::nvptx64 || T.getArch() == llvm::Triple::spirv || T.getArch() == llvm::Triple::spirv32 || T.getArch() == llvm::Triple::spirv64) && ( Target.hasMicrosoftRecordLayout() ) ? 1 : 0))
    .Case("allocator", (1))
    .Case("__device__", (1))
    .Case("__grid_constant__", (1))
    .Case("__shared__", (1))
    .Case("hybrid_patchable", (true && ( Target.getTriple().isWindowsArm64EC() ) ? 1 : 0))
    .Case("noreturn", (1))
    .Case("allocate", (1))
    .Case("guard", (true && (T.getOS() == llvm::Triple::Win32) ? 1 : 0))
    .Case("__managed__", (1))
    .Case("__global__", (1))
    .Case("dllexport", (true && ( Target.getTriple().hasDLLImportExport() ) ? 1 : 0))
    .Case("noconvergent", (1))
    .Case("restrict", (1))
    .Case("cpu_specific", (1))
    .Case("nothrow", (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 || T.getArch() == llvm::Triple::amdgcn || T.getArch() == llvm::Triple::nvptx || T.getArch() == llvm::Triple::nvptx64 || T.getArch() == llvm::Triple::spirv || T.getArch() == llvm::Triple::spirv32 || T.getArch() == llvm::Triple::spirv64) && ( Target.hasMicrosoftRecordLayout() ) ? 1 : 0))
    .Case("__host__", (1))
    .Case("deprecated", (1))
    .Case("__constant__", (1))
    .Case("cpu_dispatch", (1))
    .Case("align", (1))
    .Case("__launch_bounds__", (1))
    .Case("naked", (1))
    .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().isMicrosoft() ) ? 1 : 0))
    .Case("code_seg", (1))
    .Case("noinline", (1))
    .Case("__cudart_builtin__", (1))
    .Case("noalias", (1))
    .Case("safebuffers", (1))
    .Case("uuid", (1))
    .Case("__device_builtin_surface_type__", (1))
    .Case("__device_builtin__", (1))
    .Case("__device_builtin_texture_type__", (1))
    .Case("property", (1))
    .Case("strict_gs_check", (1))
    .Case("no_init_all", (1))
    .Case("thread", (1))
    .Case("selectany", (1))
    .Default(0);
case AttributeCommonInfo::Syntax::AS_Microsoft:
  return llvm::StringSwitch<int>(Name)
    .Case("loop", (1))
    .Case("branch", (1))
    .Case("unroll", (1))
    .Case("numthreads", (1))
    .Case("shader", (1))
    .Case("RootSignature", (1))
    .Case("flatten", (1))
    .Case("WaveSize", (1))
    .Case("uuid", (1))
    .Default(0);
case AttributeCommonInfo::Syntax::AS_Pragma:
  return llvm::StringSwitch<int>(Name)
    .Case("loop", (1))
    .Case("routine", (1))
    .Case("unroll", (1))
    .Case("declare target", (1))
    .Case("unroll_and_jam", (1))
    .Case("nounroll_and_jam", (1))
    .Case("declare simd", (1))
    .Case("init_seg", (1))
    .Case("declare variant", (1))
    .Case("nounroll", (1))
    .Default(0);
case AttributeCommonInfo::Syntax::AS_HLSLAnnotation:
  return llvm::StringSwitch<int>(Name)
    .Case("sv_groupid", (1))
    .Case("sv_groupthreadid", (1))
    .Case("register", (1))
    .Case("sv_position", (1))
    .Case("packoffset", (1))
    .Case("sv_dispatchthreadid", (1))
    .Case("sv_groupindex", (1))
    .Default(0);
case AttributeCommonInfo::Syntax::AS_CXX11: {
if (ScopeName == "") {
  return llvm::StringSwitch<int>(Name)
    .Case("carries_dependency", (200809))
    .Case("likely", (201803))
    .Case("unlikely", (201803))
    .Case("nodiscard", (201907))
    .Case("assume", (202207))
    .Case("noreturn", (200809))
    .Case("maybe_unused", (201603))
    .Case("fallthrough", (201603))
    .Case("deprecated", (201309))
    .Case("no_unique_address", (true && ( Target.getCXXABI().isItaniumFamily() ) ? 201803 : 0))
    .Default(0);
} else if (ScopeName == "clang") {
  return llvm::StringSwitch<int>(Name)
    .Case("objc_bridge_related", (1))
    .Case("always_inline", (1))
    .Case("uninitialized", (1))
    .Case("preserve_static_offset", (true && (T.getArch() == llvm::Triple::bpfel || T.getArch() == llvm::Triple::bpfeb) ? 1 : 0))
    .Case("coro_await_elidable", (1))
    .Case("release_capability", (1))
    .Case("ownership_takes", (1))
    .Case("opencl_local", (1))
    .Case("neon_vector_type", (1))
    .Case("sized_by", (1))
    .Case("acquire_handle", (1))
    .Case("argument_with_type_tag", (1))
    .Case("m68k_rtd", (1))
    .Case("objc_method_family", (1))
    .Case("try_acquire_shared_capability", (1))
    .Case("swift_context", (1))
    .Case("overloadable", (1))
    .Case("optnone", (1))
    .Case("coro_await_elidable_argument", (1))
    .Case("preserve_access_index", (true && (T.getArch() == llvm::Triple::bpfel || T.getArch() == llvm::Triple::bpfeb) ? 1 : 0))
    .Case("objc_direct", (1))
    .Case("convergent", (1))
    .Case("no_stack_protector", (1))
    .Case("ownership_holds", (1))
    .Case("sycl_special_class", (1))
    .Case("__clang_arm_builtin_alias", (true && (T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::armeb || T.getArch() == llvm::Triple::thumbeb || T.getArch() == llvm::Triple::aarch64 || T.getArch() == llvm::Triple::aarch64_be || T.getArch() == llvm::Triple::aarch64_32) ? 1 : 0))
    .Case("import_module", (true && (T.getArch() == llvm::Triple::wasm32 || T.getArch() == llvm::Triple::wasm64) ? 1 : 0))
    .Case("exclusive_locks_required", (1))
    .Case("annotate_type", (1))
    .Case("trivial_abi", (1))
    .Case("available_only_in_default_eval_method", (1))
    .Case("NSObject", (1))
    .Case("opencl_global_device", (1))
    .Case("objc_returns_inner_pointer", (1))
    .Case("ns_consumed", (1))
    .Case("iboutlet", (1))
    .Case("atomic", (1))
    .Case("reentrant_capability", (1))
    .Case("maybe_undef", (1))
    .Case("opencl_global_host", (1))
    .Case("objc_designated_initializer", (1))
    .Case("consumable_auto_cast_state", (1))
    .Case("sycl_kernel_entry_point", (1))
    .Case("requires_shared_capability", (1))
    .Case("reinitializes", (1))
    .Case("cf_unknown_transfer", (1))
    .Case("acquire_shared_capability", (1))
    .Case("no_sanitize_memory", (1))
    .Case("callback", (1))
    .Case("objc_boxable", (1))
    .Case("swift_async_error", (1))
    .Case("objc_non_runtime_protocol", (1))
    .Case("enforce_tcb_leaf", (1))
    .Case("objc_requires_property_definitions", (1))
    .Case("try_acquire_capability", (1))
    .Case("amdgpu_num_sgpr", (1))
    .Case("nvptx_kernel", (1))
    .Case("aarch64_sve_pcs", (1))
    .Case("riscv_vls_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
    .Case("cf_audited_transfer", (1))
    .Case("noconvergent", (1))
    .Case("use_handle", (1))
    .Case("require_explicit_initialization", (1))
    .Case("no_specializations", (1))
    .Case("cf_returns_retained", (1))
    .Case("annotate", (1))
    .Case("cpu_dispatch", (1))
    .Case("neon_polyvector_type", (1))
    .Case("noinline", (1))
    .Case("assume", (1))
    .Case("swift_async", (1))
    .Case("nonallocating", (1))
    .Case("counted_by_or_null", (1))
    .Case("lto_visibility_public", (1))
    .Case("iboutletcollection", (1))
    .Case("objc_ownership", (1))
    .Case("acquire_capability", (1))
    .Case("always_destroy", (1))
    .Case("preferred_type", (1))
    .Case("unlock_function", (1))
    .Case("no_sanitize", (1))
    .Case("loader_uninitialized", (1))
    .Case("cfi_canonical_jump_table", (1))
    .Case("diagnose_as_builtin", (1))
    .Case("noderef", (1))
    .Case("objc_bridge", (1))
    .Case("set_typestate", (1))
    .Case("coro_lifetimebound", (1))
    .Case("objc_protocol_requires_explicit_implementation", (1))
    .Case("param_typestate", (1))
    .Case("flag_enum", (1))
    .Case("objc_bridge_mutable", (1))
    .Case("coro_wrapper", (1))
    .Case("cf_consumed", (1))
    .Case("amdgpu_num_vgpr", (1))
    .Case("blocking", (1))
    .Case("pass_object_size", (1))
    .Case("require_constant_initialization", (1))
    .Case("amdgpu_kernel", (1))
    .Case("os_returns_retained_on_zero", (1))
    .Case("clspv_libclc_builtin", (1))
    .Case("matrix_type", (1))
    .Case("minsize", (1))
    .Case("vecreturn", (1))
    .Case("warn_unused_result", (1))
    .Case("amdgpu_flat_work_group_size", (1))
    .Case("aarch64_vector_pcs", (1))
    .Case("consumable", (1))
    .Case("os_returns_not_retained", (1))
    .Case("internal_linkage", (1))
    .Case("weak_import", (1))
    .Case("fallthrough", (1))
    .Case("assert_shared_capability", (1))
    .Case("objc_externally_retained", (1))
    .Case("suppress", (1))
    .Case("not_tail_called", (1))
    .Case("btf_decl_tag", (1))
    .Case("riscv_vector_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
    .Case("hybrid_patchable", (true && ( Target.getTriple().isWindowsArm64EC() ) ? 1 : 0))
    .Case("standalone_debug", (1))
    .Case("sycl_kernel", (1))
    .Case("objc_precise_lifetime", (1))
    .Case("btf_type_tag", (1))
    .Case("counted_by", (1))
    .Case("code_align", (1))
    .Case("ownership_returns", (1))
    .Case("capability", (1))
    .Case("coro_disable_lifetimebound", (1))
    .Case("disable_sanitizer_instrumentation", (1))
    .Case("ptrauth_vtable_pointer", (1))
    .Case("__clang_arm_mve_strict_polymorphism", (true && (T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::armeb || T.getArch() == llvm::Triple::thumbeb) ? 1 : 0))
    .Case("preserve_all", (1))
    .Case("return_typestate", (1))
    .Case("nomerge", (1))
    .Case("coro_only_destroy_when_complete", (1))
    .Case("shared_locks_required", (1))
    .Case("cfi_unchecked_callee", (1))
    .Case("mig_server_routine", (1))
    .Case("objc_exception", (1))
    .Case("os_returns_retained", (1))
    .Case("objc_independent_class", (1))
    .Case("no_builtin", (1))
    .Case("amdgpu_max_num_work_groups", (1))
    .Case("external_source_symbol", (20230206))
    .Case("assert_capability", (1))
    .Case("availability", (1))
    .Case("requires_capability", (1))
    .Case("ns_returns_autoreleased", (1))
    .Case("scoped_lockable", (1))
    .Case("swift_indirect_result", (1))
    .Case("xray_never_instrument", (1))
    .Case("builtin_alias", (1))
    .Case("objc_runtime_visible", (1))
    .Case("objc_class_stub", (1))
    .Case("xray_log_args", (1))
    .Case("cpu_specific", (1))
    .Case("swift_error_result", (1))
    .Case("no_speculative_load_hardening", (1))
    .Case("no_thread_safety_analysis", (1))
    .Case("objc_nonlazy_class", (1))
    .Case("vectorcall", (1))
    .Case("min_vector_width", (1))
    .Case("allocating", (1))
    .Case("consumable_set_state_on_read", (1))
    .Case("noduplicate", (1))
    .Case("lifetimebound", (1))
    .Case("preserve_none", (true && (T.getArch() == llvm::Triple::aarch64 || T.getArch() == llvm::Triple::aarch64_be || T.getArch() == llvm::Triple::aarch64_32 || T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
    .Case("ibaction", (1))
    .Case("opencl_generic", (1))
    .Case("coro_return_type", (1))
    .Case("guarded_var", (1))
    .Case("os_consumed", (1))
    .Case("bpf_fastcall", (true && (T.getArch() == llvm::Triple::bpfel || T.getArch() == llvm::Triple::bpfeb) ? 1 : 0))
    .Case("nouwtable", (1))
    .Case("speculative_load_hardening", (1))
    .Case("export_name", (true && (T.getArch() == llvm::Triple::wasm32 || T.getArch() == llvm::Triple::wasm64) ? 1 : 0))
    .Case("exclude_from_explicit_instantiation", (1))
    .Case("xray_always_instrument", (1))
    .Case("device_kernel", (1))
    .Case("ext_vector_type", (1))
    .Case("unsafe_buffer_usage", (1))
    .Case("objc_subclassing_restricted", (1))
    .Case("pt_guarded_var", (1))
    .Case("pass_dynamic_object_size", (1))
    .Case("musttail", (1))
    .Case("preferred_name", (1))
    .Case("cf_returns_not_retained", (1))
    .Case("type_tag_for_datatype", (1))
    .Case("test_typestate", (1))
    .Case("unavailable", (1))
    .Case("swiftcall", (1))
    .Case("swift_async_context", (1))
    .Case("type_visibility", (1))
    .Case("objc_direct_members", (1))
    .Case("ns_returns_retained", (1))
    .Case("ns_consumes_self", (1))
    .Case("enforce_tcb", (1))
    .Case("opencl_private", (1))
    .Case("address_space", (1))
    .Case("blocks", (1))
    .Case("objc_runtime_name", (1))
    .Case("shared_capability", (1))
    .Case("preserve_most", (1))
    .Case("called_once", (1))
    .Case("objc_root_class", (1))
    .Case("guard", (true && (T.getOS() == llvm::Triple::Win32) ? 1 : 0))
    .Case("os_consumes_this", (1))
    .Case("objc_gc", (1))
    .Case("import_name", (true && (T.getArch() == llvm::Triple::wasm32 || T.getArch() == llvm::Triple::wasm64) ? 1 : 0))
    .Case("objc_arc_weak_reference_unavailable", (1))
    .Case("pascal", (1))
    .Case("release_handle", (1))
    .Case("release_generic_capability", (1))
    .Case("os_returns_retained_on_non_zero", (1))
    .Case("enum_extensibility", (1))
    .Case("using_if_exists", (1))
    .Case("enforce_read_only_placement", (1))
    .Case("intel_ocl_bicc", (1))
    .Case("ns_returns_not_retained", (1))
    .Case("sized_by_or_null", (1))
    .Case("noescape", (1))
    .Case("no_destroy", (1))
    .Case("nonblocking", (1))
    .Case("pointer_with_type_tag", (1))
    .Case("objc_requires_super", (1))
    .Case("opencl_constant", (1))
    .Case("release_shared_capability", (1))
    .Case("lifetime_capture_by", (1))
    .Case("swiftasynccall", (1))
    .Case("callable_when", (1))
    .Case("disable_tail_calls", (1))
    .Case("amdgpu_waves_per_eu", (1))
    .Case("opencl_global", (1))
    .Default(0);
} else if (ScopeName == "gnu") {
  return llvm::StringSwitch<int>(Name)
    .Case("alloc_size", (1))
    .Case("always_inline", (1))
    .Case("init_priority", (true && ( !Target.getTriple().isOSzOS() ) ? 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("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("unused", (1))
    .Case("model", (true && (T.getArch() == llvm::Triple::loongarch32 || T.getArch() == llvm::Triple::loongarch64 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::nvptx || T.getArch() == llvm::Triple::nvptx64 || T.getArch() == llvm::Triple::amdgcn || T.getArch() == llvm::Triple::r600 || T.getArch() == llvm::Triple::spirv || T.getArch() == llvm::Triple::spirv32 || T.getArch() == llvm::Triple::spirv64) ? 1 : 0))
    .Case("target", (1))
    .Case("retain", (1))
    .Case("cleanup", (1))
    .Case("flatten", (1))
    .Case("deprecated", (1))
    .Case("warn_unused", (1))
    .Case("patchable_function_entry", (true && (T.getArch() == llvm::Triple::aarch64 || T.getArch() == llvm::Triple::aarch64_be || T.getArch() == llvm::Triple::loongarch32 || T.getArch() == llvm::Triple::loongarch64 || T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64 || T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::ppc || T.getArch() == llvm::Triple::ppc64) ? 1 : 0))
    .Case("zero_call_used_regs", (1))
    .Case("pcs", (1))
    .Case("stdcall", (1))
    .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("sysv_abi", (1))
    .Case("ifunc", (true && ( Target.supportsIFunc() ) ? 1 : 0))
    .Case("constructor", (1))
    .Case("force_align_arg_pointer", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
    .Case("no_stack_protector", (1))
    .Case("returns_nonnull", (1))
    .Case("may_alias", (1))
    .Case("nonstring", (1))
    .Case("dllimport", (true && ( Target.getTriple().hasDLLImportExport() ) ? 1 : 0))
    .Case("sentinel", (1))
    .Case("warning", (1))
    .Case("format", (1))
    .Case("tls_model", (1))
    .Case("leaf", (1))
    .Case("nocommon", (1))
    .Case("format_matches", (1))
    .Case("dllexport", (true && ( Target.getTriple().hasDLLImportExport() ) ? 1 : 0))
    .Case("no_split_stack", (1))
    .Case("abi_tag", (1))
    .Case("no_profile_instrument_function", (1))
    .Case("cold", (1))
    .Case("error", (1))
    .Case("common", (1))
    .Case("alias", (1))
    .Case("nocf_check", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
    .Case("regcall", (1))
    .Case("assume_aligned", (1))
    .Case("micromips", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
    .Case("hot", (1))
    .Case("gnu_inline", (1))
    .Case("target_clones", (1))
    .Case("__const", (1))
    .Case("alloc_align", (1))
    .Case("destructor", (1))
    .Case("no_randomize_layout", (1))
    .Case("format_arg", (1))
    .Case("noreturn", (1))
    .Case("mips16", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 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("section", (1))
    .Case("ms_abi", (1))
    .Case("nonnull", (1))
    .Case("nothrow", (1))
    .Case("artificial", (1))
    .Case("noinline", (1))
    .Case("regparm", (1))
    .Case("target_version", (true && (T.getArch() == llvm::Triple::aarch64 || T.getArch() == llvm::Triple::aarch64_be || T.getArch() == llvm::Triple::aarch64_32 || T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
    .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) || (true && (T.getArch() == llvm::Triple::avr) ? 1 : 0) || (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0) || (true && (T.getArch() == llvm::Triple::msp430) ? 1 : 0) || (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0) || (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
    .Case("aligned", (1))
    .Case("nomicromips", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
    .Case("used", (1))
    .Case("no_sanitize", (1))
    .Case("randomize_layout", (1))
    .Case("packed", (1))
    .Case("visibility", (1))
    .Case("pure", (1))
    .Case("nomips16", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
    .Case("signal", (true && (T.getArch() == llvm::Triple::avr) ? 1 : 0))
    .Case("no_instrument_function", (1))
    .Case("nodebug", (1))
    .Case("no_address_safety_analysis", (1))
    .Case("no_sanitize_address", (1))
    .Case("transparent_union", (1))
    .Case("const", (1))
    .Case("weakref", (1))
    .Case("mode", (1))
    .Case("vector_size", (1))
    .Case("naked", (1))
    .Case("no_caller_saved_registers", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
    .Case("no_sanitize_thread", (1))
    .Case("function_return", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
    .Case("thiscall", (1))
    .Case("malloc", (1))
    .Case("weak", (1))
    .Case("fastcall", (1))
    .Case("warn_unused_result", (1))
    .Case("cdecl", (1))
    .Case("fallthrough", (1))
    .Case("ms_struct", (1))
    .Case("returns_twice", (1))
    .Case("selectany", (1))
    .Default(0);
} else if (ScopeName == "gsl") {
  return llvm::StringSwitch<int>(Name)
    .Case("suppress", (1))
    .Case("Pointer", (1))
    .Case("Owner", (1))
    .Default(0);
} else if (ScopeName == "hlsl") {
  return llvm::StringSwitch<int>(Name)
    .Case("contained_type", (1))
    .Case("raw_buffer", (1))
    .Case("is_rov", (1))
    .Case("resource_class", (1))
    .Default(0);
} else if (ScopeName == "msvc") {
  return llvm::StringSwitch<int>(Name)
    .Case("noinline", (1))
    .Case("constexpr", (1))
    .Case("no_unique_address", (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.getArch() == llvm::Triple::amdgcn || T.getArch() == llvm::Triple::nvptx || T.getArch() == llvm::Triple::nvptx64 || T.getArch() == llvm::Triple::spirv || T.getArch() == llvm::Triple::spirv32 || T.getArch() == llvm::Triple::spirv64) && ( Target.hasMicrosoftRecordLayout() ) ? 201803 : 0))
    .Default(0);
} else if (ScopeName == "omp") {
  return llvm::StringSwitch<int>(Name)
    .Case("assume", (1))
    .Default(0);
} else if (ScopeName == "riscv") {
  return llvm::StringSwitch<int>(Name)
    .Case("vls_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
    .Case("vector_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
    .Default(0);
} else if (ScopeName == "vk") {
  return llvm::StringSwitch<int>(Name)
    .Case("constant_id", (1))
    .Case("ext_builtin_input", (1))
    .Default(0);
}
} break;
case AttributeCommonInfo::Syntax::AS_C23: {
if (ScopeName == "") {
  return llvm::StringSwitch<int>(Name)
    .Case("nodiscard", (202003))
    .Case("_Noreturn", (202202))
    .Case("noreturn", (202202))
    .Case("maybe_unused", (202106))
    .Case("fallthrough", (201910))
    .Case("deprecated", (201904))
    .Default(0);
} else if (ScopeName == "clang") {
  return llvm::StringSwitch<int>(Name)
    .Case("objc_bridge_related", (1))
    .Case("objc_externally_retained", (1))
    .Case("suppress", (1))
    .Case("not_tail_called", (1))
    .Case("always_inline", (1))
    .Case("btf_decl_tag", (1))
    .Case("riscv_vector_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
    .Case("hybrid_patchable", (true && ( Target.getTriple().isWindowsArm64EC() ) ? 1 : 0))
    .Case("sycl_kernel", (1))
    .Case("objc_precise_lifetime", (1))
    .Case("preserve_static_offset", (true && (T.getArch() == llvm::Triple::bpfel || T.getArch() == llvm::Triple::bpfeb) ? 1 : 0))
    .Case("btf_type_tag", (1))
    .Case("coro_await_elidable", (1))
    .Case("counted_by", (1))
    .Case("code_align", (1))
    .Case("ownership_takes", (1))
    .Case("ownership_returns", (1))
    .Case("opencl_local", (1))
    .Case("coro_disable_lifetimebound", (1))
    .Case("neon_vector_type", (1))
    .Case("disable_sanitizer_instrumentation", (1))
    .Case("ptrauth_vtable_pointer", (1))
    .Case("export_name", (true && (T.getArch() == llvm::Triple::wasm32 || T.getArch() == llvm::Triple::wasm64) ? 1 : 0))
    .Case("__clang_arm_mve_strict_polymorphism", (true && (T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::armeb || T.getArch() == llvm::Triple::thumbeb) ? 1 : 0))
    .Case("sized_by", (1))
    .Case("acquire_handle", (1))
    .Case("preserve_all", (1))
    .Case("nomerge", (1))
    .Case("coro_only_destroy_when_complete", (1))
    .Case("argument_with_type_tag", (1))
    .Case("m68k_rtd", (1))
    .Case("objc_method_family", (1))
    .Case("unlikely", (1))
    .Case("cfi_unchecked_callee", (1))
    .Case("mig_server_routine", (1))
    .Case("objc_exception", (1))
    .Case("likely", (1))
    .Case("os_returns_retained", (1))
    .Case("overloadable", (1))
    .Case("optnone", (1))
    .Case("coro_await_elidable_argument", (1))
    .Case("preserve_access_index", (true && (T.getArch() == llvm::Triple::bpfel || T.getArch() == llvm::Triple::bpfeb) ? 1 : 0))
    .Case("objc_direct", (1))
    .Case("convergent", (1))
    .Case("no_stack_protector", (1))
    .Case("ownership_holds", (1))
    .Case("objc_independent_class", (1))
    .Case("no_builtin", (1))
    .Case("__clang_arm_builtin_alias", (true && (T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::armeb || T.getArch() == llvm::Triple::thumbeb || T.getArch() == llvm::Triple::aarch64 || T.getArch() == llvm::Triple::aarch64_be || T.getArch() == llvm::Triple::aarch64_32) ? 1 : 0))
    .Case("external_source_symbol", (20230206))
    .Case("availability", (1))
    .Case("sycl_special_class", (1))
    .Case("swift_context", (1))
    .Case("annotate_type", (1))
    .Case("ns_returns_autoreleased", (1))
    .Case("available_only_in_default_eval_method", (1))
    .Case("xray_never_instrument", (1))
    .Case("import_module", (true && (T.getArch() == llvm::Triple::wasm32 || T.getArch() == llvm::Triple::wasm64) ? 1 : 0))
    .Case("NSObject", (1))
    .Case("builtin_alias", (1))
    .Case("objc_runtime_visible", (1))
    .Case("opencl_global_device", (1))
    .Case("swift_indirect_result", (1))
    .Case("objc_returns_inner_pointer", (1))
    .Case("objc_class_stub", (1))
    .Case("xray_log_args", (1))
    .Case("ns_consumed", (1))
    .Case("cpu_specific", (1))
    .Case("swift_error_result", (1))
    .Case("iboutlet", (1))
    .Case("atomic", (1))
    .Case("reentrant_capability", (1))
    .Case("no_speculative_load_hardening", (1))
    .Case("no_thread_safety_analysis", (1))
    .Case("objc_nonlazy_class", (1))
    .Case("maybe_undef", (1))
    .Case("vectorcall", (1))
    .Case("opencl_global_host", (1))
    .Case("objc_designated_initializer", (1))
    .Case("min_vector_width", (1))
    .Case("sycl_kernel_entry_point", (1))
    .Case("cf_unknown_transfer", (1))
    .Case("allocating", (1))
    .Case("no_sanitize_memory", (1))
    .Case("noduplicate", (1))
    .Case("callback", (1))
    .Case("objc_boxable", (1))
    .Case("swift_async_error", (1))
    .Case("preserve_none", (true && (T.getArch() == llvm::Triple::aarch64 || T.getArch() == llvm::Triple::aarch64_be || T.getArch() == llvm::Triple::aarch64_32 || T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
    .Case("ibaction", (1))
    .Case("enforce_tcb_leaf", (1))
    .Case("opencl_generic", (1))
    .Case("coro_return_type", (1))
    .Case("nvptx_kernel", (1))
    .Case("objc_non_runtime_protocol", (1))
    .Case("aarch64_sve_pcs", (1))
    .Case("os_consumed", (1))
    .Case("bpf_fastcall", (true && (T.getArch() == llvm::Triple::bpfel || T.getArch() == llvm::Triple::bpfeb) ? 1 : 0))
    .Case("cf_audited_transfer", (1))
    .Case("noconvergent", (1))
    .Case("nouwtable", (1))
    .Case("riscv_vls_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
    .Case("exclude_from_explicit_instantiation", (1))
    .Case("require_explicit_initialization", (1))
    .Case("xray_always_instrument", (1))
    .Case("cf_returns_retained", (1))
    .Case("device_kernel", (1))
    .Case("ext_vector_type", (1))
    .Case("annotate", (1))
    .Case("cpu_dispatch", (1))
    .Case("objc_subclassing_restricted", (1))
    .Case("unsafe_buffer_usage", (1))
    .Case("neon_polyvector_type", (1))
    .Case("speculative_load_hardening", (1))
    .Case("noinline", (1))
    .Case("assume", (1))
    .Case("musttail", (1))
    .Case("swift_async", (1))
    .Case("cf_returns_not_retained", (1))
    .Case("use_handle", (1))
    .Case("type_tag_for_datatype", (1))
    .Case("pass_dynamic_object_size", (1))
    .Case("nonallocating", (1))
    .Case("objc_requires_property_definitions", (1))
    .Case("counted_by_or_null", (1))
    .Case("swift_async_context", (1))
    .Case("lto_visibility_public", (1))
    .Case("iboutletcollection", (1))
    .Case("objc_ownership", (1))
    .Case("swiftcall", (1))
    .Case("type_visibility", (1))
    .Case("objc_direct_members", (1))
    .Case("ns_returns_retained", (1))
    .Case("ns_consumes_self", (1))
    .Case("preferred_type", (1))
    .Case("enforce_tcb", (1))
    .Case("opencl_private", (1))
    .Case("blocks", (1))
    .Case("address_space", (1))
    .Case("loader_uninitialized", (1))
    .Case("cfi_canonical_jump_table", (1))
    .Case("no_sanitize", (1))
    .Case("objc_runtime_name", (1))
    .Case("preserve_most", (1))
    .Case("diagnose_as_builtin", (1))
    .Case("noderef", (1))
    .Case("objc_bridge", (1))
    .Case("called_once", (1))
    .Case("coro_lifetimebound", (1))
    .Case("objc_protocol_requires_explicit_implementation", (1))
    .Case("objc_root_class", (1))
    .Case("unavailable", (1))
    .Case("guard", (true && (T.getOS() == llvm::Triple::Win32) ? 1 : 0))
    .Case("os_consumes_this", (1))
    .Case("objc_gc", (1))
    .Case("import_name", (true && (T.getArch() == llvm::Triple::wasm32 || T.getArch() == llvm::Triple::wasm64) ? 1 : 0))
    .Case("objc_arc_weak_reference_unavailable", (1))
    .Case("flag_enum", (1))
    .Case("pascal", (1))
    .Case("objc_bridge_mutable", (1))
    .Case("release_handle", (1))
    .Case("os_returns_retained_on_non_zero", (1))
    .Case("enum_extensibility", (1))
    .Case("coro_wrapper", (1))
    .Case("cf_consumed", (1))
    .Case("enforce_read_only_placement", (1))
    .Case("pass_object_size", (1))
    .Case("blocking", (1))
    .Case("ns_returns_not_retained", (1))
    .Case("sized_by_or_null", (1))
    .Case("amdgpu_kernel", (1))
    .Case("noescape", (1))
    .Case("os_returns_retained_on_zero", (1))
    .Case("clspv_libclc_builtin", (1))
    .Case("matrix_type", (1))
    .Case("minsize", (1))
    .Case("nonblocking", (1))
    .Case("pointer_with_type_tag", (1))
    .Case("objc_requires_super", (1))
    .Case("opencl_constant", (1))
    .Case("swiftasynccall", (1))
    .Case("aarch64_vector_pcs", (1))
    .Case("disable_tail_calls", (1))
    .Case("os_returns_not_retained", (1))
    .Case("internal_linkage", (1))
    .Case("weak_import", (1))
    .Case("opencl_global", (1))
    .Default(0);
} else if (ScopeName == "gnu") {
  return llvm::StringSwitch<int>(Name)
    .Case("alloc_size", (1))
    .Case("always_inline", (1))
    .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("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("unused", (1))
    .Case("model", (true && (T.getArch() == llvm::Triple::loongarch32 || T.getArch() == llvm::Triple::loongarch64 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::nvptx || T.getArch() == llvm::Triple::nvptx64 || T.getArch() == llvm::Triple::amdgcn || T.getArch() == llvm::Triple::r600 || T.getArch() == llvm::Triple::spirv || T.getArch() == llvm::Triple::spirv32 || T.getArch() == llvm::Triple::spirv64) ? 1 : 0))
    .Case("target", (1))
    .Case("retain", (1))
    .Case("cleanup", (1))
    .Case("flatten", (1))
    .Case("deprecated", (1))
    .Case("warn_unused", (1))
    .Case("patchable_function_entry", (true && (T.getArch() == llvm::Triple::aarch64 || T.getArch() == llvm::Triple::aarch64_be || T.getArch() == llvm::Triple::loongarch32 || T.getArch() == llvm::Triple::loongarch64 || T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64 || T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::ppc || T.getArch() == llvm::Triple::ppc64) ? 1 : 0))
    .Case("zero_call_used_regs", (1))
    .Case("pcs", (1))
    .Case("stdcall", (1))
    .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("sysv_abi", (1))
    .Case("ifunc", (true && ( Target.supportsIFunc() ) ? 1 : 0))
    .Case("constructor", (1))
    .Case("force_align_arg_pointer", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
    .Case("no_stack_protector", (1))
    .Case("returns_nonnull", (1))
    .Case("may_alias", (1))
    .Case("nonstring", (1))
    .Case("dllimport", (true && ( Target.getTriple().hasDLLImportExport() ) ? 1 : 0))
    .Case("sentinel", (1))
    .Case("warning", (1))
    .Case("format", (1))
    .Case("tls_model", (1))
    .Case("leaf", (1))
    .Case("nocommon", (1))
    .Case("format_matches", (1))
    .Case("dllexport", (true && ( Target.getTriple().hasDLLImportExport() ) ? 1 : 0))
    .Case("no_split_stack", (1))
    .Case("no_profile_instrument_function", (1))
    .Case("cold", (1))
    .Case("error", (1))
    .Case("common", (1))
    .Case("alias", (1))
    .Case("nocf_check", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
    .Case("regcall", (1))
    .Case("assume_aligned", (1))
    .Case("micromips", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
    .Case("hot", (1))
    .Case("gnu_inline", (1))
    .Case("target_clones", (1))
    .Case("__const", (1))
    .Case("alloc_align", (1))
    .Case("destructor", (1))
    .Case("no_randomize_layout", (1))
    .Case("format_arg", (1))
    .Case("noreturn", (1))
    .Case("mips16", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 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("section", (1))
    .Case("ms_abi", (1))
    .Case("nonnull", (1))
    .Case("nothrow", (1))
    .Case("artificial", (1))
    .Case("noinline", (1))
    .Case("regparm", (1))
    .Case("target_version", (true && (T.getArch() == llvm::Triple::aarch64 || T.getArch() == llvm::Triple::aarch64_be || T.getArch() == llvm::Triple::aarch64_32 || T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
    .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) || (true && (T.getArch() == llvm::Triple::avr) ? 1 : 0) || (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0) || (true && (T.getArch() == llvm::Triple::msp430) ? 1 : 0) || (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0) || (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
    .Case("aligned", (1))
    .Case("nomicromips", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
    .Case("used", (1))
    .Case("no_sanitize", (1))
    .Case("randomize_layout", (1))
    .Case("packed", (1))
    .Case("visibility", (1))
    .Case("pure", (1))
    .Case("nomips16", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
    .Case("signal", (true && (T.getArch() == llvm::Triple::avr) ? 1 : 0))
    .Case("no_instrument_function", (1))
    .Case("nodebug", (1))
    .Case("no_address_safety_analysis", (1))
    .Case("no_sanitize_address", (1))
    .Case("transparent_union", (1))
    .Case("const", (1))
    .Case("weakref", (1))
    .Case("mode", (1))
    .Case("vector_size", (1))
    .Case("naked", (1))
    .Case("no_caller_saved_registers", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
    .Case("no_sanitize_thread", (1))
    .Case("function_return", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
    .Case("thiscall", (1))
    .Case("malloc", (1))
    .Case("weak", (1))
    .Case("fastcall", (1))
    .Case("warn_unused_result", (1))
    .Case("cdecl", (1))
    .Case("fallthrough", (1))
    .Case("ms_struct", (1))
    .Case("returns_twice", (1))
    .Case("selectany", (1))
    .Default(0);
} else if (ScopeName == "msvc") {
  return llvm::StringSwitch<int>(Name)
    .Case("noinline", (1))
    .Default(0);
} else if (ScopeName == "riscv") {
  return llvm::StringSwitch<int>(Name)
    .Case("vls_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
    .Case("vector_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
    .Default(0);
}
} break;
case AttributeCommonInfo::Syntax::AS_Keyword:
case AttributeCommonInfo::Syntax::AS_ContextSensitiveKeyword:
  llvm_unreachable("hasAttribute not supported for keyword");
  return 0;
case AttributeCommonInfo::Syntax::AS_Implicit:
  llvm_unreachable ("hasAttribute not supported for AS_Implicit");
  return 0;
}
