| /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |
| |* *| |
| |*Code to implement the __has_attribute logic *| |
| |* *| |
| |* Automatically generated file, do not edit! *| |
| |* *| |
| \*===----------------------------------------------------------------------===*/ |
| |
| switch (Syntax) { |
| case AttrSyntax::Generic: |
| return llvm::StringSwitch<bool>(Name) |
| .Case("interrupt", (T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb)) |
| .Case("acquire_capability", true) |
| .Case("acquire_capability", true) |
| .Case("acquire_shared_capability", true) |
| .Case("acquire_shared_capability", true) |
| .Case("exclusive_lock_function", true) |
| .Case("shared_lock_function", true) |
| .Case("acquired_after", true) |
| .Case("acquired_before", true) |
| .Case("address_space", true) |
| .Case("alias", true) |
| .Case("alias", true) |
| .Case("aligned", true) |
| .Case("aligned", true) |
| .Case("align", true) |
| .Case("alignas", true) |
| .Case("_Alignas", true) |
| .Case("always_inline", true) |
| .Case("always_inline", true) |
| .Case("__forceinline", true) |
| .Case("analyzer_noreturn", true) |
| .Case("annotate", true) |
| .Case("objc_arc_weak_reference_unavailable", true) |
| .Case("argument_with_type_tag", true) |
| .Case("pointer_with_type_tag", true) |
| .Case("asm", true) |
| .Case("__asm__", true) |
| .Case("assert_capability", true) |
| .Case("assert_capability", true) |
| .Case("assert_shared_capability", true) |
| .Case("assert_shared_capability", true) |
| .Case("assert_exclusive_lock", true) |
| .Case("assert_shared_lock", true) |
| .Case("availability", true) |
| .Case("blocks", true) |
| .Case("bounded", true) |
| .Case("_Noreturn", true) |
| .Case("cdecl", true) |
| .Case("cdecl", true) |
| .Case("__cdecl", true) |
| .Case("_cdecl", true) |
| .Case("cf_audited_transfer", true) |
| .Case("cf_consumed", true) |
| .Case("cf_returns_not_retained", true) |
| .Case("cf_returns_retained", true) |
| .Case("cf_unknown_transfer", true) |
| .Case("constant", true) |
| .Case("device", true) |
| .Case("global", true) |
| .Case("host", true) |
| .Case("launch_bounds", true) |
| .Case("shared", true) |
| .Case("noreturn", true) |
| .Case("callable_when", true) |
| .Case("capability", true) |
| .Case("capability", true) |
| .Case("shared_capability", true) |
| .Case("shared_capability", true) |
| .Case("carries_dependency", true) |
| .Case("carries_dependency", true) |
| .Case("cleanup", true) |
| .Case("cleanup", true) |
| .Case("cold", true) |
| .Case("cold", true) |
| .Case("common", true) |
| .Case("common", true) |
| .Case("const", true) |
| .Case("const", true) |
| .Case("__const", true) |
| .Case("__const", true) |
| .Case("constructor", true) |
| .Case("constructor", true) |
| .Case("consumable", true) |
| .Case("consumable_auto_cast_state", true) |
| .Case("consumable_set_state_on_read", true) |
| .Case("dllexport", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32)) |
| .Case("dllexport", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32)) |
| .Case("dllexport", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32)) |
| .Case("dllimport", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32)) |
| .Case("dllimport", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32)) |
| .Case("dllimport", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32)) |
| .Case("deprecated", true) |
| .Case("deprecated", true) |
| .Case("deprecated", true) |
| .Case("deprecated", true) |
| .Case("destructor", true) |
| .Case("destructor", true) |
| .Case("enable_if", true) |
| .Case("exclusive_trylock_function", true) |
| .Case("ext_vector_type", true) |
| .Case("fallthrough", true) |
| .Case("fastcall", true) |
| .Case("fastcall", true) |
| .Case("__fastcall", true) |
| .Case("_fastcall", true) |
| .Case("final", true) |
| .Case("sealed", true) |
| .Case("flatten", true) |
| .Case("flatten", true) |
| .Case("format", true) |
| .Case("format", true) |
| .Case("format_arg", true) |
| .Case("format_arg", true) |
| .Case("gnu_inline", true) |
| .Case("gnu_inline", true) |
| .Case("guarded_by", true) |
| .Case("guarded_var", true) |
| .Case("hot", true) |
| .Case("hot", true) |
| .Case("ibaction", true) |
| .Case("iboutlet", true) |
| .Case("iboutletcollection", true) |
| .Case("init_priority", true) |
| .Case("init_seg", true) |
| .Case("intel_ocl_bicc", true) |
| .Case("lock_returned", true) |
| .Case("lockable", true) |
| .Case("locks_excluded", true) |
| .Case("loop", true) |
| .Case("unroll", true) |
| .Case("ms_abi", true) |
| .Case("ms_abi", true) |
| .Case("__single_inheritance", true) |
| .Case("__multiple_inheritance", true) |
| .Case("__virtual_inheritance", true) |
| .Case("__unspecified_inheritance", true) |
| .Case("interrupt", (T.getArch() == llvm::Triple::msp430)) |
| .Case("malloc", true) |
| .Case("malloc", true) |
| .Case("may_alias", true) |
| .Case("may_alias", true) |
| .Case("minsize", true) |
| .Case("mips16", (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel)) |
| .Case("mips16", (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel)) |
| .Case("mode", true) |
| .Case("mode", true) |
| .Case("property", true) |
| .Case("ms_struct", true) |
| .Case("ms_struct", true) |
| .Case("ns_consumed", true) |
| .Case("ns_consumes_self", true) |
| .Case("ns_returns_autoreleased", true) |
| .Case("ns_returns_not_retained", true) |
| .Case("ns_returns_retained", true) |
| .Case("naked", true) |
| .Case("naked", true) |
| .Case("naked", true) |
| .Case("neon_polyvector_type", true) |
| .Case("neon_vector_type", true) |
| .Case("nocommon", true) |
| .Case("nocommon", true) |
| .Case("nodebug", true) |
| .Case("noduplicate", true) |
| .Case("noduplicate", true) |
| .Case("noinline", true) |
| .Case("noinline", true) |
| .Case("noinline", true) |
| .Case("no_instrument_function", true) |
| .Case("no_instrument_function", true) |
| .Case("nomips16", (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel)) |
| .Case("nomips16", (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel)) |
| .Case("noreturn", true) |
| .Case("noreturn", true) |
| .Case("noreturn", true) |
| .Case("no_address_safety_analysis", true) |
| .Case("no_address_safety_analysis", true) |
| .Case("no_sanitize_address", true) |
| .Case("no_sanitize_address", true) |
| .Case("no_sanitize_memory", true) |
| .Case("no_sanitize_thread", true) |
| .Case("no_split_stack", true) |
| .Case("no_split_stack", true) |
| .Case("no_thread_safety_analysis", true) |
| .Case("nothrow", true) |
| .Case("nothrow", true) |
| .Case("nothrow", true) |
| .Case("nonnull", true) |
| .Case("nonnull", true) |
| .Case("objc_bridge", true) |
| .Case("objc_bridge_mutable", true) |
| .Case("objc_bridge_related", true) |
| .Case("objc_designated_initializer", true) |
| .Case("objc_exception", true) |
| .Case("objc_protocol_requires_explicit_implementation", true) |
| .Case("objc_gc", true) |
| .Case("objc_method_family", true) |
| .Case("NSObject", true) |
| .Case("objc_ownership", true) |
| .Case("objc_precise_lifetime", true) |
| .Case("objc_requires_property_definitions", true) |
| .Case("objc_requires_super", true) |
| .Case("objc_returns_inner_pointer", true) |
| .Case("objc_root_class", true) |
| .Case("objc_runtime_name", true) |
| .Case("__constant", true) |
| .Case("constant", true) |
| .Case("__global", true) |
| .Case("global", true) |
| .Case("__read_only", true) |
| .Case("read_only", true) |
| .Case("__write_only", true) |
| .Case("write_only", true) |
| .Case("__read_write", true) |
| .Case("read_write", true) |
| .Case("__kernel", true) |
| .Case("kernel", true) |
| .Case("__local", true) |
| .Case("local", true) |
| .Case("__private", true) |
| .Case("private", true) |
| .Case("optnone", true) |
| .Case("optnone", true) |
| .Case("overloadable", true) |
| .Case("override", true) |
| .Case("ownership_holds", true) |
| .Case("ownership_returns", true) |
| .Case("ownership_takes", true) |
| .Case("packed", true) |
| .Case("packed", true) |
| .Case("param_typestate", true) |
| .Case("pascal", true) |
| .Case("__pascal", true) |
| .Case("_pascal", true) |
| .Case("pcs", true) |
| .Case("pcs", true) |
| .Case("pnaclcall", true) |
| .Case("pt_guarded_by", true) |
| .Case("pt_guarded_var", true) |
| .Case("__ptr32", true) |
| .Case("__ptr64", true) |
| .Case("pure", true) |
| .Case("pure", true) |
| .Case("regparm", true) |
| .Case("regparm", true) |
| .Case("release_capability", true) |
| .Case("release_capability", true) |
| .Case("release_shared_capability", true) |
| .Case("release_shared_capability", true) |
| .Case("release_generic_capability", true) |
| .Case("release_generic_capability", true) |
| .Case("unlock_function", true) |
| .Case("reqd_work_group_size", true) |
| .Case("requires_capability", true) |
| .Case("requires_capability", true) |
| .Case("exclusive_locks_required", true) |
| .Case("requires_shared_capability", true) |
| .Case("requires_shared_capability", true) |
| .Case("shared_locks_required", true) |
| .Case("return_typestate", true) |
| .Case("returns_nonnull", true) |
| .Case("returns_nonnull", true) |
| .Case("returns_twice", true) |
| .Case("returns_twice", true) |
| .Case("__sptr", true) |
| .Case("scoped_lockable", true) |
| .Case("section", true) |
| .Case("section", true) |
| .Case("allocate", true) |
| .Case("selectany", true) |
| .Case("sentinel", true) |
| .Case("sentinel", true) |
| .Case("set_typestate", true) |
| .Case("shared_trylock_function", true) |
| .Case("stdcall", true) |
| .Case("stdcall", true) |
| .Case("__stdcall", true) |
| .Case("_stdcall", true) |
| .Case("sysv_abi", true) |
| .Case("sysv_abi", true) |
| .Case("tls_model", true) |
| .Case("tls_model", true) |
| .Case("test_typestate", true) |
| .Case("thiscall", true) |
| .Case("thiscall", true) |
| .Case("__thiscall", true) |
| .Case("_thiscall", true) |
| .Case("thread", true) |
| .Case("transparent_union", true) |
| .Case("transparent_union", true) |
| .Case("try_acquire_capability", true) |
| .Case("try_acquire_capability", true) |
| .Case("try_acquire_shared_capability", true) |
| .Case("try_acquire_shared_capability", true) |
| .Case("type_tag_for_datatype", true) |
| .Case("type_visibility", true) |
| .Case("type_visibility", true) |
| .Case("__uptr", true) |
| .Case("__unaligned", true) |
| .Case("unavailable", true) |
| .Case("unused", true) |
| .Case("unused", true) |
| .Case("used", true) |
| .Case("used", true) |
| .Case("uuid", true) |
| .Case("vecreturn", true) |
| .Case("vec_type_hint", true) |
| .Case("vector_size", true) |
| .Case("vector_size", true) |
| .Case("visibility", true) |
| .Case("visibility", true) |
| .Case("warn_unused", true) |
| .Case("warn_unused_result", true) |
| .Case("warn_unused_result", true) |
| .Case("warn_unused_result", true) |
| .Case("weak", true) |
| .Case("weak", true) |
| .Case("weak_import", true) |
| .Case("weakref", true) |
| .Case("weakref", true) |
| .Case("__w64", true) |
| .Case("work_group_size_hint", true) |
| .Case("force_align_arg_pointer", (T.getArch() == llvm::Triple::x86)) |
| .Default(false); |
| case AttrSyntax::GNU: |
| return llvm::StringSwitch<bool>(Name) |
| .Case("interrupt", (T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb)) |
| .Case("acquire_capability", true) |
| .Case("acquire_shared_capability", true) |
| .Case("exclusive_lock_function", true) |
| .Case("shared_lock_function", true) |
| .Case("acquire_capability", true) |
| .Case("acquire_shared_capability", true) |
| .Case("exclusive_lock_function", true) |
| .Case("shared_lock_function", true) |
| .Case("acquire_capability", true) |
| .Case("acquire_shared_capability", true) |
| .Case("exclusive_lock_function", true) |
| .Case("shared_lock_function", true) |
| .Case("acquire_capability", true) |
| .Case("acquire_shared_capability", true) |
| .Case("exclusive_lock_function", true) |
| .Case("shared_lock_function", true) |
| .Case("acquired_after", true) |
| .Case("acquired_before", true) |
| .Case("address_space", true) |
| .Case("alias", true) |
| .Case("aligned", true) |
| .Case("always_inline", true) |
| .Case("analyzer_noreturn", true) |
| .Case("annotate", true) |
| .Case("objc_arc_weak_reference_unavailable", true) |
| .Case("argument_with_type_tag", true) |
| .Case("pointer_with_type_tag", true) |
| .Case("argument_with_type_tag", true) |
| .Case("pointer_with_type_tag", true) |
| .Case("assert_capability", true) |
| .Case("assert_shared_capability", true) |
| .Case("assert_capability", true) |
| .Case("assert_shared_capability", true) |
| .Case("assert_exclusive_lock", true) |
| .Case("assert_shared_lock", true) |
| .Case("availability", true) |
| .Case("blocks", true) |
| .Case("bounded", true) |
| .Case("cdecl", true) |
| .Case("cf_audited_transfer", true) |
| .Case("cf_consumed", true) |
| .Case("cf_returns_not_retained", true) |
| .Case("cf_returns_retained", true) |
| .Case("cf_unknown_transfer", true) |
| .Case("constant", true) |
| .Case("device", true) |
| .Case("global", true) |
| .Case("host", true) |
| .Case("launch_bounds", true) |
| .Case("shared", true) |
| .Case("callable_when", true) |
| .Case("capability", true) |
| .Case("shared_capability", true) |
| .Case("capability", true) |
| .Case("shared_capability", true) |
| .Case("carries_dependency", true) |
| .Case("cleanup", true) |
| .Case("cold", true) |
| .Case("common", true) |
| .Case("const", true) |
| .Case("__const", true) |
| .Case("const", true) |
| .Case("__const", true) |
| .Case("constructor", true) |
| .Case("consumable", true) |
| .Case("consumable_auto_cast_state", true) |
| .Case("consumable_set_state_on_read", true) |
| .Case("dllexport", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32)) |
| .Case("dllimport", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32)) |
| .Case("deprecated", true) |
| .Case("destructor", true) |
| .Case("enable_if", true) |
| .Case("exclusive_trylock_function", true) |
| .Case("ext_vector_type", true) |
| .Case("fastcall", true) |
| .Case("flatten", true) |
| .Case("format", true) |
| .Case("format_arg", true) |
| .Case("gnu_inline", true) |
| .Case("guarded_by", true) |
| .Case("guarded_var", true) |
| .Case("hot", true) |
| .Case("ibaction", true) |
| .Case("iboutlet", true) |
| .Case("iboutletcollection", true) |
| .Case("init_priority", true) |
| .Case("intel_ocl_bicc", true) |
| .Case("lock_returned", true) |
| .Case("lockable", true) |
| .Case("locks_excluded", true) |
| .Case("ms_abi", true) |
| .Case("interrupt", (T.getArch() == llvm::Triple::msp430)) |
| .Case("malloc", true) |
| .Case("may_alias", true) |
| .Case("minsize", true) |
| .Case("mips16", (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel)) |
| .Case("mode", true) |
| .Case("ms_struct", true) |
| .Case("ns_consumed", true) |
| .Case("ns_consumes_self", true) |
| .Case("ns_returns_autoreleased", true) |
| .Case("ns_returns_not_retained", true) |
| .Case("ns_returns_retained", true) |
| .Case("naked", true) |
| .Case("neon_polyvector_type", true) |
| .Case("neon_vector_type", true) |
| .Case("nocommon", true) |
| .Case("nodebug", true) |
| .Case("noduplicate", true) |
| .Case("noinline", true) |
| .Case("no_instrument_function", true) |
| .Case("nomips16", (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel)) |
| .Case("noreturn", true) |
| .Case("no_address_safety_analysis", true) |
| .Case("no_sanitize_address", true) |
| .Case("no_address_safety_analysis", true) |
| .Case("no_sanitize_address", true) |
| .Case("no_sanitize_memory", true) |
| .Case("no_sanitize_thread", true) |
| .Case("no_split_stack", true) |
| .Case("no_thread_safety_analysis", true) |
| .Case("nothrow", true) |
| .Case("nonnull", true) |
| .Case("objc_bridge", true) |
| .Case("objc_bridge_mutable", true) |
| .Case("objc_bridge_related", true) |
| .Case("objc_designated_initializer", true) |
| .Case("objc_exception", true) |
| .Case("objc_protocol_requires_explicit_implementation", true) |
| .Case("objc_gc", true) |
| .Case("objc_method_family", true) |
| .Case("NSObject", true) |
| .Case("objc_ownership", true) |
| .Case("objc_precise_lifetime", true) |
| .Case("objc_requires_property_definitions", true) |
| .Case("objc_requires_super", true) |
| .Case("objc_returns_inner_pointer", true) |
| .Case("objc_root_class", true) |
| .Case("objc_runtime_name", true) |
| .Case("optnone", true) |
| .Case("overloadable", true) |
| .Case("ownership_holds", true) |
| .Case("ownership_returns", true) |
| .Case("ownership_takes", true) |
| .Case("ownership_holds", true) |
| .Case("ownership_returns", true) |
| .Case("ownership_takes", true) |
| .Case("ownership_holds", true) |
| .Case("ownership_returns", true) |
| .Case("ownership_takes", true) |
| .Case("packed", true) |
| .Case("param_typestate", true) |
| .Case("pascal", true) |
| .Case("pcs", true) |
| .Case("pnaclcall", true) |
| .Case("pt_guarded_by", true) |
| .Case("pt_guarded_var", true) |
| .Case("pure", true) |
| .Case("regparm", true) |
| .Case("release_capability", true) |
| .Case("release_shared_capability", true) |
| .Case("release_generic_capability", true) |
| .Case("unlock_function", true) |
| .Case("release_capability", true) |
| .Case("release_shared_capability", true) |
| .Case("release_generic_capability", true) |
| .Case("unlock_function", true) |
| .Case("release_capability", true) |
| .Case("release_shared_capability", true) |
| .Case("release_generic_capability", true) |
| .Case("unlock_function", true) |
| .Case("release_capability", true) |
| .Case("release_shared_capability", true) |
| .Case("release_generic_capability", true) |
| .Case("unlock_function", true) |
| .Case("reqd_work_group_size", true) |
| .Case("requires_capability", true) |
| .Case("exclusive_locks_required", true) |
| .Case("requires_shared_capability", true) |
| .Case("shared_locks_required", true) |
| .Case("requires_capability", true) |
| .Case("exclusive_locks_required", true) |
| .Case("requires_shared_capability", true) |
| .Case("shared_locks_required", true) |
| .Case("requires_capability", true) |
| .Case("exclusive_locks_required", true) |
| .Case("requires_shared_capability", true) |
| .Case("shared_locks_required", true) |
| .Case("requires_capability", true) |
| .Case("exclusive_locks_required", true) |
| .Case("requires_shared_capability", true) |
| .Case("shared_locks_required", true) |
| .Case("return_typestate", true) |
| .Case("returns_nonnull", true) |
| .Case("returns_twice", true) |
| .Case("scoped_lockable", true) |
| .Case("section", true) |
| .Case("sentinel", true) |
| .Case("set_typestate", true) |
| .Case("shared_trylock_function", true) |
| .Case("stdcall", true) |
| .Case("sysv_abi", true) |
| .Case("tls_model", true) |
| .Case("test_typestate", true) |
| .Case("thiscall", true) |
| .Case("transparent_union", true) |
| .Case("try_acquire_capability", true) |
| .Case("try_acquire_shared_capability", true) |
| .Case("try_acquire_capability", true) |
| .Case("try_acquire_shared_capability", true) |
| .Case("type_tag_for_datatype", true) |
| .Case("type_visibility", true) |
| .Case("unavailable", true) |
| .Case("unused", true) |
| .Case("used", true) |
| .Case("vecreturn", true) |
| .Case("vec_type_hint", true) |
| .Case("vector_size", true) |
| .Case("visibility", true) |
| .Case("warn_unused", true) |
| .Case("warn_unused_result", true) |
| .Case("weak", true) |
| .Case("weak_import", true) |
| .Case("weakref", true) |
| .Case("work_group_size_hint", true) |
| .Case("force_align_arg_pointer", (T.getArch() == llvm::Triple::x86)) |
| .Default(false); |
| case AttrSyntax::Declspec: |
| return llvm::StringSwitch<bool>(Name) |
| .Case("align", true) |
| .Case("dllexport", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32)) |
| .Case("dllimport", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32)) |
| .Case("deprecated", true) |
| .Case("property", true) |
| .Case("naked", true) |
| .Case("noinline", true) |
| .Case("noreturn", true) |
| .Case("nothrow", true) |
| .Case("allocate", true) |
| .Case("selectany", true) |
| .Case("thread", true) |
| .Case("uuid", true) |
| .Default(false); |
| case AttrSyntax::Pragma: |
| return llvm::StringSwitch<bool>(Name) |
| .Case("init_seg", true) |
| .Case("loop", true) |
| .Case("unroll", true) |
| .Case("loop", true) |
| .Case("unroll", true) |
| .Default(false); |
| case AttrSyntax::CXX: { |
| if (!Scope || Scope->getName() == "") { |
| return llvm::StringSwitch<bool>(Name) |
| .Case("noreturn", LangOpts.CPlusPlus11) |
| .Case("carries_dependency", LangOpts.CPlusPlus11) |
| .Case("deprecated", LangOpts.CPlusPlus11) |
| .Case("deprecated", LangOpts.CPlusPlus11) |
| .Default(false); |
| } else if (Scope->getName() == "clang") { |
| return llvm::StringSwitch<bool>(Name) |
| .Case("acquire_capability", LangOpts.CPlusPlus11) |
| .Case("acquire_shared_capability", LangOpts.CPlusPlus11) |
| .Case("acquire_capability", LangOpts.CPlusPlus11) |
| .Case("acquire_shared_capability", LangOpts.CPlusPlus11) |
| .Case("assert_capability", LangOpts.CPlusPlus11) |
| .Case("assert_shared_capability", LangOpts.CPlusPlus11) |
| .Case("assert_capability", LangOpts.CPlusPlus11) |
| .Case("assert_shared_capability", LangOpts.CPlusPlus11) |
| .Case("capability", LangOpts.CPlusPlus11) |
| .Case("shared_capability", LangOpts.CPlusPlus11) |
| .Case("capability", LangOpts.CPlusPlus11) |
| .Case("shared_capability", LangOpts.CPlusPlus11) |
| .Case("fallthrough", LangOpts.CPlusPlus11) |
| .Case("noduplicate", LangOpts.CPlusPlus11) |
| .Case("optnone", LangOpts.CPlusPlus11) |
| .Case("release_capability", LangOpts.CPlusPlus11) |
| .Case("release_shared_capability", LangOpts.CPlusPlus11) |
| .Case("release_generic_capability", LangOpts.CPlusPlus11) |
| .Case("release_capability", LangOpts.CPlusPlus11) |
| .Case("release_shared_capability", LangOpts.CPlusPlus11) |
| .Case("release_generic_capability", LangOpts.CPlusPlus11) |
| .Case("release_capability", LangOpts.CPlusPlus11) |
| .Case("release_shared_capability", LangOpts.CPlusPlus11) |
| .Case("release_generic_capability", LangOpts.CPlusPlus11) |
| .Case("requires_capability", LangOpts.CPlusPlus11) |
| .Case("requires_shared_capability", LangOpts.CPlusPlus11) |
| .Case("requires_capability", LangOpts.CPlusPlus11) |
| .Case("requires_shared_capability", LangOpts.CPlusPlus11) |
| .Case("try_acquire_capability", LangOpts.CPlusPlus11) |
| .Case("try_acquire_shared_capability", LangOpts.CPlusPlus11) |
| .Case("try_acquire_capability", LangOpts.CPlusPlus11) |
| .Case("try_acquire_shared_capability", LangOpts.CPlusPlus11) |
| .Case("type_visibility", LangOpts.CPlusPlus11) |
| .Case("warn_unused_result", LangOpts.CPlusPlus11) |
| .Default(false); |
| } else if (Scope->getName() == "gnu") { |
| return llvm::StringSwitch<bool>(Name) |
| .Case("alias", LangOpts.CPlusPlus11) |
| .Case("aligned", LangOpts.CPlusPlus11) |
| .Case("always_inline", LangOpts.CPlusPlus11) |
| .Case("cdecl", LangOpts.CPlusPlus11) |
| .Case("cleanup", LangOpts.CPlusPlus11) |
| .Case("cold", LangOpts.CPlusPlus11) |
| .Case("common", LangOpts.CPlusPlus11) |
| .Case("const", LangOpts.CPlusPlus11) |
| .Case("__const", LangOpts.CPlusPlus11) |
| .Case("const", LangOpts.CPlusPlus11) |
| .Case("__const", LangOpts.CPlusPlus11) |
| .Case("constructor", LangOpts.CPlusPlus11) |
| .Case("dllexport", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32) && LangOpts.CPlusPlus11) |
| .Case("dllimport", (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb) && (T.getOS() == llvm::Triple::Win32) && LangOpts.CPlusPlus11) |
| .Case("deprecated", LangOpts.CPlusPlus11) |
| .Case("destructor", LangOpts.CPlusPlus11) |
| .Case("fastcall", LangOpts.CPlusPlus11) |
| .Case("flatten", LangOpts.CPlusPlus11) |
| .Case("format", LangOpts.CPlusPlus11) |
| .Case("format_arg", LangOpts.CPlusPlus11) |
| .Case("gnu_inline", LangOpts.CPlusPlus11) |
| .Case("hot", LangOpts.CPlusPlus11) |
| .Case("ms_abi", LangOpts.CPlusPlus11) |
| .Case("malloc", LangOpts.CPlusPlus11) |
| .Case("may_alias", LangOpts.CPlusPlus11) |
| .Case("mips16", (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11) |
| .Case("mode", LangOpts.CPlusPlus11) |
| .Case("ms_struct", LangOpts.CPlusPlus11) |
| .Case("naked", LangOpts.CPlusPlus11) |
| .Case("nocommon", LangOpts.CPlusPlus11) |
| .Case("noinline", LangOpts.CPlusPlus11) |
| .Case("no_instrument_function", LangOpts.CPlusPlus11) |
| .Case("nomips16", (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11) |
| .Case("noreturn", LangOpts.CPlusPlus11) |
| .Case("no_address_safety_analysis", LangOpts.CPlusPlus11) |
| .Case("no_sanitize_address", LangOpts.CPlusPlus11) |
| .Case("no_address_safety_analysis", LangOpts.CPlusPlus11) |
| .Case("no_sanitize_address", LangOpts.CPlusPlus11) |
| .Case("no_split_stack", LangOpts.CPlusPlus11) |
| .Case("nothrow", LangOpts.CPlusPlus11) |
| .Case("nonnull", LangOpts.CPlusPlus11) |
| .Case("packed", LangOpts.CPlusPlus11) |
| .Case("pcs", LangOpts.CPlusPlus11) |
| .Case("pure", LangOpts.CPlusPlus11) |
| .Case("regparm", LangOpts.CPlusPlus11) |
| .Case("returns_nonnull", LangOpts.CPlusPlus11) |
| .Case("returns_twice", LangOpts.CPlusPlus11) |
| .Case("section", LangOpts.CPlusPlus11) |
| .Case("sentinel", LangOpts.CPlusPlus11) |
| .Case("stdcall", LangOpts.CPlusPlus11) |
| .Case("sysv_abi", LangOpts.CPlusPlus11) |
| .Case("tls_model", LangOpts.CPlusPlus11) |
| .Case("thiscall", LangOpts.CPlusPlus11) |
| .Case("transparent_union", LangOpts.CPlusPlus11) |
| .Case("unused", LangOpts.CPlusPlus11) |
| .Case("used", LangOpts.CPlusPlus11) |
| .Case("vector_size", LangOpts.CPlusPlus11) |
| .Case("visibility", LangOpts.CPlusPlus11) |
| .Case("warn_unused_result", LangOpts.CPlusPlus11) |
| .Case("weak", LangOpts.CPlusPlus11) |
| .Case("weakref", LangOpts.CPlusPlus11) |
| .Default(false); |
| } |
| } |
| } |