LCOV - code coverage report
Current view: top level - build-llvm/tools/clang/include/clang/Basic - AttrHasAttributeImpl.inc (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 734 767 95.7 %
Date: 2018-10-20 13:21:21 Functions: 0 0 -
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
       2             : |*                                                                            *|
       3             : |* Code to implement the __has_attribute logic                                *|
       4             : |*                                                                            *|
       5             : |* Automatically generated file, do not edit!                                 *|
       6             : |*                                                                            *|
       7             : \*===----------------------------------------------------------------------===*/
       8             : 
       9             : const llvm::Triple &T = Target.getTriple();
      10       71262 : switch (Syntax) {
      11       59105 : case AttrSyntax::GNU:
      12       59105 :   return llvm::StringSwitch<int>(Name)
      13       59105 :     .Case("amdgpu_flat_work_group_size", 1)
      14       59105 :     .Case("amdgpu_num_sgpr", 1)
      15       59105 :     .Case("amdgpu_num_vgpr", 1)
      16       59105 :     .Case("amdgpu_waves_per_eu", 1)
      17       59105 :     .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)
      18       59105 :     .Case("interrupt", true && (T.getArch() == llvm::Triple::avr) ? 1 : 0)
      19      118210 :     .Case("signal", true && (T.getArch() == llvm::Triple::avr) ? 1 : 0)
      20       59105 :     .Case("abi_tag", 1)
      21       59105 :     .Case("acquire_capability", 1)
      22       59105 :     .Case("acquire_shared_capability", 1)
      23       59105 :     .Case("exclusive_lock_function", 1)
      24       59105 :     .Case("shared_lock_function", 1)
      25       59105 :     .Case("acquire_capability", 1)
      26       59105 :     .Case("acquire_shared_capability", 1)
      27       59105 :     .Case("exclusive_lock_function", 1)
      28       59105 :     .Case("shared_lock_function", 1)
      29       59105 :     .Case("acquire_capability", 1)
      30       59105 :     .Case("acquire_shared_capability", 1)
      31       59105 :     .Case("exclusive_lock_function", 1)
      32       59105 :     .Case("shared_lock_function", 1)
      33       59105 :     .Case("acquire_capability", 1)
      34       59105 :     .Case("acquire_shared_capability", 1)
      35       59105 :     .Case("exclusive_lock_function", 1)
      36       59105 :     .Case("shared_lock_function", 1)
      37       59105 :     .Case("acquired_after", 1)
      38       59105 :     .Case("acquired_before", 1)
      39       59105 :     .Case("address_space", 1)
      40       59105 :     .Case("alias", 1)
      41       59105 :     .Case("align_value", 1)
      42       59105 :     .Case("aligned", 1)
      43       59105 :     .Case("alloc_align", 1)
      44       59105 :     .Case("alloc_size", 1)
      45       59105 :     .Case("always_destroy", 1)
      46       59105 :     .Case("always_inline", 1)
      47       59105 :     .Case("analyzer_noreturn", 1)
      48       59105 :     .Case("annotate", 1)
      49       59105 :     .Case("interrupt", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0)
      50       59105 :     .Case("no_caller_saved_registers", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0)
      51      118210 :     .Case("nocf_check", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0)
      52       59105 :     .Case("objc_arc_weak_reference_unavailable", 1)
      53       59105 :     .Case("argument_with_type_tag", 1)
      54       59105 :     .Case("pointer_with_type_tag", 1)
      55       59105 :     .Case("argument_with_type_tag", 1)
      56       59105 :     .Case("pointer_with_type_tag", 1)
      57       59105 :     .Case("artificial", 1)
      58       59105 :     .Case("assert_capability", 1)
      59       59105 :     .Case("assert_shared_capability", 1)
      60       59105 :     .Case("assert_capability", 1)
      61       59105 :     .Case("assert_shared_capability", 1)
      62       59105 :     .Case("assert_exclusive_lock", 1)
      63       59105 :     .Case("assert_shared_lock", 1)
      64       59105 :     .Case("assume_aligned", 1)
      65       59105 :     .Case("availability", 1)
      66       59105 :     .Case("blocks", 1)
      67       59105 :     .Case("bounded", 1)
      68       59105 :     .Case("cdecl", 1)
      69       59105 :     .Case("cf_audited_transfer", 1)
      70       59105 :     .Case("cf_consumed", 1)
      71      118210 :     .Case("cf_returns_not_retained", 1)
      72       59105 :     .Case("cf_returns_retained", 1)
      73       59105 :     .Case("cf_unknown_transfer", 1)
      74       59105 :     .Case("cpu_dispatch", 1)
      75       59105 :     .Case("cpu_specific", 1)
      76       59105 :     .Case("constant", 1)
      77       59105 :     .Case("cudart_builtin", 1)
      78       59105 :     .Case("device", 1)
      79       59105 :     .Case("device_builtin", 1)
      80       59105 :     .Case("device_builtin_surface_type", 1)
      81       59105 :     .Case("device_builtin_texture_type", 1)
      82       59105 :     .Case("global", 1)
      83       59105 :     .Case("host", 1)
      84       59105 :     .Case("launch_bounds", 1)
      85       59105 :     .Case("shared", 1)
      86       59105 :     .Case("callable_when", 1)
      87       59105 :     .Case("capability", 1)
      88       59105 :     .Case("shared_capability", 1)
      89       59105 :     .Case("capability", 1)
      90       59105 :     .Case("shared_capability", 1)
      91       59105 :     .Case("carries_dependency", 1)
      92       59105 :     .Case("cleanup", 1)
      93       59105 :     .Case("cold", 1)
      94       59105 :     .Case("common", 1)
      95       59105 :     .Case("const", 1)
      96       59105 :     .Case("__const", 1)
      97       59105 :     .Case("const", 1)
      98       59105 :     .Case("__const", 1)
      99       59105 :     .Case("constructor", 1)
     100       59105 :     .Case("consumable", 1)
     101       59105 :     .Case("consumable_auto_cast_state", 1)
     102       59105 :     .Case("consumable_set_state_on_read", 1)
     103       59105 :     .Case("convergent", 1)
     104       59105 :     .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)
     105      118210 :     .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)
     106       59105 :     .Case("deprecated", 1)
     107       59105 :     .Case("destructor", 1)
     108       59105 :     .Case("diagnose_if", 1)
     109       59105 :     .Case("disable_tail_calls", 1)
     110       59105 :     .Case("enable_if", 1)
     111       59105 :     .Case("enum_extensibility", 1)
     112       59105 :     .Case("exclude_from_explicit_instantiation", 1)
     113       59105 :     .Case("exclusive_trylock_function", 1)
     114       59105 :     .Case("ext_vector_type", 1)
     115       59105 :     .Case("external_source_symbol", 1)
     116       59105 :     .Case("fastcall", 1)
     117       59105 :     .Case("flag_enum", 1)
     118       59105 :     .Case("flatten", 1)
     119       59105 :     .Case("format", 1)
     120       59105 :     .Case("format_arg", 1)
     121       59105 :     .Case("gnu_inline", 1)
     122       59105 :     .Case("guarded_by", 1)
     123       59105 :     .Case("guarded_var", 1)
     124       59105 :     .Case("hot", 1)
     125       59105 :     .Case("ibaction", 1)
     126       59105 :     .Case("iboutlet", 1)
     127       59105 :     .Case("iboutletcollection", 1)
     128      118210 :     .Case("ifunc", true && (T.getObjectFormat() == llvm::Triple::ELF) ? 1 : 0)
     129       59105 :     .Case("init_priority", 1)
     130       59105 :     .Case("intel_ocl_bicc", 1)
     131       59105 :     .Case("internal_linkage", 1)
     132       59105 :     .Case("lto_visibility_public", 1)
     133       59105 :     .Case("lifetimebound", 1)
     134       59105 :     .Case("lock_returned", 1)
     135       59105 :     .Case("lockable", 1)
     136       59105 :     .Case("locks_excluded", 1)
     137       59105 :     .Case("ms_abi", 1)
     138      118210 :     .Case("interrupt", true && (T.getArch() == llvm::Triple::msp430) ? 1 : 0)
     139       59105 :     .Case("ms_struct", 1)
     140       59105 :     .Case("may_alias", 1)
     141      118210 :     .Case("micromips", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0)
     142       59105 :     .Case("minsize", 1)
     143       59105 :     .Case("min_vector_width", 1)
     144       59105 :     .Case("mips16", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0)
     145       59105 :     .Case("interrupt", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0)
     146       59105 :     .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)
     147       59105 :     .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)
     148       59105 :     .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)
     149       59105 :     .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)
     150       59105 :     .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)
     151       59105 :     .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)
     152       59105 :     .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)
     153      118210 :     .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)
     154       59105 :     .Case("mode", 1)
     155       59105 :     .Case("ns_consumed", 1)
     156       59105 :     .Case("ns_consumes_self", 1)
     157       59105 :     .Case("ns_returns_autoreleased", 1)
     158       59105 :     .Case("ns_returns_not_retained", 1)
     159       59105 :     .Case("ns_returns_retained", 1)
     160       59105 :     .Case("naked", 1)
     161       59105 :     .Case("neon_polyvector_type", 1)
     162       59105 :     .Case("neon_vector_type", 1)
     163       59105 :     .Case("nocommon", 1)
     164       59105 :     .Case("nodebug", 1)
     165       59105 :     .Case("no_destroy", 1)
     166       59105 :     .Case("noduplicate", 1)
     167       59105 :     .Case("noescape", 1)
     168       59105 :     .Case("noinline", 1)
     169       59105 :     .Case("no_instrument_function", 1)
     170       59105 :     .Case("nomicromips", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0)
     171      118210 :     .Case("nomips16", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0)
     172       59105 :     .Case("noreturn", 1)
     173       59105 :     .Case("no_sanitize", 1)
     174       59105 :     .Case("no_address_safety_analysis", 1)
     175       59105 :     .Case("no_sanitize_address", 1)
     176       59105 :     .Case("no_sanitize_thread", 1)
     177       59105 :     .Case("no_sanitize_memory", 1)
     178       59105 :     .Case("no_address_safety_analysis", 1)
     179       59105 :     .Case("no_sanitize_address", 1)
     180       59105 :     .Case("no_sanitize_thread", 1)
     181       59105 :     .Case("no_sanitize_memory", 1)
     182       59105 :     .Case("no_address_safety_analysis", 1)
     183       59105 :     .Case("no_sanitize_address", 1)
     184       59105 :     .Case("no_sanitize_thread", 1)
     185       59105 :     .Case("no_sanitize_memory", 1)
     186       59105 :     .Case("no_address_safety_analysis", 1)
     187       59105 :     .Case("no_sanitize_address", 1)
     188       59105 :     .Case("no_sanitize_thread", 1)
     189       59105 :     .Case("no_sanitize_memory", 1)
     190       59105 :     .Case("no_split_stack", 1)
     191       59105 :     .Case("no_stack_protector", 1)
     192       59105 :     .Case("no_thread_safety_analysis", 1)
     193       59105 :     .Case("nothrow", 1)
     194       59105 :     .Case("nonnull", 1)
     195       59105 :     .Case("not_tail_called", 1)
     196       59105 :     .Case("nv_weak", 1)
     197       59105 :     .Case("objc_boxable", 1)
     198       59105 :     .Case("objc_bridge", 1)
     199       59105 :     .Case("objc_bridge_mutable", 1)
     200       59105 :     .Case("objc_bridge_related", 1)
     201       59105 :     .Case("objc_designated_initializer", 1)
     202       59105 :     .Case("objc_exception", 1)
     203       59105 :     .Case("objc_protocol_requires_explicit_implementation", 1)
     204       59105 :     .Case("objc_gc", 1)
     205       59105 :     .Case("objc_independent_class", 1)
     206       59105 :     .Case("objc_method_family", 1)
     207       59105 :     .Case("NSObject", 1)
     208       59105 :     .Case("objc_ownership", 1)
     209       59105 :     .Case("objc_precise_lifetime", 1)
     210       59105 :     .Case("objc_requires_property_definitions", 1)
     211       59105 :     .Case("objc_requires_super", 1)
     212       59105 :     .Case("objc_returns_inner_pointer", 1)
     213       59105 :     .Case("objc_root_class", 1)
     214       59105 :     .Case("objc_runtime_name", 1)
     215       59105 :     .Case("objc_runtime_visible", 1)
     216       59105 :     .Case("objc_subclassing_restricted", 1)
     217       59105 :     .Case("intel_reqd_sub_group_size", 1)
     218       59105 :     .Case("nosvm", 1)
     219       59105 :     .Case("opencl_unroll_hint", 1)
     220       59105 :     .Case("optnone", 1)
     221       59105 :     .Case("overloadable", 1)
     222       59105 :     .Case("ownership_holds", 1)
     223       59105 :     .Case("ownership_returns", 1)
     224       59105 :     .Case("ownership_takes", 1)
     225       59105 :     .Case("ownership_holds", 1)
     226       59105 :     .Case("ownership_returns", 1)
     227       59105 :     .Case("ownership_takes", 1)
     228       59105 :     .Case("ownership_holds", 1)
     229       59105 :     .Case("ownership_returns", 1)
     230       59105 :     .Case("ownership_takes", 1)
     231       59105 :     .Case("packed", 1)
     232       59105 :     .Case("param_typestate", 1)
     233       59105 :     .Case("pascal", 1)
     234       59105 :     .Case("pass_object_size", 1)
     235       59105 :     .Case("pcs", 1)
     236       59105 :     .Case("preserve_all", 1)
     237       59105 :     .Case("preserve_most", 1)
     238       59105 :     .Case("pt_guarded_by", 1)
     239       59105 :     .Case("pt_guarded_var", 1)
     240       59105 :     .Case("pure", 1)
     241      118210 :     .Case("interrupt", true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0)
     242       59105 :     .Case("regcall", 1)
     243       59105 :     .Case("regparm", 1)
     244       59105 :     .Case("reinitializes", 1)
     245       59105 :     .Case("release_capability", 1)
     246       59105 :     .Case("release_shared_capability", 1)
     247       59105 :     .Case("release_generic_capability", 1)
     248       59105 :     .Case("unlock_function", 1)
     249       59105 :     .Case("release_capability", 1)
     250       59105 :     .Case("release_shared_capability", 1)
     251       59105 :     .Case("release_generic_capability", 1)
     252       59105 :     .Case("unlock_function", 1)
     253       59105 :     .Case("release_capability", 1)
     254       59105 :     .Case("release_shared_capability", 1)
     255       59105 :     .Case("release_generic_capability", 1)
     256       59105 :     .Case("unlock_function", 1)
     257       59105 :     .Case("release_capability", 1)
     258       59105 :     .Case("release_shared_capability", 1)
     259       59105 :     .Case("release_generic_capability", 1)
     260       59105 :     .Case("unlock_function", 1)
     261       59105 :     .Case("kernel", 1)
     262       59105 :     .Case("reqd_work_group_size", 1)
     263       59105 :     .Case("require_constant_initialization", 1)
     264       59105 :     .Case("requires_capability", 1)
     265       59105 :     .Case("exclusive_locks_required", 1)
     266       59105 :     .Case("requires_shared_capability", 1)
     267       59105 :     .Case("shared_locks_required", 1)
     268       59105 :     .Case("requires_capability", 1)
     269       59105 :     .Case("exclusive_locks_required", 1)
     270       59105 :     .Case("requires_shared_capability", 1)
     271       59105 :     .Case("shared_locks_required", 1)
     272       59105 :     .Case("requires_capability", 1)
     273       59105 :     .Case("exclusive_locks_required", 1)
     274       59105 :     .Case("requires_shared_capability", 1)
     275       59105 :     .Case("shared_locks_required", 1)
     276       59105 :     .Case("requires_capability", 1)
     277       59105 :     .Case("exclusive_locks_required", 1)
     278       59105 :     .Case("requires_shared_capability", 1)
     279       59105 :     .Case("shared_locks_required", 1)
     280       59105 :     .Case("malloc", 1)
     281       59105 :     .Case("return_typestate", 1)
     282       59105 :     .Case("returns_nonnull", 1)
     283       59105 :     .Case("returns_twice", 1)
     284       59105 :     .Case("scoped_lockable", 1)
     285       59105 :     .Case("section", 1)
     286       59105 :     .Case("selectany", 1)
     287       59105 :     .Case("sentinel", 1)
     288       59105 :     .Case("set_typestate", 1)
     289       59105 :     .Case("shared_trylock_function", 1)
     290       59105 :     .Case("stdcall", 1)
     291       59105 :     .Case("swiftcall", 1)
     292       59105 :     .Case("swift_context", 1)
     293       59105 :     .Case("swift_error_result", 1)
     294       59105 :     .Case("swift_indirect_result", 1)
     295       59105 :     .Case("sysv_abi", 1)
     296       59105 :     .Case("tls_model", 1)
     297       59105 :     .Case("target", 1)
     298       59105 :     .Case("test_typestate", 1)
     299       59105 :     .Case("thiscall", 1)
     300       59105 :     .Case("transparent_union", 1)
     301       59105 :     .Case("trivial_abi", 1)
     302       59105 :     .Case("try_acquire_capability", 1)
     303       59105 :     .Case("try_acquire_shared_capability", 1)
     304       59105 :     .Case("try_acquire_capability", 1)
     305       59105 :     .Case("try_acquire_shared_capability", 1)
     306       59105 :     .Case("type_tag_for_datatype", 1)
     307       59105 :     .Case("type_visibility", 1)
     308       59105 :     .Case("unavailable", 1)
     309       59105 :     .Case("unused", 1)
     310       59105 :     .Case("used", 1)
     311       59105 :     .Case("vecreturn", 1)
     312       59105 :     .Case("vec_type_hint", 1)
     313       59105 :     .Case("vectorcall", 1)
     314       59105 :     .Case("vector_size", 1)
     315       59105 :     .Case("visibility", 1)
     316       59105 :     .Case("warn_unused", 1)
     317       59105 :     .Case("warn_unused_result", 1)
     318       59105 :     .Case("weak", 1)
     319       59105 :     .Case("weak_import", 1)
     320       59105 :     .Case("weakref", 1)
     321       59105 :     .Case("work_group_size_hint", 1)
     322      118210 :     .Case("force_align_arg_pointer", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0)
     323       59105 :     .Case("xray_always_instrument", 1)
     324       59105 :     .Case("xray_never_instrument", 1)
     325       59105 :     .Case("xray_always_instrument", 1)
     326       59105 :     .Case("xray_never_instrument", 1)
     327       59105 :     .Case("xray_log_args", 1)
     328             :     .Default(0);
     329        6192 : case AttrSyntax::Declspec:
     330        6192 :   return llvm::StringSwitch<int>(Name)
     331        6192 :     .Case("align", 1)
     332        6192 :     .Case("__constant__", 1)
     333        6192 :     .Case("__cudart_builtin__", 1)
     334        6192 :     .Case("__device__", 1)
     335        6192 :     .Case("__device_builtin__", 1)
     336        6192 :     .Case("__device_builtin_surface_type__", 1)
     337        6192 :     .Case("__device_builtin_texture_type__", 1)
     338        6192 :     .Case("__global__", 1)
     339        6192 :     .Case("__host__", 1)
     340        6192 :     .Case("__launch_bounds__", 1)
     341        6192 :     .Case("__shared__", 1)
     342        6192 :     .Case("code_seg", 1)
     343        6192 :     .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)
     344       12384 :     .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)
     345        6192 :     .Case("deprecated", 1)
     346        6192 :     .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)
     347        6192 :     .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)
     348       12384 :     .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)
     349        6192 :     .Case("naked", 1)
     350        6192 :     .Case("noalias", 1)
     351        6192 :     .Case("noinline", 1)
     352        6192 :     .Case("noreturn", 1)
     353        6192 :     .Case("nothrow", 1)
     354        6192 :     .Case("restrict", 1)
     355        6192 :     .Case("allocate", 1)
     356        6192 :     .Case("selectany", 1)
     357        6192 :     .Case("thread", 1)
     358        6192 :     .Case("uuid", 1)
     359        6192 :     .Case("property", 1)
     360             :     .Default(0);
     361           0 : case AttrSyntax::Microsoft:
     362           0 :   return llvm::StringSwitch<int>(Name)
     363           0 :     .Case("uuid", 1)
     364             :     .Default(0);
     365           0 : case AttrSyntax::Pragma:
     366           0 :   return llvm::StringSwitch<int>(Name)
     367           0 :     .Case("init_seg", 1)
     368           0 :     .Case("loop", 1)
     369           0 :     .Case("unroll", 1)
     370           0 :     .Case("nounroll", 1)
     371           0 :     .Case("unroll_and_jam", 1)
     372           0 :     .Case("nounroll_and_jam", 1)
     373           0 :     .Case("loop", 1)
     374           0 :     .Case("unroll", 1)
     375           0 :     .Case("nounroll", 1)
     376           0 :     .Case("unroll_and_jam", 1)
     377           0 :     .Case("nounroll_and_jam", 1)
     378           0 :     .Case("loop", 1)
     379           0 :     .Case("unroll", 1)
     380           0 :     .Case("nounroll", 1)
     381           0 :     .Case("unroll_and_jam", 1)
     382           0 :     .Case("nounroll_and_jam", 1)
     383           0 :     .Case("loop", 1)
     384           0 :     .Case("unroll", 1)
     385           0 :     .Case("nounroll", 1)
     386           0 :     .Case("unroll_and_jam", 1)
     387           0 :     .Case("nounroll_and_jam", 1)
     388           0 :     .Case("loop", 1)
     389           0 :     .Case("unroll", 1)
     390           0 :     .Case("nounroll", 1)
     391           0 :     .Case("unroll_and_jam", 1)
     392           0 :     .Case("nounroll_and_jam", 1)
     393           0 :     .Case("declare simd", 1)
     394           0 :     .Case("declare target", 1)
     395             :     .Default(0);
     396        5916 : case AttrSyntax::CXX: {
     397        5916 : if (!Scope || Scope->getName() == "") {
     398        5835 :   return llvm::StringSwitch<int>(Name)
     399        5835 :     .Case("noreturn", LangOpts.CPlusPlus11 ? 200809 : 0)
     400        5835 :     .Case("carries_dependency", LangOpts.CPlusPlus11 ? 200809 : 0)
     401        5835 :     .Case("deprecated", LangOpts.CPlusPlus11 ? 201309 : 0)
     402        5835 :     .Case("deprecated", LangOpts.CPlusPlus11 ? 201309 : 0)
     403        5835 :     .Case("fallthrough", LangOpts.CPlusPlus11 ? 201603 : 0)
     404        5835 :     .Case("fallthrough", LangOpts.CPlusPlus11 ? 201603 : 0)
     405        5835 :     .Case("maybe_unused", LangOpts.CPlusPlus11 ? 201603 : 0)
     406        5835 :     .Case("unused", LangOpts.CPlusPlus11 ? 201603 : 0)
     407        5835 :     .Case("nodiscard", LangOpts.CPlusPlus11 ? 201603 : 0)
     408        5835 :     .Case("warn_unused_result", LangOpts.CPlusPlus11 ? 201603 : 0)
     409       11670 :     .Case("warn_unused_result", LangOpts.CPlusPlus11 ? 201603 : 0)
     410             :     .Default(0);
     411          81 : } else if (Scope->getName() == "clang") {
     412          33 :   return llvm::StringSwitch<int>(Name)
     413          33 :     .Case("amdgpu_flat_work_group_size", LangOpts.CPlusPlus11 ? 1 : 0)
     414          33 :     .Case("amdgpu_num_sgpr", LangOpts.CPlusPlus11 ? 1 : 0)
     415          33 :     .Case("amdgpu_num_vgpr", LangOpts.CPlusPlus11 ? 1 : 0)
     416          33 :     .Case("amdgpu_waves_per_eu", LangOpts.CPlusPlus11 ? 1 : 0)
     417          33 :     .Case("acquire_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     418          33 :     .Case("acquire_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     419          33 :     .Case("acquire_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     420          33 :     .Case("acquire_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     421          33 :     .Case("address_space", LangOpts.CPlusPlus11 ? 1 : 0)
     422          33 :     .Case("always_destroy", LangOpts.CPlusPlus11 ? 1 : 0)
     423          33 :     .Case("annotate", LangOpts.CPlusPlus11 ? 1 : 0)
     424          33 :     .Case("objc_arc_weak_reference_unavailable", LangOpts.CPlusPlus11 ? 1 : 0)
     425          33 :     .Case("argument_with_type_tag", LangOpts.CPlusPlus11 ? 1 : 0)
     426          33 :     .Case("pointer_with_type_tag", LangOpts.CPlusPlus11 ? 1 : 0)
     427          33 :     .Case("argument_with_type_tag", LangOpts.CPlusPlus11 ? 1 : 0)
     428          33 :     .Case("pointer_with_type_tag", LangOpts.CPlusPlus11 ? 1 : 0)
     429          33 :     .Case("assert_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     430          33 :     .Case("assert_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     431          33 :     .Case("assert_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     432          33 :     .Case("assert_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     433          33 :     .Case("availability", LangOpts.CPlusPlus11 ? 1 : 0)
     434          33 :     .Case("blocks", LangOpts.CPlusPlus11 ? 1 : 0)
     435          33 :     .Case("cf_audited_transfer", LangOpts.CPlusPlus11 ? 1 : 0)
     436          33 :     .Case("cf_consumed", LangOpts.CPlusPlus11 ? 1 : 0)
     437          33 :     .Case("cf_returns_not_retained", LangOpts.CPlusPlus11 ? 1 : 0)
     438          33 :     .Case("cf_returns_retained", LangOpts.CPlusPlus11 ? 1 : 0)
     439          33 :     .Case("cf_unknown_transfer", LangOpts.CPlusPlus11 ? 1 : 0)
     440          33 :     .Case("cpu_dispatch", LangOpts.CPlusPlus11 ? 1 : 0)
     441          33 :     .Case("cpu_specific", LangOpts.CPlusPlus11 ? 1 : 0)
     442          33 :     .Case("callable_when", LangOpts.CPlusPlus11 ? 1 : 0)
     443          33 :     .Case("capability", LangOpts.CPlusPlus11 ? 1 : 0)
     444          33 :     .Case("shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     445          33 :     .Case("capability", LangOpts.CPlusPlus11 ? 1 : 0)
     446          33 :     .Case("shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     447          33 :     .Case("consumable", LangOpts.CPlusPlus11 ? 1 : 0)
     448          33 :     .Case("consumable_auto_cast_state", LangOpts.CPlusPlus11 ? 1 : 0)
     449          33 :     .Case("consumable_set_state_on_read", LangOpts.CPlusPlus11 ? 1 : 0)
     450          33 :     .Case("convergent", LangOpts.CPlusPlus11 ? 1 : 0)
     451          33 :     .Case("disable_tail_calls", LangOpts.CPlusPlus11 ? 1 : 0)
     452          33 :     .Case("enum_extensibility", LangOpts.CPlusPlus11 ? 1 : 0)
     453          33 :     .Case("exclude_from_explicit_instantiation", LangOpts.CPlusPlus11 ? 1 : 0)
     454          33 :     .Case("external_source_symbol", LangOpts.CPlusPlus11 ? 1 : 0)
     455          33 :     .Case("fallthrough", LangOpts.CPlusPlus11 ? 201603 : 0)
     456          33 :     .Case("flag_enum", LangOpts.CPlusPlus11 ? 1 : 0)
     457          33 :     .Case("guarded_var", LangOpts.CPlusPlus11 ? 1 : 0)
     458          33 :     .Case("ibaction", LangOpts.CPlusPlus11 ? 1 : 0)
     459          33 :     .Case("iboutlet", LangOpts.CPlusPlus11 ? 1 : 0)
     460          33 :     .Case("iboutletcollection", LangOpts.CPlusPlus11 ? 1 : 0)
     461          33 :     .Case("intel_ocl_bicc", LangOpts.CPlusPlus11 ? 1 : 0)
     462          33 :     .Case("internal_linkage", LangOpts.CPlusPlus11 ? 1 : 0)
     463          33 :     .Case("lto_visibility_public", LangOpts.CPlusPlus11 ? 1 : 0)
     464          33 :     .Case("lifetimebound", LangOpts.CPlusPlus11 ? 1 : 0)
     465          33 :     .Case("minsize", LangOpts.CPlusPlus11 ? 1 : 0)
     466          33 :     .Case("min_vector_width", LangOpts.CPlusPlus11 ? 1 : 0)
     467          33 :     .Case("ns_consumed", LangOpts.CPlusPlus11 ? 1 : 0)
     468          33 :     .Case("ns_consumes_self", LangOpts.CPlusPlus11 ? 1 : 0)
     469          33 :     .Case("ns_returns_autoreleased", LangOpts.CPlusPlus11 ? 1 : 0)
     470          33 :     .Case("ns_returns_not_retained", LangOpts.CPlusPlus11 ? 1 : 0)
     471          33 :     .Case("ns_returns_retained", LangOpts.CPlusPlus11 ? 1 : 0)
     472          33 :     .Case("neon_polyvector_type", LangOpts.CPlusPlus11 ? 1 : 0)
     473          33 :     .Case("neon_vector_type", LangOpts.CPlusPlus11 ? 1 : 0)
     474          33 :     .Case("no_destroy", LangOpts.CPlusPlus11 ? 1 : 0)
     475          33 :     .Case("noduplicate", LangOpts.CPlusPlus11 ? 1 : 0)
     476          33 :     .Case("noescape", LangOpts.CPlusPlus11 ? 1 : 0)
     477          33 :     .Case("no_sanitize", LangOpts.CPlusPlus11 ? 1 : 0)
     478          33 :     .Case("no_sanitize_memory", LangOpts.CPlusPlus11 ? 1 : 0)
     479          33 :     .Case("no_stack_protector", LangOpts.CPlusPlus11 ? 1 : 0)
     480          33 :     .Case("no_thread_safety_analysis", LangOpts.CPlusPlus11 ? 1 : 0)
     481          33 :     .Case("not_tail_called", LangOpts.CPlusPlus11 ? 1 : 0)
     482          33 :     .Case("objc_boxable", LangOpts.CPlusPlus11 ? 1 : 0)
     483          33 :     .Case("objc_bridge", LangOpts.CPlusPlus11 ? 1 : 0)
     484          33 :     .Case("objc_bridge_mutable", LangOpts.CPlusPlus11 ? 1 : 0)
     485          33 :     .Case("objc_bridge_related", LangOpts.CPlusPlus11 ? 1 : 0)
     486          33 :     .Case("objc_designated_initializer", LangOpts.CPlusPlus11 ? 1 : 0)
     487          33 :     .Case("objc_exception", LangOpts.CPlusPlus11 ? 1 : 0)
     488          33 :     .Case("objc_protocol_requires_explicit_implementation", LangOpts.CPlusPlus11 ? 1 : 0)
     489          33 :     .Case("objc_gc", LangOpts.CPlusPlus11 ? 1 : 0)
     490          33 :     .Case("objc_independent_class", LangOpts.CPlusPlus11 ? 1 : 0)
     491          33 :     .Case("objc_method_family", LangOpts.CPlusPlus11 ? 1 : 0)
     492          33 :     .Case("NSObject", LangOpts.CPlusPlus11 ? 1 : 0)
     493          33 :     .Case("objc_ownership", LangOpts.CPlusPlus11 ? 1 : 0)
     494          33 :     .Case("objc_precise_lifetime", LangOpts.CPlusPlus11 ? 1 : 0)
     495          33 :     .Case("objc_requires_property_definitions", LangOpts.CPlusPlus11 ? 1 : 0)
     496          33 :     .Case("objc_requires_super", LangOpts.CPlusPlus11 ? 1 : 0)
     497          33 :     .Case("objc_returns_inner_pointer", LangOpts.CPlusPlus11 ? 1 : 0)
     498          33 :     .Case("objc_root_class", LangOpts.CPlusPlus11 ? 1 : 0)
     499          33 :     .Case("objc_runtime_name", LangOpts.CPlusPlus11 ? 1 : 0)
     500          33 :     .Case("objc_runtime_visible", LangOpts.CPlusPlus11 ? 1 : 0)
     501          33 :     .Case("objc_subclassing_restricted", LangOpts.CPlusPlus11 ? 1 : 0)
     502          33 :     .Case("optnone", LangOpts.CPlusPlus11 ? 1 : 0)
     503          33 :     .Case("overloadable", LangOpts.CPlusPlus11 ? 1 : 0)
     504          33 :     .Case("ownership_holds", LangOpts.CPlusPlus11 ? 1 : 0)
     505          33 :     .Case("ownership_returns", LangOpts.CPlusPlus11 ? 1 : 0)
     506          33 :     .Case("ownership_takes", LangOpts.CPlusPlus11 ? 1 : 0)
     507          33 :     .Case("ownership_holds", LangOpts.CPlusPlus11 ? 1 : 0)
     508          33 :     .Case("ownership_returns", LangOpts.CPlusPlus11 ? 1 : 0)
     509          33 :     .Case("ownership_takes", LangOpts.CPlusPlus11 ? 1 : 0)
     510          33 :     .Case("ownership_holds", LangOpts.CPlusPlus11 ? 1 : 0)
     511          33 :     .Case("ownership_returns", LangOpts.CPlusPlus11 ? 1 : 0)
     512          33 :     .Case("ownership_takes", LangOpts.CPlusPlus11 ? 1 : 0)
     513          33 :     .Case("param_typestate", LangOpts.CPlusPlus11 ? 1 : 0)
     514          33 :     .Case("pascal", LangOpts.CPlusPlus11 ? 1 : 0)
     515          33 :     .Case("pass_object_size", LangOpts.CPlusPlus11 ? 1 : 0)
     516          33 :     .Case("preserve_all", LangOpts.CPlusPlus11 ? 1 : 0)
     517          33 :     .Case("preserve_most", LangOpts.CPlusPlus11 ? 1 : 0)
     518          33 :     .Case("pt_guarded_var", LangOpts.CPlusPlus11 ? 1 : 0)
     519          33 :     .Case("reinitializes", LangOpts.CPlusPlus11 ? 1 : 0)
     520          33 :     .Case("release_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     521          33 :     .Case("release_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     522          33 :     .Case("release_generic_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     523          33 :     .Case("unlock_function", LangOpts.CPlusPlus11 ? 1 : 0)
     524          33 :     .Case("release_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     525          33 :     .Case("release_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     526          33 :     .Case("release_generic_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     527          33 :     .Case("unlock_function", LangOpts.CPlusPlus11 ? 1 : 0)
     528          33 :     .Case("release_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     529          33 :     .Case("release_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     530          33 :     .Case("release_generic_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     531          33 :     .Case("unlock_function", LangOpts.CPlusPlus11 ? 1 : 0)
     532          33 :     .Case("release_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     533          33 :     .Case("release_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     534          33 :     .Case("release_generic_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     535          33 :     .Case("unlock_function", LangOpts.CPlusPlus11 ? 1 : 0)
     536          33 :     .Case("require_constant_initialization", LangOpts.CPlusPlus11 ? 1 : 0)
     537          33 :     .Case("requires_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     538          33 :     .Case("exclusive_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
     539          33 :     .Case("requires_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     540          33 :     .Case("shared_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
     541          33 :     .Case("requires_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     542          33 :     .Case("exclusive_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
     543          33 :     .Case("requires_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     544          33 :     .Case("shared_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
     545          33 :     .Case("requires_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     546          33 :     .Case("exclusive_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
     547          33 :     .Case("requires_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     548          33 :     .Case("shared_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
     549          33 :     .Case("requires_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     550          33 :     .Case("exclusive_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
     551          33 :     .Case("requires_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     552          33 :     .Case("shared_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
     553          33 :     .Case("return_typestate", LangOpts.CPlusPlus11 ? 1 : 0)
     554          33 :     .Case("scoped_lockable", LangOpts.CPlusPlus11 ? 1 : 0)
     555          33 :     .Case("set_typestate", LangOpts.CPlusPlus11 ? 1 : 0)
     556          33 :     .Case("swiftcall", LangOpts.CPlusPlus11 ? 1 : 0)
     557          33 :     .Case("swift_context", LangOpts.CPlusPlus11 ? 1 : 0)
     558          33 :     .Case("swift_error_result", LangOpts.CPlusPlus11 ? 1 : 0)
     559          33 :     .Case("swift_indirect_result", LangOpts.CPlusPlus11 ? 1 : 0)
     560          33 :     .Case("test_typestate", LangOpts.CPlusPlus11 ? 1 : 0)
     561          33 :     .Case("trivial_abi", LangOpts.CPlusPlus11 ? 1 : 0)
     562          33 :     .Case("try_acquire_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     563          33 :     .Case("try_acquire_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     564          33 :     .Case("try_acquire_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     565          33 :     .Case("try_acquire_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
     566          33 :     .Case("type_tag_for_datatype", LangOpts.CPlusPlus11 ? 1 : 0)
     567          33 :     .Case("type_visibility", LangOpts.CPlusPlus11 ? 1 : 0)
     568          33 :     .Case("unavailable", LangOpts.CPlusPlus11 ? 1 : 0)
     569          33 :     .Case("vecreturn", LangOpts.CPlusPlus11 ? 1 : 0)
     570          33 :     .Case("vectorcall", LangOpts.CPlusPlus11 ? 1 : 0)
     571          33 :     .Case("warn_unused_result", LangOpts.CPlusPlus11 ? 201603 : 0)
     572          33 :     .Case("weak_import", LangOpts.CPlusPlus11 ? 1 : 0)
     573          33 :     .Case("xray_always_instrument", LangOpts.CPlusPlus11 ? 1 : 0)
     574          33 :     .Case("xray_never_instrument", LangOpts.CPlusPlus11 ? 1 : 0)
     575          33 :     .Case("xray_always_instrument", LangOpts.CPlusPlus11 ? 1 : 0)
     576          33 :     .Case("xray_never_instrument", LangOpts.CPlusPlus11 ? 1 : 0)
     577          43 :     .Case("xray_log_args", LangOpts.CPlusPlus11 ? 1 : 0)
     578             :     .Default(0);
     579          48 : } else if (Scope->getName() == "gnu") {
     580          29 :   return llvm::StringSwitch<int>(Name)
     581          29 :     .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)
     582          29 :     .Case("interrupt", true && (T.getArch() == llvm::Triple::avr) && LangOpts.CPlusPlus11 ? 1 : 0)
     583          29 :     .Case("signal", true && (T.getArch() == llvm::Triple::avr) && LangOpts.CPlusPlus11 ? 1 : 0)
     584          29 :     .Case("abi_tag", LangOpts.CPlusPlus11 ? 1 : 0)
     585          29 :     .Case("alias", LangOpts.CPlusPlus11 ? 1 : 0)
     586          29 :     .Case("aligned", LangOpts.CPlusPlus11 ? 1 : 0)
     587          29 :     .Case("alloc_align", LangOpts.CPlusPlus11 ? 1 : 0)
     588          29 :     .Case("alloc_size", LangOpts.CPlusPlus11 ? 1 : 0)
     589          29 :     .Case("always_inline", LangOpts.CPlusPlus11 ? 1 : 0)
     590          29 :     .Case("interrupt", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) && LangOpts.CPlusPlus11 ? 1 : 0)
     591          29 :     .Case("no_caller_saved_registers", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) && LangOpts.CPlusPlus11 ? 1 : 0)
     592          29 :     .Case("nocf_check", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) && LangOpts.CPlusPlus11 ? 1 : 0)
     593          29 :     .Case("artificial", LangOpts.CPlusPlus11 ? 1 : 0)
     594          29 :     .Case("assume_aligned", LangOpts.CPlusPlus11 ? 1 : 0)
     595          29 :     .Case("cdecl", LangOpts.CPlusPlus11 ? 1 : 0)
     596          29 :     .Case("cleanup", LangOpts.CPlusPlus11 ? 1 : 0)
     597          29 :     .Case("cold", LangOpts.CPlusPlus11 ? 1 : 0)
     598          29 :     .Case("common", LangOpts.CPlusPlus11 ? 1 : 0)
     599          29 :     .Case("const", LangOpts.CPlusPlus11 ? 1 : 0)
     600          29 :     .Case("__const", LangOpts.CPlusPlus11 ? 1 : 0)
     601          29 :     .Case("const", LangOpts.CPlusPlus11 ? 1 : 0)
     602          29 :     .Case("__const", LangOpts.CPlusPlus11 ? 1 : 0)
     603          29 :     .Case("constructor", LangOpts.CPlusPlus11 ? 1 : 0)
     604          29 :     .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)
     605          29 :     .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)
     606          29 :     .Case("deprecated", LangOpts.CPlusPlus11 ? 201309 : 0)
     607          29 :     .Case("destructor", LangOpts.CPlusPlus11 ? 1 : 0)
     608          29 :     .Case("fastcall", LangOpts.CPlusPlus11 ? 1 : 0)
     609          29 :     .Case("flatten", LangOpts.CPlusPlus11 ? 1 : 0)
     610          29 :     .Case("format", LangOpts.CPlusPlus11 ? 1 : 0)
     611          29 :     .Case("format_arg", LangOpts.CPlusPlus11 ? 1 : 0)
     612          29 :     .Case("gnu_inline", LangOpts.CPlusPlus11 ? 1 : 0)
     613          29 :     .Case("hot", LangOpts.CPlusPlus11 ? 1 : 0)
     614          29 :     .Case("ifunc", true && (T.getObjectFormat() == llvm::Triple::ELF) && LangOpts.CPlusPlus11 ? 1 : 0)
     615          29 :     .Case("init_priority", LangOpts.CPlusPlus11 ? 1 : 0)
     616          29 :     .Case("ms_abi", LangOpts.CPlusPlus11 ? 1 : 0)
     617          29 :     .Case("interrupt", true && (T.getArch() == llvm::Triple::msp430) && LangOpts.CPlusPlus11 ? 1 : 0)
     618          29 :     .Case("ms_struct", LangOpts.CPlusPlus11 ? 1 : 0)
     619          29 :     .Case("may_alias", LangOpts.CPlusPlus11 ? 1 : 0)
     620          29 :     .Case("micromips", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11 ? 1 : 0)
     621          29 :     .Case("mips16", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11 ? 1 : 0)
     622          29 :     .Case("interrupt", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11 ? 1 : 0)
     623          29 :     .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)
     624          29 :     .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)
     625          29 :     .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)
     626          29 :     .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)
     627          29 :     .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)
     628          29 :     .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)
     629          29 :     .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)
     630          29 :     .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)
     631          29 :     .Case("mode", LangOpts.CPlusPlus11 ? 1 : 0)
     632          29 :     .Case("naked", LangOpts.CPlusPlus11 ? 1 : 0)
     633          29 :     .Case("nocommon", LangOpts.CPlusPlus11 ? 1 : 0)
     634          29 :     .Case("nodebug", LangOpts.CPlusPlus11 ? 1 : 0)
     635          29 :     .Case("noinline", LangOpts.CPlusPlus11 ? 1 : 0)
     636          29 :     .Case("no_instrument_function", LangOpts.CPlusPlus11 ? 1 : 0)
     637          29 :     .Case("nomicromips", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11 ? 1 : 0)
     638          29 :     .Case("nomips16", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11 ? 1 : 0)
     639          29 :     .Case("noreturn", LangOpts.CPlusPlus11 ? 1 : 0)
     640          29 :     .Case("no_address_safety_analysis", LangOpts.CPlusPlus11 ? 1 : 0)
     641          29 :     .Case("no_sanitize_address", LangOpts.CPlusPlus11 ? 1 : 0)
     642          29 :     .Case("no_sanitize_thread", LangOpts.CPlusPlus11 ? 1 : 0)
     643          29 :     .Case("no_address_safety_analysis", LangOpts.CPlusPlus11 ? 1 : 0)
     644          29 :     .Case("no_sanitize_address", LangOpts.CPlusPlus11 ? 1 : 0)
     645          29 :     .Case("no_sanitize_thread", LangOpts.CPlusPlus11 ? 1 : 0)
     646          29 :     .Case("no_address_safety_analysis", LangOpts.CPlusPlus11 ? 1 : 0)
     647          29 :     .Case("no_sanitize_address", LangOpts.CPlusPlus11 ? 1 : 0)
     648          29 :     .Case("no_sanitize_thread", LangOpts.CPlusPlus11 ? 1 : 0)
     649          29 :     .Case("no_split_stack", LangOpts.CPlusPlus11 ? 1 : 0)
     650          29 :     .Case("nothrow", LangOpts.CPlusPlus11 ? 1 : 0)
     651          29 :     .Case("nonnull", LangOpts.CPlusPlus11 ? 1 : 0)
     652          29 :     .Case("packed", LangOpts.CPlusPlus11 ? 1 : 0)
     653          29 :     .Case("pcs", LangOpts.CPlusPlus11 ? 1 : 0)
     654          29 :     .Case("pure", LangOpts.CPlusPlus11 ? 1 : 0)
     655          29 :     .Case("interrupt", true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) && LangOpts.CPlusPlus11 ? 1 : 0)
     656          29 :     .Case("regcall", LangOpts.CPlusPlus11 ? 1 : 0)
     657          29 :     .Case("regparm", LangOpts.CPlusPlus11 ? 1 : 0)
     658          29 :     .Case("malloc", LangOpts.CPlusPlus11 ? 1 : 0)
     659          29 :     .Case("returns_nonnull", LangOpts.CPlusPlus11 ? 1 : 0)
     660          29 :     .Case("returns_twice", LangOpts.CPlusPlus11 ? 1 : 0)
     661          29 :     .Case("section", LangOpts.CPlusPlus11 ? 1 : 0)
     662          29 :     .Case("selectany", LangOpts.CPlusPlus11 ? 1 : 0)
     663          29 :     .Case("sentinel", LangOpts.CPlusPlus11 ? 1 : 0)
     664          29 :     .Case("stdcall", LangOpts.CPlusPlus11 ? 1 : 0)
     665          29 :     .Case("sysv_abi", LangOpts.CPlusPlus11 ? 1 : 0)
     666          29 :     .Case("tls_model", LangOpts.CPlusPlus11 ? 1 : 0)
     667          29 :     .Case("target", LangOpts.CPlusPlus11 ? 1 : 0)
     668          29 :     .Case("thiscall", LangOpts.CPlusPlus11 ? 1 : 0)
     669          29 :     .Case("transparent_union", LangOpts.CPlusPlus11 ? 1 : 0)
     670          29 :     .Case("unused", LangOpts.CPlusPlus11 ? 201603 : 0)
     671          29 :     .Case("used", LangOpts.CPlusPlus11 ? 1 : 0)
     672          29 :     .Case("vector_size", LangOpts.CPlusPlus11 ? 1 : 0)
     673          29 :     .Case("visibility", LangOpts.CPlusPlus11 ? 1 : 0)
     674          29 :     .Case("warn_unused", LangOpts.CPlusPlus11 ? 1 : 0)
     675          29 :     .Case("warn_unused_result", LangOpts.CPlusPlus11 ? 201603 : 0)
     676          29 :     .Case("weak", LangOpts.CPlusPlus11 ? 1 : 0)
     677          29 :     .Case("weakref", LangOpts.CPlusPlus11 ? 1 : 0)
     678          58 :     .Case("force_align_arg_pointer", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) && LangOpts.CPlusPlus11 ? 1 : 0)
     679             :     .Default(0);
     680          19 : } else if (Scope->getName() == "gsl") {
     681          11 :   return llvm::StringSwitch<int>(Name)
     682          22 :     .Case("suppress", LangOpts.CPlusPlus11 ? 1 : 0)
     683             :     .Default(0);
     684             : }
     685             : } break;
     686          49 : case AttrSyntax::C: {
     687          49 : if (!Scope || Scope->getName() == "") {
     688           8 :   return llvm::StringSwitch<int>(Name)
     689           8 :     .Case("deprecated", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     690           8 :     .Case("fallthrough", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     691           8 :     .Case("maybe_unused", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     692          10 :     .Case("nodiscard", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     693             :     .Default(0);
     694          41 : } else if (Scope->getName() == "clang") {
     695          41 :   return llvm::StringSwitch<int>(Name)
     696          41 :     .Case("address_space", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     697          41 :     .Case("annotate", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     698          41 :     .Case("objc_arc_weak_reference_unavailable", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     699          41 :     .Case("argument_with_type_tag", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     700          41 :     .Case("pointer_with_type_tag", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     701          41 :     .Case("argument_with_type_tag", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     702          41 :     .Case("pointer_with_type_tag", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     703          41 :     .Case("availability", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     704          41 :     .Case("blocks", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     705          41 :     .Case("cf_audited_transfer", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     706          41 :     .Case("cf_consumed", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     707          41 :     .Case("cf_returns_not_retained", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     708          41 :     .Case("cf_returns_retained", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     709          41 :     .Case("cf_unknown_transfer", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     710          41 :     .Case("cpu_dispatch", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     711          41 :     .Case("cpu_specific", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     712          41 :     .Case("convergent", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     713          41 :     .Case("disable_tail_calls", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     714          41 :     .Case("enum_extensibility", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     715          41 :     .Case("exclude_from_explicit_instantiation", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     716          41 :     .Case("external_source_symbol", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     717          41 :     .Case("flag_enum", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     718          41 :     .Case("ibaction", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     719          41 :     .Case("iboutlet", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     720          41 :     .Case("iboutletcollection", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     721          41 :     .Case("internal_linkage", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     722          41 :     .Case("lto_visibility_public", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     723          41 :     .Case("minsize", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     724          41 :     .Case("min_vector_width", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     725          41 :     .Case("ns_consumed", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     726          41 :     .Case("ns_consumes_self", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     727          41 :     .Case("ns_returns_autoreleased", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     728          41 :     .Case("ns_returns_not_retained", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     729          41 :     .Case("ns_returns_retained", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     730          41 :     .Case("neon_polyvector_type", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     731          41 :     .Case("neon_vector_type", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     732          41 :     .Case("noduplicate", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     733          41 :     .Case("noescape", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     734          41 :     .Case("no_sanitize", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     735          41 :     .Case("no_sanitize_memory", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     736          41 :     .Case("no_stack_protector", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     737          41 :     .Case("no_thread_safety_analysis", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     738          41 :     .Case("not_tail_called", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     739          41 :     .Case("objc_boxable", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     740          41 :     .Case("objc_bridge", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     741          41 :     .Case("objc_bridge_mutable", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     742          41 :     .Case("objc_bridge_related", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     743          41 :     .Case("objc_designated_initializer", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     744          41 :     .Case("objc_exception", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     745          41 :     .Case("objc_protocol_requires_explicit_implementation", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     746          41 :     .Case("objc_gc", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     747          41 :     .Case("objc_independent_class", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     748          41 :     .Case("objc_method_family", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     749          41 :     .Case("NSObject", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     750          41 :     .Case("objc_ownership", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     751          41 :     .Case("objc_precise_lifetime", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     752          41 :     .Case("objc_requires_property_definitions", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     753          41 :     .Case("objc_requires_super", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     754          41 :     .Case("objc_returns_inner_pointer", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     755          41 :     .Case("objc_root_class", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     756          41 :     .Case("objc_runtime_name", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     757          41 :     .Case("objc_runtime_visible", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     758          41 :     .Case("objc_subclassing_restricted", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     759          41 :     .Case("optnone", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     760          41 :     .Case("overloadable", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     761          41 :     .Case("ownership_holds", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     762          41 :     .Case("ownership_returns", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     763          41 :     .Case("ownership_takes", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     764          41 :     .Case("ownership_holds", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     765          41 :     .Case("ownership_returns", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     766          41 :     .Case("ownership_takes", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     767          41 :     .Case("ownership_holds", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     768          41 :     .Case("ownership_returns", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     769          41 :     .Case("ownership_takes", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     770          41 :     .Case("pascal", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     771          41 :     .Case("pass_object_size", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     772          41 :     .Case("preserve_all", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     773          41 :     .Case("preserve_most", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     774          41 :     .Case("swiftcall", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     775          41 :     .Case("swift_context", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     776          41 :     .Case("swift_error_result", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     777          41 :     .Case("swift_indirect_result", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     778          41 :     .Case("type_tag_for_datatype", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     779          41 :     .Case("type_visibility", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     780          41 :     .Case("unavailable", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     781          41 :     .Case("vectorcall", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     782          41 :     .Case("weak_import", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     783          41 :     .Case("xray_always_instrument", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     784          41 :     .Case("xray_never_instrument", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     785          41 :     .Case("xray_always_instrument", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     786          41 :     .Case("xray_never_instrument", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     787          41 :     .Case("xray_log_args", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
     788             :     .Default(0);
     789             : }
     790             : } break;
     791             : }

Generated by: LCOV version 1.13