Advertisement
Guest User

Untitled

a guest
May 21st, 2025
17
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 55.27 KB | None | 0 0
  1. /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
  2. |* *|
  3. |* Code to implement the __has_attribute logic *|
  4. |* *|
  5. |* Automatically generated file, do not edit! *|
  6. |* From: Attr.td *|
  7. |* *|
  8. \*===----------------------------------------------------------------------===*/
  9.  
  10. const llvm::Triple &T = Target.getTriple();
  11. switch (Syntax) {
  12. case AttributeCommonInfo::Syntax::AS_GNU:
  13. return llvm::StringSwitch<int>(Name)
  14. .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))
  15. .Case("objc_bridge_related", (1))
  16. .Case("opencl_global", (1))
  17. .Case("release_shared_capability", (1))
  18. .Case("always_inline", (1))
  19. .Case("intel_reqd_sub_group_size", (1))
  20. .Case("uninitialized", (1))
  21. .Case("returns_twice", (1))
  22. .Case("preserve_static_offset", (true && (T.getArch() == llvm::Triple::bpfel || T.getArch() == llvm::Triple::bpfeb) ? 1 : 0))
  23. .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))
  24. .Case("coro_await_elidable", (1))
  25. .Case("nv_weak", (1))
  26. .Case("release_capability", (1))
  27. .Case("ownership_takes", (1))
  28. .Case("selectany", (1))
  29. .Case("using_if_exists", (1))
  30. .Case("opencl_local", (1))
  31. .Case("acquired_after", (1))
  32. .Case("neon_vector_type", (1))
  33. .Case("cleanup", (1))
  34. .Case("flatten", (1))
  35. .Case("target", (1))
  36. .Case("sized_by", (1))
  37. .Case("warn_unused", (1))
  38. .Case("acquire_handle", (1))
  39. .Case("acquired_before", (1))
  40. .Case("zero_call_used_regs", (1))
  41. .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))
  42. .Case("argument_with_type_tag", (1))
  43. .Case("m68k_rtd", (1))
  44. .Case("objc_method_family", (1))
  45. .Case("stdcall", (1))
  46. .Case("pcs", (1))
  47. .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))
  48. .Case("sysv_abi", (1))
  49. .Case("swift_context", (1))
  50. .Case("try_acquire_shared_capability", (1))
  51. .Case("overloadable", (1))
  52. .Case("optnone", (1))
  53. .Case("coro_await_elidable_argument", (1))
  54. .Case("preserve_access_index", (true && (T.getArch() == llvm::Triple::bpfel || T.getArch() == llvm::Triple::bpfeb) ? 1 : 0))
  55. .Case("objc_direct", (1))
  56. .Case("convergent", (1))
  57. .Case("no_stack_protector", (1))
  58. .Case("ownership_holds", (1))
  59. .Case("returns_nonnull", (1))
  60. .Case("may_alias", (1))
  61. .Case("sycl_special_class", (1))
  62. .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))
  63. .Case("swift_attr", (1))
  64. .Case("dllimport", (true && ( Target.getTriple().hasDLLImportExport() ) ? 1 : 0))
  65. .Case("import_module", (true && (T.getArch() == llvm::Triple::wasm32 || T.getArch() == llvm::Triple::wasm64) ? 1 : 0))
  66. .Case("exclusive_locks_required", (1))
  67. .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))
  68. .Case("warning", (1))
  69. .Case("format", (1))
  70. .Case("available_only_in_default_eval_method", (1))
  71. .Case("nocommon", (1))
  72. .Case("NSObject", (1))
  73. .Case("opencl_global_device", (1))
  74. .Case("trivial_abi", (1))
  75. .Case("objc_returns_inner_pointer", (1))
  76. .Case("dllexport", (true && ( Target.getTriple().hasDLLImportExport() ) ? 1 : 0))
  77. .Case("ns_consumed", (1))
  78. .Case("no_profile_instrument_function", (1))
  79. .Case("iboutlet", (1))
  80. .Case("atomic", (1))
  81. .Case("cold", (1))
  82. .Case("error", (1))
  83. .Case("common", (1))
  84. .Case("alias", (1))
  85. .Case("launch_bounds", (1))
  86. .Case("maybe_undef", (1))
  87. .Case("opencl_global_host", (1))
  88. .Case("assume_aligned", (1))
  89. .Case("objc_designated_initializer", (1))
  90. .Case("consumable_auto_cast_state", (1))
  91. .Case("sycl_kernel_entry_point", (1))
  92. .Case("requires_shared_capability", (1))
  93. .Case("reinitializes", (1))
  94. .Case("acquire_shared_capability", (1))
  95. .Case("cf_unknown_transfer", (1))
  96. .Case("exclusive_trylock_function", (1))
  97. .Case("no_sanitize_memory", (1))
  98. .Case("callback", (1))
  99. .Case("__const", (1))
  100. .Case("objc_boxable", (1))
  101. .Case("swift_async_error", (1))
  102. .Case("objc_non_runtime_protocol", (1))
  103. .Case("enforce_tcb_leaf", (1))
  104. .Case("objc_requires_property_definitions", (1))
  105. .Case("swift_bridge", (1))
  106. .Case("amdgpu_num_sgpr", (1))
  107. .Case("nvptx_kernel", (true && (T.getArch() == llvm::Triple::nvptx || T.getArch() == llvm::Triple::nvptx64) ? 1 : 0))
  108. .Case("aarch64_sve_pcs", (1))
  109. .Case("riscv_vls_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
  110. .Case("cf_audited_transfer", (1))
  111. .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))
  112. .Case("noconvergent", (1))
  113. .Case("use_handle", (1))
  114. .Case("require_explicit_initialization", (1))
  115. .Case("ms_abi", (1))
  116. .Case("nonnull", (1))
  117. .Case("cf_returns_retained", (1))
  118. .Case("swift_async_name", (1))
  119. .Case("try_acquire_capability", (1))
  120. .Case("no_specializations", (1))
  121. .Case("annotate", (1))
  122. .Case("cpu_dispatch", (1))
  123. .Case("neon_polyvector_type", (1))
  124. .Case("noinline", (1))
  125. .Case("assume", (1))
  126. .Case("swift_async", (1))
  127. .Case("device", (1))
  128. .Case("nonallocating", (1))
  129. .Case("regparm", (1))
  130. .Case("counted_by_or_null", (1))
  131. .Case("lto_visibility_public", (1))
  132. .Case("iboutletcollection", (1))
  133. .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))
  134. .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))
  135. .Case("aligned", (1))
  136. .Case("acquire_capability", (1))
  137. .Case("objc_ownership", (1))
  138. .Case("always_destroy", (1))
  139. .Case("preferred_type", (1))
  140. .Case("unlock_function", (1))
  141. .Case("no_sanitize", (1))
  142. .Case("loader_uninitialized", (1))
  143. .Case("cfi_canonical_jump_table", (1))
  144. .Case("carries_dependency", (1))
  145. .Case("diagnose_as_builtin", (1))
  146. .Case("noderef", (1))
  147. .Case("objc_bridge", (1))
  148. .Case("nomips16", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
  149. .Case("shared", (1))
  150. .Case("pt_guarded_by", (1))
  151. .Case("coro_lifetimebound", (1))
  152. .Case("objc_protocol_requires_explicit_implementation", (1))
  153. .Case("nodebug", (1))
  154. .Case("no_address_safety_analysis", (1))
  155. .Case("param_typestate", (1))
  156. .Case("flag_enum", (1))
  157. .Case("objc_bridge_mutable", (1))
  158. .Case("set_typestate", (1))
  159. .Case("mode", (1))
  160. .Case("vector_size", (1))
  161. .Case("analyzer_noreturn", (1))
  162. .Case("coro_wrapper", (1))
  163. .Case("naked", (1))
  164. .Case("cf_consumed", (1))
  165. .Case("amdgpu_num_vgpr", (1))
  166. .Case("blocking", (1))
  167. .Case("guarded_by", (1))
  168. .Case("pass_object_size", (1))
  169. .Case("require_constant_initialization", (1))
  170. .Case("grid_constant", (1))
  171. .Case("amdgpu_kernel", (1))
  172. .Case("function_return", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
  173. .Case("thiscall", (1))
  174. .Case("os_returns_retained_on_zero", (1))
  175. .Case("malloc", (1))
  176. .Case("swift_wrapper", (1))
  177. .Case("clspv_libclc_builtin", (1))
  178. .Case("fastcall", (1))
  179. .Case("minsize", (1))
  180. .Case("matrix_type", (1))
  181. .Case("riscv_rvv_vector_bits", (1))
  182. .Case("vecreturn", (1))
  183. .Case("warn_unused_result", (1))
  184. .Case("amdgpu_flat_work_group_size", (1))
  185. .Case("shared_trylock_function", (1))
  186. .Case("aarch64_vector_pcs", (1))
  187. .Case("consumable", (1))
  188. .Case("fallthrough", (1))
  189. .Case("internal_linkage", (1))
  190. .Case("weak_import", (1))
  191. .Case("os_returns_not_retained", (1))
  192. .Case("assert_shared_capability", (1))
  193. .Case("objc_externally_retained", (1))
  194. .Case("suppress", (1))
  195. .Case("not_tail_called", (1))
  196. .Case("btf_decl_tag", (1))
  197. .Case("riscv_vector_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
  198. .Case("hybrid_patchable", (true && ( Target.getTriple().isWindowsArm64EC() ) ? 1 : 0))
  199. .Case("init_priority", (true && ( !Target.getTriple().isOSzOS() ) ? 1 : 0))
  200. .Case("standalone_debug", (1))
  201. .Case("sycl_kernel", (1))
  202. .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))
  203. .Case("btf_type_tag", (1))
  204. .Case("objc_precise_lifetime", (1))
  205. .Case("unused", (1))
  206. .Case("counted_by", (1))
  207. .Case("code_align", (1))
  208. .Case("enable_if", (1))
  209. .Case("ownership_returns", (1))
  210. .Case("capability", (1))
  211. .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))
  212. .Case("exclusive_lock_function", (1))
  213. .Case("device_builtin", (1))
  214. .Case("coro_disable_lifetimebound", (1))
  215. .Case("disable_sanitizer_instrumentation", (1))
  216. .Case("ptrauth_vtable_pointer", (1))
  217. .Case("retain", (1))
  218. .Case("deprecated", (1))
  219. .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))
  220. .Case("preserve_all", (1))
  221. .Case("return_typestate", (1))
  222. .Case("nomerge", (1))
  223. .Case("constant", (1))
  224. .Case("coro_only_destroy_when_complete", (1))
  225. .Case("shared_locks_required", (1))
  226. .Case("diagnose_if", (1))
  227. .Case("swift_name", (1))
  228. .Case("vec_type_hint", (1))
  229. .Case("work_group_size_hint", (1))
  230. .Case("mig_server_routine", (1))
  231. .Case("weak", (1))
  232. .Case("ifunc", (true && ( Target.supportsIFunc() ) ? 1 : 0))
  233. .Case("objc_exception", (1))
  234. .Case("os_returns_retained", (1))
  235. .Case("constructor", (1))
  236. .Case("locks_excluded", (1))
  237. .Case("force_align_arg_pointer", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
  238. .Case("objc_independent_class", (1))
  239. .Case("swift_error", (1))
  240. .Case("no_builtin", (1))
  241. .Case("amdgpu_max_num_work_groups", (1))
  242. .Case("external_source_symbol", (20230206))
  243. .Case("assert_capability", (1))
  244. .Case("availability", (1))
  245. .Case("nonstring", (1))
  246. .Case("requires_capability", (1))
  247. .Case("swift_newtype", (1))
  248. .Case("ns_returns_autoreleased", (1))
  249. .Case("scoped_lockable", (1))
  250. .Case("sentinel", (1))
  251. .Case("tls_model", (1))
  252. .Case("leaf", (1))
  253. .Case("swift_indirect_result", (1))
  254. .Case("objc_runtime_visible", (1))
  255. .Case("arm_sve_vector_bits", (1))
  256. .Case("format_matches", (1))
  257. .Case("no_split_stack", (1))
  258. .Case("objc_class_stub", (1))
  259. .Case("xray_log_args", (1))
  260. .Case("xray_never_instrument", (1))
  261. .Case("abi_tag", (1))
  262. .Case("cpu_specific", (1))
  263. .Case("swift_error_result", (1))
  264. .Case("no_speculative_load_hardening", (1))
  265. .Case("no_thread_safety_analysis", (1))
  266. .Case("objc_nonlazy_class", (1))
  267. .Case("regcall", (1))
  268. .Case("nocf_check", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
  269. .Case("nosvm", (1))
  270. .Case("shared_lock_function", (1))
  271. .Case("vectorcall", (1))
  272. .Case("assert_shared_lock", (1))
  273. .Case("min_vector_width", (1))
  274. .Case("micromips", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
  275. .Case("lock_returned", (1))
  276. .Case("allocating", (1))
  277. .Case("hot", (1))
  278. .Case("consumable_set_state_on_read", (1))
  279. .Case("gnu_inline", (1))
  280. .Case("noduplicate", (1))
  281. .Case("target_clones", (1))
  282. .Case("alloc_align", (1))
  283. .Case("destructor", (1))
  284. .Case("no_randomize_layout", (1))
  285. .Case("format_arg", (1))
  286. .Case("ibaction", (1))
  287. .Case("opencl_generic", (1))
  288. .Case("coro_return_type", (1))
  289. .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))
  290. .Case("noreturn", (1))
  291. .Case("guarded_var", (1))
  292. .Case("mips16", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
  293. .Case("bpf_fastcall", (true && (T.getArch() == llvm::Triple::bpfel || T.getArch() == llvm::Triple::bpfeb) ? 1 : 0))
  294. .Case("ns_error_domain", (1))
  295. .Case("align_value", (1))
  296. .Case("lifetimebound", (1))
  297. .Case("device_builtin_texture_type", (1))
  298. .Case("exclude_from_explicit_instantiation", (1))
  299. .Case("export_name", (true && (T.getArch() == llvm::Triple::wasm32 || T.getArch() == llvm::Triple::wasm64) ? 1 : 0))
  300. .Case("section", (1))
  301. .Case("nouwtable", (1))
  302. .Case("ext_vector_type", (1))
  303. .Case("nothrow", (1))
  304. .Case("speculative_load_hardening", (1))
  305. .Case("objc_subclassing_restricted", (1))
  306. .Case("os_consumed", (1))
  307. .Case("unsafe_buffer_usage", (1))
  308. .Case("pt_guarded_var", (1))
  309. .Case("artificial", (1))
  310. .Case("pass_dynamic_object_size", (1))
  311. .Case("musttail", (1))
  312. .Case("preferred_name", (1))
  313. .Case("cf_returns_not_retained", (1))
  314. .Case("type_tag_for_datatype", (1))
  315. .Case("test_typestate", (1))
  316. .Case("unavailable", (1))
  317. .Case("swiftcall", (1))
  318. .Case("swift_async_context", (1))
  319. .Case("device_builtin_surface_type", (1))
  320. .Case("type_visibility", (1))
  321. .Case("host", (1))
  322. .Case("swift_bridged_typedef", (1))
  323. .Case("xray_always_instrument", (1))
  324. .Case("reqd_work_group_size", (1))
  325. .Case("objc_direct_members", (1))
  326. .Case("ns_returns_retained", (1))
  327. .Case("ns_consumes_self", (1))
  328. .Case("enforce_tcb", (1))
  329. .Case("nomicromips", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
  330. .Case("address_space", (1))
  331. .Case("blocks", (1))
  332. .Case("global", (1))
  333. .Case("shared_capability", (1))
  334. .Case("lockable", (1))
  335. .Case("objc_runtime_name", (1))
  336. .Case("clang_builtin_alias", (1))
  337. .Case("packed", (1))
  338. .Case("pure", (1))
  339. .Case("opencl_private", (1))
  340. .Case("preserve_most", (1))
  341. .Case("visibility", (1))
  342. .Case("signal", (true && (T.getArch() == llvm::Triple::avr) ? 1 : 0))
  343. .Case("called_once", (1))
  344. .Case("objc_root_class", (1))
  345. .Case("no_instrument_function", (1))
  346. .Case("randomize_layout", (1))
  347. .Case("guard", (true && (T.getOS() == llvm::Triple::Win32) ? 1 : 0))
  348. .Case("os_consumes_this", (1))
  349. .Case("no_sanitize_address", (1))
  350. .Case("transparent_union", (1))
  351. .Case("objc_arc_weak_reference_unavailable", (1))
  352. .Case("const", (1))
  353. .Case("pascal", (1))
  354. .Case("assert_exclusive_lock", (1))
  355. .Case("release_handle", (1))
  356. .Case("used", (1))
  357. .Case("swift_private", (1))
  358. .Case("objc_gc", (1))
  359. .Case("import_name", (true && (T.getArch() == llvm::Triple::wasm32 || T.getArch() == llvm::Triple::wasm64) ? 1 : 0))
  360. .Case("os_returns_retained_on_non_zero", (1))
  361. .Case("enum_extensibility", (1))
  362. .Case("swift_objc_members", (1))
  363. .Case("release_generic_capability", (1))
  364. .Case("bounded", (1))
  365. .Case("enforce_read_only_placement", (1))
  366. .Case("no_caller_saved_registers", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
  367. .Case("intel_ocl_bicc", (1))
  368. .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))
  369. .Case("ns_returns_not_retained", (1))
  370. .Case("opencl_unroll_hint", (1))
  371. .Case("no_sanitize_thread", (1))
  372. .Case("noescape", (1))
  373. .Case("sized_by_or_null", (1))
  374. .Case("managed", (1))
  375. .Case("weakref", (1))
  376. .Case("no_destroy", (1))
  377. .Case("nonblocking", (1))
  378. .Case("pointer_with_type_tag", (1))
  379. .Case("objc_requires_super", (1))
  380. .Case("cdecl", (1))
  381. .Case("opencl_constant", (1))
  382. .Case("lifetime_capture_by", (1))
  383. .Case("cudart_builtin", (1))
  384. .Case("swiftasynccall", (1))
  385. .Case("callable_when", (1))
  386. .Case("disable_tail_calls", (1))
  387. .Case("ms_struct", (1))
  388. .Case("amdgpu_waves_per_eu", (1))
  389. .Case("alloc_size", (1))
  390. .Default(0);
  391. case AttributeCommonInfo::Syntax::AS_Declspec:
  392. return llvm::StringSwitch<int>(Name)
  393. .Case("dllimport", (true && ( Target.getTriple().hasDLLImportExport() ) ? 1 : 0))
  394. .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().isMicrosoft() ) ? 1 : 0))
  395. .Case("allocator", (1))
  396. .Case("__device__", (1))
  397. .Case("__grid_constant__", (1))
  398. .Case("__shared__", (1))
  399. .Case("hybrid_patchable", (true && ( Target.getTriple().isWindowsArm64EC() ) ? 1 : 0))
  400. .Case("noreturn", (1))
  401. .Case("allocate", (1))
  402. .Case("guard", (true && (T.getOS() == llvm::Triple::Win32) ? 1 : 0))
  403. .Case("__managed__", (1))
  404. .Case("__global__", (1))
  405. .Case("dllexport", (true && ( Target.getTriple().hasDLLImportExport() ) ? 1 : 0))
  406. .Case("noconvergent", (1))
  407. .Case("restrict", (1))
  408. .Case("cpu_specific", (1))
  409. .Case("nothrow", (1))
  410. .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().isMicrosoft() ) ? 1 : 0))
  411. .Case("__host__", (1))
  412. .Case("deprecated", (1))
  413. .Case("__constant__", (1))
  414. .Case("cpu_dispatch", (1))
  415. .Case("align", (1))
  416. .Case("__launch_bounds__", (1))
  417. .Case("naked", (1))
  418. .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))
  419. .Case("code_seg", (1))
  420. .Case("noinline", (1))
  421. .Case("__cudart_builtin__", (1))
  422. .Case("noalias", (1))
  423. .Case("safebuffers", (1))
  424. .Case("uuid", (1))
  425. .Case("__device_builtin_surface_type__", (1))
  426. .Case("__device_builtin__", (1))
  427. .Case("__device_builtin_texture_type__", (1))
  428. .Case("property", (1))
  429. .Case("strict_gs_check", (1))
  430. .Case("no_init_all", (1))
  431. .Case("thread", (1))
  432. .Case("selectany", (1))
  433. .Default(0);
  434. case AttributeCommonInfo::Syntax::AS_Microsoft:
  435. return llvm::StringSwitch<int>(Name)
  436. .Case("loop", (1))
  437. .Case("branch", (1))
  438. .Case("unroll", (1))
  439. .Case("numthreads", (1))
  440. .Case("shader", (1))
  441. .Case("RootSignature", (1))
  442. .Case("flatten", (1))
  443. .Case("WaveSize", (1))
  444. .Case("uuid", (1))
  445. .Default(0);
  446. case AttributeCommonInfo::Syntax::AS_Pragma:
  447. return llvm::StringSwitch<int>(Name)
  448. .Case("loop", (1))
  449. .Case("routine", (1))
  450. .Case("unroll", (1))
  451. .Case("declare target", (1))
  452. .Case("unroll_and_jam", (1))
  453. .Case("nounroll_and_jam", (1))
  454. .Case("declare simd", (1))
  455. .Case("init_seg", (1))
  456. .Case("declare variant", (1))
  457. .Case("nounroll", (1))
  458. .Default(0);
  459. case AttributeCommonInfo::Syntax::AS_HLSLAnnotation:
  460. return llvm::StringSwitch<int>(Name)
  461. .Case("sv_groupid", (1))
  462. .Case("sv_groupthreadid", (1))
  463. .Case("register", (1))
  464. .Case("packoffset", (1))
  465. .Case("sv_dispatchthreadid", (1))
  466. .Case("sv_groupindex", (1))
  467. .Default(0);
  468. case AttributeCommonInfo::Syntax::AS_CXX11: {
  469. if (ScopeName == "") {
  470. return llvm::StringSwitch<int>(Name)
  471. .Case("carries_dependency", (200809))
  472. .Case("likely", (201803))
  473. .Case("unlikely", (201803))
  474. .Case("nodiscard", (201907))
  475. .Case("assume", (202207))
  476. .Case("noreturn", (200809))
  477. .Case("maybe_unused", (201603))
  478. .Case("fallthrough", (201603))
  479. .Case("deprecated", (201309))
  480. .Case("no_unique_address", (true && ( Target.getCXXABI().isItaniumFamily() ) ? 201803 : 0))
  481. .Default(0);
  482. } else if (ScopeName == "clang") {
  483. return llvm::StringSwitch<int>(Name)
  484. .Case("objc_bridge_related", (1))
  485. .Case("always_inline", (1))
  486. .Case("uninitialized", (1))
  487. .Case("preserve_static_offset", (true && (T.getArch() == llvm::Triple::bpfel || T.getArch() == llvm::Triple::bpfeb) ? 1 : 0))
  488. .Case("coro_await_elidable", (1))
  489. .Case("release_capability", (1))
  490. .Case("ownership_takes", (1))
  491. .Case("opencl_local", (1))
  492. .Case("neon_vector_type", (1))
  493. .Case("sized_by", (1))
  494. .Case("acquire_handle", (1))
  495. .Case("argument_with_type_tag", (1))
  496. .Case("m68k_rtd", (1))
  497. .Case("objc_method_family", (1))
  498. .Case("try_acquire_shared_capability", (1))
  499. .Case("swift_context", (1))
  500. .Case("overloadable", (1))
  501. .Case("optnone", (1))
  502. .Case("coro_await_elidable_argument", (1))
  503. .Case("preserve_access_index", (true && (T.getArch() == llvm::Triple::bpfel || T.getArch() == llvm::Triple::bpfeb) ? 1 : 0))
  504. .Case("objc_direct", (1))
  505. .Case("convergent", (1))
  506. .Case("no_stack_protector", (1))
  507. .Case("ownership_holds", (1))
  508. .Case("sycl_special_class", (1))
  509. .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))
  510. .Case("import_module", (true && (T.getArch() == llvm::Triple::wasm32 || T.getArch() == llvm::Triple::wasm64) ? 1 : 0))
  511. .Case("exclusive_locks_required", (1))
  512. .Case("annotate_type", (1))
  513. .Case("trivial_abi", (1))
  514. .Case("available_only_in_default_eval_method", (1))
  515. .Case("NSObject", (1))
  516. .Case("opencl_global_device", (1))
  517. .Case("objc_returns_inner_pointer", (1))
  518. .Case("ns_consumed", (1))
  519. .Case("iboutlet", (1))
  520. .Case("atomic", (1))
  521. .Case("maybe_undef", (1))
  522. .Case("opencl_global_host", (1))
  523. .Case("objc_designated_initializer", (1))
  524. .Case("consumable_auto_cast_state", (1))
  525. .Case("sycl_kernel_entry_point", (1))
  526. .Case("requires_shared_capability", (1))
  527. .Case("reinitializes", (1))
  528. .Case("cf_unknown_transfer", (1))
  529. .Case("acquire_shared_capability", (1))
  530. .Case("no_sanitize_memory", (1))
  531. .Case("callback", (1))
  532. .Case("objc_boxable", (1))
  533. .Case("swift_async_error", (1))
  534. .Case("objc_non_runtime_protocol", (1))
  535. .Case("enforce_tcb_leaf", (1))
  536. .Case("objc_requires_property_definitions", (1))
  537. .Case("try_acquire_capability", (1))
  538. .Case("amdgpu_num_sgpr", (1))
  539. .Case("nvptx_kernel", (true && (T.getArch() == llvm::Triple::nvptx || T.getArch() == llvm::Triple::nvptx64) ? 1 : 0))
  540. .Case("aarch64_sve_pcs", (1))
  541. .Case("riscv_vls_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
  542. .Case("cf_audited_transfer", (1))
  543. .Case("noconvergent", (1))
  544. .Case("use_handle", (1))
  545. .Case("require_explicit_initialization", (1))
  546. .Case("no_specializations", (1))
  547. .Case("cf_returns_retained", (1))
  548. .Case("annotate", (1))
  549. .Case("cpu_dispatch", (1))
  550. .Case("neon_polyvector_type", (1))
  551. .Case("noinline", (1))
  552. .Case("assume", (1))
  553. .Case("swift_async", (1))
  554. .Case("nonallocating", (1))
  555. .Case("counted_by_or_null", (1))
  556. .Case("lto_visibility_public", (1))
  557. .Case("iboutletcollection", (1))
  558. .Case("objc_ownership", (1))
  559. .Case("acquire_capability", (1))
  560. .Case("always_destroy", (1))
  561. .Case("preferred_type", (1))
  562. .Case("unlock_function", (1))
  563. .Case("no_sanitize", (1))
  564. .Case("loader_uninitialized", (1))
  565. .Case("cfi_canonical_jump_table", (1))
  566. .Case("diagnose_as_builtin", (1))
  567. .Case("noderef", (1))
  568. .Case("objc_bridge", (1))
  569. .Case("set_typestate", (1))
  570. .Case("coro_lifetimebound", (1))
  571. .Case("objc_protocol_requires_explicit_implementation", (1))
  572. .Case("param_typestate", (1))
  573. .Case("flag_enum", (1))
  574. .Case("objc_bridge_mutable", (1))
  575. .Case("coro_wrapper", (1))
  576. .Case("cf_consumed", (1))
  577. .Case("amdgpu_num_vgpr", (1))
  578. .Case("blocking", (1))
  579. .Case("pass_object_size", (1))
  580. .Case("require_constant_initialization", (1))
  581. .Case("amdgpu_kernel", (1))
  582. .Case("os_returns_retained_on_zero", (1))
  583. .Case("clspv_libclc_builtin", (1))
  584. .Case("matrix_type", (1))
  585. .Case("minsize", (1))
  586. .Case("vecreturn", (1))
  587. .Case("warn_unused_result", (1))
  588. .Case("amdgpu_flat_work_group_size", (1))
  589. .Case("aarch64_vector_pcs", (1))
  590. .Case("consumable", (1))
  591. .Case("os_returns_not_retained", (1))
  592. .Case("internal_linkage", (1))
  593. .Case("weak_import", (1))
  594. .Case("fallthrough", (1))
  595. .Case("assert_shared_capability", (1))
  596. .Case("objc_externally_retained", (1))
  597. .Case("suppress", (1))
  598. .Case("not_tail_called", (1))
  599. .Case("btf_decl_tag", (1))
  600. .Case("riscv_vector_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
  601. .Case("hybrid_patchable", (true && ( Target.getTriple().isWindowsArm64EC() ) ? 1 : 0))
  602. .Case("standalone_debug", (1))
  603. .Case("sycl_kernel", (1))
  604. .Case("objc_precise_lifetime", (1))
  605. .Case("btf_type_tag", (1))
  606. .Case("counted_by", (1))
  607. .Case("code_align", (1))
  608. .Case("ownership_returns", (1))
  609. .Case("capability", (1))
  610. .Case("coro_disable_lifetimebound", (1))
  611. .Case("disable_sanitizer_instrumentation", (1))
  612. .Case("ptrauth_vtable_pointer", (1))
  613. .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))
  614. .Case("preserve_all", (1))
  615. .Case("return_typestate", (1))
  616. .Case("nomerge", (1))
  617. .Case("coro_only_destroy_when_complete", (1))
  618. .Case("shared_locks_required", (1))
  619. .Case("mig_server_routine", (1))
  620. .Case("objc_exception", (1))
  621. .Case("os_returns_retained", (1))
  622. .Case("objc_independent_class", (1))
  623. .Case("no_builtin", (1))
  624. .Case("amdgpu_max_num_work_groups", (1))
  625. .Case("external_source_symbol", (20230206))
  626. .Case("assert_capability", (1))
  627. .Case("availability", (1))
  628. .Case("requires_capability", (1))
  629. .Case("ns_returns_autoreleased", (1))
  630. .Case("scoped_lockable", (1))
  631. .Case("swift_indirect_result", (1))
  632. .Case("xray_never_instrument", (1))
  633. .Case("builtin_alias", (1))
  634. .Case("objc_runtime_visible", (1))
  635. .Case("objc_class_stub", (1))
  636. .Case("xray_log_args", (1))
  637. .Case("cpu_specific", (1))
  638. .Case("swift_error_result", (1))
  639. .Case("no_speculative_load_hardening", (1))
  640. .Case("no_thread_safety_analysis", (1))
  641. .Case("objc_nonlazy_class", (1))
  642. .Case("vectorcall", (1))
  643. .Case("min_vector_width", (1))
  644. .Case("allocating", (1))
  645. .Case("consumable_set_state_on_read", (1))
  646. .Case("noduplicate", (1))
  647. .Case("lifetimebound", (1))
  648. .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))
  649. .Case("ibaction", (1))
  650. .Case("opencl_generic", (1))
  651. .Case("coro_return_type", (1))
  652. .Case("guarded_var", (1))
  653. .Case("os_consumed", (1))
  654. .Case("bpf_fastcall", (true && (T.getArch() == llvm::Triple::bpfel || T.getArch() == llvm::Triple::bpfeb) ? 1 : 0))
  655. .Case("nouwtable", (1))
  656. .Case("speculative_load_hardening", (1))
  657. .Case("export_name", (true && (T.getArch() == llvm::Triple::wasm32 || T.getArch() == llvm::Triple::wasm64) ? 1 : 0))
  658. .Case("exclude_from_explicit_instantiation", (1))
  659. .Case("xray_always_instrument", (1))
  660. .Case("ext_vector_type", (1))
  661. .Case("unsafe_buffer_usage", (1))
  662. .Case("objc_subclassing_restricted", (1))
  663. .Case("pt_guarded_var", (1))
  664. .Case("pass_dynamic_object_size", (1))
  665. .Case("musttail", (1))
  666. .Case("preferred_name", (1))
  667. .Case("cf_returns_not_retained", (1))
  668. .Case("type_tag_for_datatype", (1))
  669. .Case("test_typestate", (1))
  670. .Case("unavailable", (1))
  671. .Case("swiftcall", (1))
  672. .Case("swift_async_context", (1))
  673. .Case("type_visibility", (1))
  674. .Case("objc_direct_members", (1))
  675. .Case("ns_returns_retained", (1))
  676. .Case("ns_consumes_self", (1))
  677. .Case("enforce_tcb", (1))
  678. .Case("opencl_private", (1))
  679. .Case("address_space", (1))
  680. .Case("blocks", (1))
  681. .Case("objc_runtime_name", (1))
  682. .Case("shared_capability", (1))
  683. .Case("preserve_most", (1))
  684. .Case("called_once", (1))
  685. .Case("objc_root_class", (1))
  686. .Case("guard", (true && (T.getOS() == llvm::Triple::Win32) ? 1 : 0))
  687. .Case("os_consumes_this", (1))
  688. .Case("objc_gc", (1))
  689. .Case("import_name", (true && (T.getArch() == llvm::Triple::wasm32 || T.getArch() == llvm::Triple::wasm64) ? 1 : 0))
  690. .Case("objc_arc_weak_reference_unavailable", (1))
  691. .Case("pascal", (1))
  692. .Case("release_handle", (1))
  693. .Case("release_generic_capability", (1))
  694. .Case("os_returns_retained_on_non_zero", (1))
  695. .Case("enum_extensibility", (1))
  696. .Case("using_if_exists", (1))
  697. .Case("enforce_read_only_placement", (1))
  698. .Case("intel_ocl_bicc", (1))
  699. .Case("ns_returns_not_retained", (1))
  700. .Case("sized_by_or_null", (1))
  701. .Case("noescape", (1))
  702. .Case("no_destroy", (1))
  703. .Case("nonblocking", (1))
  704. .Case("pointer_with_type_tag", (1))
  705. .Case("objc_requires_super", (1))
  706. .Case("opencl_constant", (1))
  707. .Case("release_shared_capability", (1))
  708. .Case("lifetime_capture_by", (1))
  709. .Case("swiftasynccall", (1))
  710. .Case("callable_when", (1))
  711. .Case("disable_tail_calls", (1))
  712. .Case("amdgpu_waves_per_eu", (1))
  713. .Case("opencl_global", (1))
  714. .Default(0);
  715. } else if (ScopeName == "gnu") {
  716. return llvm::StringSwitch<int>(Name)
  717. .Case("alloc_size", (1))
  718. .Case("always_inline", (1))
  719. .Case("init_priority", (true && ( !Target.getTriple().isOSzOS() ) ? 1 : 0))
  720. .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))
  721. .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))
  722. .Case("unused", (1))
  723. .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))
  724. .Case("target", (1))
  725. .Case("retain", (1))
  726. .Case("cleanup", (1))
  727. .Case("flatten", (1))
  728. .Case("deprecated", (1))
  729. .Case("warn_unused", (1))
  730. .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))
  731. .Case("zero_call_used_regs", (1))
  732. .Case("pcs", (1))
  733. .Case("stdcall", (1))
  734. .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))
  735. .Case("sysv_abi", (1))
  736. .Case("ifunc", (true && ( Target.supportsIFunc() ) ? 1 : 0))
  737. .Case("constructor", (1))
  738. .Case("force_align_arg_pointer", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
  739. .Case("no_stack_protector", (1))
  740. .Case("returns_nonnull", (1))
  741. .Case("may_alias", (1))
  742. .Case("nonstring", (1))
  743. .Case("dllimport", (true && ( Target.getTriple().hasDLLImportExport() ) ? 1 : 0))
  744. .Case("sentinel", (1))
  745. .Case("warning", (1))
  746. .Case("format", (1))
  747. .Case("tls_model", (1))
  748. .Case("leaf", (1))
  749. .Case("nocommon", (1))
  750. .Case("format_matches", (1))
  751. .Case("dllexport", (true && ( Target.getTriple().hasDLLImportExport() ) ? 1 : 0))
  752. .Case("no_split_stack", (1))
  753. .Case("abi_tag", (1))
  754. .Case("no_profile_instrument_function", (1))
  755. .Case("cold", (1))
  756. .Case("error", (1))
  757. .Case("common", (1))
  758. .Case("alias", (1))
  759. .Case("nocf_check", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
  760. .Case("regcall", (1))
  761. .Case("assume_aligned", (1))
  762. .Case("micromips", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
  763. .Case("hot", (1))
  764. .Case("gnu_inline", (1))
  765. .Case("target_clones", (1))
  766. .Case("__const", (1))
  767. .Case("alloc_align", (1))
  768. .Case("destructor", (1))
  769. .Case("no_randomize_layout", (1))
  770. .Case("format_arg", (1))
  771. .Case("noreturn", (1))
  772. .Case("mips16", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
  773. .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))
  774. .Case("section", (1))
  775. .Case("ms_abi", (1))
  776. .Case("nonnull", (1))
  777. .Case("nothrow", (1))
  778. .Case("artificial", (1))
  779. .Case("noinline", (1))
  780. .Case("regparm", (1))
  781. .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))
  782. .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))
  783. .Case("aligned", (1))
  784. .Case("nomicromips", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
  785. .Case("used", (1))
  786. .Case("no_sanitize", (1))
  787. .Case("randomize_layout", (1))
  788. .Case("packed", (1))
  789. .Case("visibility", (1))
  790. .Case("pure", (1))
  791. .Case("nomips16", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
  792. .Case("signal", (true && (T.getArch() == llvm::Triple::avr) ? 1 : 0))
  793. .Case("no_instrument_function", (1))
  794. .Case("nodebug", (1))
  795. .Case("no_address_safety_analysis", (1))
  796. .Case("no_sanitize_address", (1))
  797. .Case("transparent_union", (1))
  798. .Case("const", (1))
  799. .Case("weakref", (1))
  800. .Case("mode", (1))
  801. .Case("vector_size", (1))
  802. .Case("naked", (1))
  803. .Case("no_caller_saved_registers", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
  804. .Case("no_sanitize_thread", (1))
  805. .Case("function_return", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
  806. .Case("thiscall", (1))
  807. .Case("malloc", (1))
  808. .Case("weak", (1))
  809. .Case("fastcall", (1))
  810. .Case("warn_unused_result", (1))
  811. .Case("cdecl", (1))
  812. .Case("fallthrough", (1))
  813. .Case("ms_struct", (1))
  814. .Case("returns_twice", (1))
  815. .Case("selectany", (1))
  816. .Default(0);
  817. } else if (ScopeName == "gsl") {
  818. return llvm::StringSwitch<int>(Name)
  819. .Case("suppress", (1))
  820. .Case("Pointer", (1))
  821. .Case("Owner", (1))
  822. .Default(0);
  823. } else if (ScopeName == "hlsl") {
  824. return llvm::StringSwitch<int>(Name)
  825. .Case("contained_type", (1))
  826. .Case("raw_buffer", (1))
  827. .Case("is_rov", (1))
  828. .Case("resource_class", (1))
  829. .Default(0);
  830. } else if (ScopeName == "msvc") {
  831. return llvm::StringSwitch<int>(Name)
  832. .Case("noinline", (1))
  833. .Case("constexpr", (1))
  834. .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) && ( Target.getCXXABI().isMicrosoft() ) ? 201803 : 0))
  835. .Default(0);
  836. } else if (ScopeName == "omp") {
  837. return llvm::StringSwitch<int>(Name)
  838. .Case("assume", (1))
  839. .Default(0);
  840. } else if (ScopeName == "riscv") {
  841. return llvm::StringSwitch<int>(Name)
  842. .Case("vls_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
  843. .Case("vector_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
  844. .Default(0);
  845. }
  846. } break;
  847. case AttributeCommonInfo::Syntax::AS_C23: {
  848. if (ScopeName == "") {
  849. return llvm::StringSwitch<int>(Name)
  850. .Case("nodiscard", (202003))
  851. .Case("_Noreturn", (202202))
  852. .Case("noreturn", (202202))
  853. .Case("maybe_unused", (202106))
  854. .Case("fallthrough", (201910))
  855. .Case("deprecated", (201904))
  856. .Default(0);
  857. } else if (ScopeName == "clang") {
  858. return llvm::StringSwitch<int>(Name)
  859. .Case("objc_bridge_related", (1))
  860. .Case("objc_externally_retained", (1))
  861. .Case("suppress", (1))
  862. .Case("not_tail_called", (1))
  863. .Case("always_inline", (1))
  864. .Case("btf_decl_tag", (1))
  865. .Case("riscv_vector_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
  866. .Case("hybrid_patchable", (true && ( Target.getTriple().isWindowsArm64EC() ) ? 1 : 0))
  867. .Case("sycl_kernel", (1))
  868. .Case("objc_precise_lifetime", (1))
  869. .Case("preserve_static_offset", (true && (T.getArch() == llvm::Triple::bpfel || T.getArch() == llvm::Triple::bpfeb) ? 1 : 0))
  870. .Case("btf_type_tag", (1))
  871. .Case("coro_await_elidable", (1))
  872. .Case("counted_by", (1))
  873. .Case("code_align", (1))
  874. .Case("ownership_takes", (1))
  875. .Case("ownership_returns", (1))
  876. .Case("opencl_local", (1))
  877. .Case("coro_disable_lifetimebound", (1))
  878. .Case("neon_vector_type", (1))
  879. .Case("disable_sanitizer_instrumentation", (1))
  880. .Case("ptrauth_vtable_pointer", (1))
  881. .Case("export_name", (true && (T.getArch() == llvm::Triple::wasm32 || T.getArch() == llvm::Triple::wasm64) ? 1 : 0))
  882. .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))
  883. .Case("sized_by", (1))
  884. .Case("acquire_handle", (1))
  885. .Case("preserve_all", (1))
  886. .Case("nomerge", (1))
  887. .Case("coro_only_destroy_when_complete", (1))
  888. .Case("argument_with_type_tag", (1))
  889. .Case("m68k_rtd", (1))
  890. .Case("objc_method_family", (1))
  891. .Case("unlikely", (1))
  892. .Case("mig_server_routine", (1))
  893. .Case("swift_context", (1))
  894. .Case("objc_exception", (1))
  895. .Case("likely", (1))
  896. .Case("os_returns_retained", (1))
  897. .Case("overloadable", (1))
  898. .Case("optnone", (1))
  899. .Case("coro_await_elidable_argument", (1))
  900. .Case("preserve_access_index", (true && (T.getArch() == llvm::Triple::bpfel || T.getArch() == llvm::Triple::bpfeb) ? 1 : 0))
  901. .Case("objc_direct", (1))
  902. .Case("convergent", (1))
  903. .Case("no_stack_protector", (1))
  904. .Case("ownership_holds", (1))
  905. .Case("objc_independent_class", (1))
  906. .Case("no_builtin", (1))
  907. .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))
  908. .Case("external_source_symbol", (20230206))
  909. .Case("availability", (1))
  910. .Case("sycl_special_class", (1))
  911. .Case("import_module", (true && (T.getArch() == llvm::Triple::wasm32 || T.getArch() == llvm::Triple::wasm64) ? 1 : 0))
  912. .Case("annotate_type", (1))
  913. .Case("ns_returns_autoreleased", (1))
  914. .Case("available_only_in_default_eval_method", (1))
  915. .Case("xray_never_instrument", (1))
  916. .Case("NSObject", (1))
  917. .Case("builtin_alias", (1))
  918. .Case("objc_runtime_visible", (1))
  919. .Case("opencl_global_device", (1))
  920. .Case("swift_indirect_result", (1))
  921. .Case("objc_returns_inner_pointer", (1))
  922. .Case("objc_class_stub", (1))
  923. .Case("xray_log_args", (1))
  924. .Case("ns_consumed", (1))
  925. .Case("cpu_specific", (1))
  926. .Case("swift_error_result", (1))
  927. .Case("iboutlet", (1))
  928. .Case("atomic", (1))
  929. .Case("no_speculative_load_hardening", (1))
  930. .Case("no_thread_safety_analysis", (1))
  931. .Case("objc_nonlazy_class", (1))
  932. .Case("maybe_undef", (1))
  933. .Case("vectorcall", (1))
  934. .Case("opencl_global_host", (1))
  935. .Case("objc_designated_initializer", (1))
  936. .Case("min_vector_width", (1))
  937. .Case("sycl_kernel_entry_point", (1))
  938. .Case("cf_unknown_transfer", (1))
  939. .Case("allocating", (1))
  940. .Case("no_sanitize_memory", (1))
  941. .Case("noduplicate", (1))
  942. .Case("callback", (1))
  943. .Case("objc_boxable", (1))
  944. .Case("swift_async_error", (1))
  945. .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))
  946. .Case("ibaction", (1))
  947. .Case("enforce_tcb_leaf", (1))
  948. .Case("opencl_generic", (1))
  949. .Case("coro_return_type", (1))
  950. .Case("nvptx_kernel", (true && (T.getArch() == llvm::Triple::nvptx || T.getArch() == llvm::Triple::nvptx64) ? 1 : 0))
  951. .Case("objc_non_runtime_protocol", (1))
  952. .Case("aarch64_sve_pcs", (1))
  953. .Case("os_consumed", (1))
  954. .Case("bpf_fastcall", (true && (T.getArch() == llvm::Triple::bpfel || T.getArch() == llvm::Triple::bpfeb) ? 1 : 0))
  955. .Case("cf_audited_transfer", (1))
  956. .Case("noconvergent", (1))
  957. .Case("nouwtable", (1))
  958. .Case("riscv_vls_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
  959. .Case("exclude_from_explicit_instantiation", (1))
  960. .Case("require_explicit_initialization", (1))
  961. .Case("xray_always_instrument", (1))
  962. .Case("cf_returns_retained", (1))
  963. .Case("ext_vector_type", (1))
  964. .Case("unsafe_buffer_usage", (1))
  965. .Case("annotate", (1))
  966. .Case("cpu_dispatch", (1))
  967. .Case("objc_subclassing_restricted", (1))
  968. .Case("neon_polyvector_type", (1))
  969. .Case("speculative_load_hardening", (1))
  970. .Case("noinline", (1))
  971. .Case("assume", (1))
  972. .Case("musttail", (1))
  973. .Case("swift_async", (1))
  974. .Case("cf_returns_not_retained", (1))
  975. .Case("use_handle", (1))
  976. .Case("type_tag_for_datatype", (1))
  977. .Case("pass_dynamic_object_size", (1))
  978. .Case("nonallocating", (1))
  979. .Case("objc_requires_property_definitions", (1))
  980. .Case("counted_by_or_null", (1))
  981. .Case("swift_async_context", (1))
  982. .Case("lto_visibility_public", (1))
  983. .Case("iboutletcollection", (1))
  984. .Case("objc_ownership", (1))
  985. .Case("swiftcall", (1))
  986. .Case("type_visibility", (1))
  987. .Case("objc_direct_members", (1))
  988. .Case("ns_returns_retained", (1))
  989. .Case("ns_consumes_self", (1))
  990. .Case("preferred_type", (1))
  991. .Case("enforce_tcb", (1))
  992. .Case("opencl_private", (1))
  993. .Case("blocks", (1))
  994. .Case("address_space", (1))
  995. .Case("loader_uninitialized", (1))
  996. .Case("cfi_canonical_jump_table", (1))
  997. .Case("no_sanitize", (1))
  998. .Case("objc_runtime_name", (1))
  999. .Case("preserve_most", (1))
  1000. .Case("diagnose_as_builtin", (1))
  1001. .Case("noderef", (1))
  1002. .Case("objc_bridge", (1))
  1003. .Case("called_once", (1))
  1004. .Case("coro_lifetimebound", (1))
  1005. .Case("objc_protocol_requires_explicit_implementation", (1))
  1006. .Case("objc_root_class", (1))
  1007. .Case("unavailable", (1))
  1008. .Case("guard", (true && (T.getOS() == llvm::Triple::Win32) ? 1 : 0))
  1009. .Case("os_consumes_this", (1))
  1010. .Case("objc_gc", (1))
  1011. .Case("import_name", (true && (T.getArch() == llvm::Triple::wasm32 || T.getArch() == llvm::Triple::wasm64) ? 1 : 0))
  1012. .Case("objc_arc_weak_reference_unavailable", (1))
  1013. .Case("flag_enum", (1))
  1014. .Case("pascal", (1))
  1015. .Case("objc_bridge_mutable", (1))
  1016. .Case("release_handle", (1))
  1017. .Case("os_returns_retained_on_non_zero", (1))
  1018. .Case("enum_extensibility", (1))
  1019. .Case("coro_wrapper", (1))
  1020. .Case("cf_consumed", (1))
  1021. .Case("enforce_read_only_placement", (1))
  1022. .Case("pass_object_size", (1))
  1023. .Case("blocking", (1))
  1024. .Case("ns_returns_not_retained", (1))
  1025. .Case("sized_by_or_null", (1))
  1026. .Case("amdgpu_kernel", (1))
  1027. .Case("noescape", (1))
  1028. .Case("os_returns_retained_on_zero", (1))
  1029. .Case("clspv_libclc_builtin", (1))
  1030. .Case("matrix_type", (1))
  1031. .Case("minsize", (1))
  1032. .Case("nonblocking", (1))
  1033. .Case("pointer_with_type_tag", (1))
  1034. .Case("objc_requires_super", (1))
  1035. .Case("opencl_constant", (1))
  1036. .Case("swiftasynccall", (1))
  1037. .Case("aarch64_vector_pcs", (1))
  1038. .Case("disable_tail_calls", (1))
  1039. .Case("os_returns_not_retained", (1))
  1040. .Case("internal_linkage", (1))
  1041. .Case("weak_import", (1))
  1042. .Case("opencl_global", (1))
  1043. .Default(0);
  1044. } else if (ScopeName == "gnu") {
  1045. return llvm::StringSwitch<int>(Name)
  1046. .Case("alloc_size", (1))
  1047. .Case("always_inline", (1))
  1048. .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))
  1049. .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))
  1050. .Case("unused", (1))
  1051. .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))
  1052. .Case("target", (1))
  1053. .Case("retain", (1))
  1054. .Case("cleanup", (1))
  1055. .Case("flatten", (1))
  1056. .Case("deprecated", (1))
  1057. .Case("warn_unused", (1))
  1058. .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))
  1059. .Case("zero_call_used_regs", (1))
  1060. .Case("pcs", (1))
  1061. .Case("stdcall", (1))
  1062. .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))
  1063. .Case("sysv_abi", (1))
  1064. .Case("ifunc", (true && ( Target.supportsIFunc() ) ? 1 : 0))
  1065. .Case("constructor", (1))
  1066. .Case("force_align_arg_pointer", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
  1067. .Case("no_stack_protector", (1))
  1068. .Case("returns_nonnull", (1))
  1069. .Case("may_alias", (1))
  1070. .Case("nonstring", (1))
  1071. .Case("dllimport", (true && ( Target.getTriple().hasDLLImportExport() ) ? 1 : 0))
  1072. .Case("sentinel", (1))
  1073. .Case("warning", (1))
  1074. .Case("format", (1))
  1075. .Case("tls_model", (1))
  1076. .Case("leaf", (1))
  1077. .Case("nocommon", (1))
  1078. .Case("format_matches", (1))
  1079. .Case("dllexport", (true && ( Target.getTriple().hasDLLImportExport() ) ? 1 : 0))
  1080. .Case("no_split_stack", (1))
  1081. .Case("no_profile_instrument_function", (1))
  1082. .Case("cold", (1))
  1083. .Case("error", (1))
  1084. .Case("common", (1))
  1085. .Case("alias", (1))
  1086. .Case("nocf_check", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
  1087. .Case("regcall", (1))
  1088. .Case("assume_aligned", (1))
  1089. .Case("micromips", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
  1090. .Case("hot", (1))
  1091. .Case("gnu_inline", (1))
  1092. .Case("target_clones", (1))
  1093. .Case("__const", (1))
  1094. .Case("alloc_align", (1))
  1095. .Case("destructor", (1))
  1096. .Case("no_randomize_layout", (1))
  1097. .Case("format_arg", (1))
  1098. .Case("noreturn", (1))
  1099. .Case("mips16", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
  1100. .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))
  1101. .Case("section", (1))
  1102. .Case("ms_abi", (1))
  1103. .Case("nonnull", (1))
  1104. .Case("nothrow", (1))
  1105. .Case("artificial", (1))
  1106. .Case("noinline", (1))
  1107. .Case("regparm", (1))
  1108. .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))
  1109. .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))
  1110. .Case("aligned", (1))
  1111. .Case("nomicromips", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
  1112. .Case("used", (1))
  1113. .Case("no_sanitize", (1))
  1114. .Case("randomize_layout", (1))
  1115. .Case("packed", (1))
  1116. .Case("visibility", (1))
  1117. .Case("pure", (1))
  1118. .Case("nomips16", (true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0))
  1119. .Case("signal", (true && (T.getArch() == llvm::Triple::avr) ? 1 : 0))
  1120. .Case("no_instrument_function", (1))
  1121. .Case("nodebug", (1))
  1122. .Case("no_address_safety_analysis", (1))
  1123. .Case("no_sanitize_address", (1))
  1124. .Case("transparent_union", (1))
  1125. .Case("const", (1))
  1126. .Case("weakref", (1))
  1127. .Case("mode", (1))
  1128. .Case("vector_size", (1))
  1129. .Case("naked", (1))
  1130. .Case("no_caller_saved_registers", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
  1131. .Case("no_sanitize_thread", (1))
  1132. .Case("function_return", (true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0))
  1133. .Case("thiscall", (1))
  1134. .Case("malloc", (1))
  1135. .Case("weak", (1))
  1136. .Case("fastcall", (1))
  1137. .Case("warn_unused_result", (1))
  1138. .Case("cdecl", (1))
  1139. .Case("fallthrough", (1))
  1140. .Case("ms_struct", (1))
  1141. .Case("returns_twice", (1))
  1142. .Case("selectany", (1))
  1143. .Default(0);
  1144. } else if (ScopeName == "msvc") {
  1145. return llvm::StringSwitch<int>(Name)
  1146. .Case("noinline", (1))
  1147. .Default(0);
  1148. } else if (ScopeName == "riscv") {
  1149. return llvm::StringSwitch<int>(Name)
  1150. .Case("vls_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
  1151. .Case("vector_cc", (true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0))
  1152. .Default(0);
  1153. }
  1154. } break;
  1155. case AttributeCommonInfo::Syntax::AS_Keyword:
  1156. case AttributeCommonInfo::Syntax::AS_ContextSensitiveKeyword:
  1157. llvm_unreachable("hasAttribute not supported for keyword");
  1158. return 0;
  1159. case AttributeCommonInfo::Syntax::AS_Implicit:
  1160. llvm_unreachable ("hasAttribute not supported for AS_Implicit");
  1161. return 0;
  1162. }
  1163.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement