1/* This file contains the definitions and documentation for the 2 Address Sanitizer and Thread Sanitizer builtins used in the GNU compiler. 3 Copyright (C) 2012-2018 Free Software Foundation, Inc. 4 5This file is part of GCC. 6 7GCC is free software; you can redistribute it and/or modify it under 8the terms of the GNU General Public License as published by the Free 9Software Foundation; either version 3, or (at your option) any later 10version. 11 12GCC is distributed in the hope that it will be useful, but WITHOUT ANY 13WARRANTY; without even the implied warranty of MERCHANTABILITY or 14FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15for more details. 16 17You should have received a copy of the GNU General Public License 18along with GCC; see the file COPYING3. If not see 19<http://www.gnu.org/licenses/>. */ 20 21/* Before including this file, you should define a macro: 22 23 DEF_BUILTIN_STUB(ENUM, NAME) 24 DEF_SANITIZER_BUILTIN (ENUM, NAME, TYPE, ATTRS) 25 26 See builtins.def for details. 27 The builtins are created by the C-family of FEs in c-family/c-common.c, 28 for other FEs by asan.c. */ 29 30/* This has to come before all the sanitizer builtins. */ 31DEF_BUILTIN_STUB(BEGIN_SANITIZER_BUILTINS, (const char *)0) 32 33/* Address Sanitizer */ 34DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_INIT, "__asan_init", 35 BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) 36DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_VERSION_MISMATCH_CHECK, 37 "__asan_version_mismatch_check_v8", 38 BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) 39/* Do not reorder the BUILT_IN_ASAN_{REPORT,CHECK}* builtins, e.g. cfgcleanup.c 40 relies on this order. */ 41DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_LOAD1, "__asan_report_load1", 42 BT_FN_VOID_PTR, ATTR_TMPURE_NORETURN_NOTHROW_LEAF_LIST) 43DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_LOAD2, "__asan_report_load2", 44 BT_FN_VOID_PTR, ATTR_TMPURE_NORETURN_NOTHROW_LEAF_LIST) 45DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_LOAD4, "__asan_report_load4", 46 BT_FN_VOID_PTR, ATTR_TMPURE_NORETURN_NOTHROW_LEAF_LIST) 47DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_LOAD8, "__asan_report_load8", 48 BT_FN_VOID_PTR, ATTR_TMPURE_NORETURN_NOTHROW_LEAF_LIST) 49DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_LOAD16, "__asan_report_load16", 50 BT_FN_VOID_PTR, ATTR_TMPURE_NORETURN_NOTHROW_LEAF_LIST) 51DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_LOAD_N, "__asan_report_load_n", 52 BT_FN_VOID_PTR_PTRMODE, 53 ATTR_TMPURE_NORETURN_NOTHROW_LEAF_LIST) 54DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_STORE1, "__asan_report_store1", 55 BT_FN_VOID_PTR, ATTR_TMPURE_NORETURN_NOTHROW_LEAF_LIST) 56DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_STORE2, "__asan_report_store2", 57 BT_FN_VOID_PTR, ATTR_TMPURE_NORETURN_NOTHROW_LEAF_LIST) 58DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_STORE4, "__asan_report_store4", 59 BT_FN_VOID_PTR, ATTR_TMPURE_NORETURN_NOTHROW_LEAF_LIST) 60DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_STORE8, "__asan_report_store8", 61 BT_FN_VOID_PTR, ATTR_TMPURE_NORETURN_NOTHROW_LEAF_LIST) 62DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_STORE16, "__asan_report_store16", 63 BT_FN_VOID_PTR, ATTR_TMPURE_NORETURN_NOTHROW_LEAF_LIST) 64DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_STORE_N, "__asan_report_store_n", 65 BT_FN_VOID_PTR_PTRMODE, 66 ATTR_TMPURE_NORETURN_NOTHROW_LEAF_LIST) 67DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_LOAD1_NOABORT, 68 "__asan_report_load1_noabort", 69 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 70DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_LOAD2_NOABORT, 71 "__asan_report_load2_noabort", 72 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 73DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_LOAD4_NOABORT, 74 "__asan_report_load4_noabort", 75 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 76DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_LOAD8_NOABORT, 77 "__asan_report_load8_noabort", 78 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 79DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_LOAD16_NOABORT, 80 "__asan_report_load16_noabort", 81 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 82DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_LOAD_N_NOABORT, 83 "__asan_report_load_n_noabort", 84 BT_FN_VOID_PTR_PTRMODE, 85 ATTR_TMPURE_NOTHROW_LEAF_LIST) 86DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_STORE1_NOABORT, 87 "__asan_report_store1_noabort", 88 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 89DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_STORE2_NOABORT, 90 "__asan_report_store2_noabort", 91 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 92DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_STORE4_NOABORT, 93 "__asan_report_store4_noabort", 94 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 95DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_STORE8_NOABORT, 96 "__asan_report_store8_noabort", 97 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 98DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_STORE16_NOABORT, 99 "__asan_report_store16_noabort", 100 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 101DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REPORT_STORE_N_NOABORT, 102 "__asan_report_store_n_noabort", 103 BT_FN_VOID_PTR_PTRMODE, 104 ATTR_TMPURE_NOTHROW_LEAF_LIST) 105DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_LOAD1, "__asan_load1", 106 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 107DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_LOAD2, "__asan_load2", 108 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 109DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_LOAD4, "__asan_load4", 110 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 111DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_LOAD8, "__asan_load8", 112 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 113DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_LOAD16, "__asan_load16", 114 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 115DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_LOADN, "__asan_loadN", 116 BT_FN_VOID_PTR_PTRMODE, ATTR_TMPURE_NOTHROW_LEAF_LIST) 117DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_STORE1, "__asan_store1", 118 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 119DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_STORE2, "__asan_store2", 120 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 121DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_STORE4, "__asan_store4", 122 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 123DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_STORE8, "__asan_store8", 124 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 125DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_STORE16, "__asan_store16", 126 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 127DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_STOREN, "__asan_storeN", 128 BT_FN_VOID_PTR_PTRMODE, ATTR_TMPURE_NOTHROW_LEAF_LIST) 129DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_LOAD1_NOABORT, "__asan_load1_noabort", 130 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 131DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_LOAD2_NOABORT, "__asan_load2_noabort", 132 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 133DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_LOAD4_NOABORT, "__asan_load4_noabort", 134 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 135DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_LOAD8_NOABORT, "__asan_load8_noabort", 136 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 137DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_LOAD16_NOABORT, "__asan_load16_noabort", 138 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 139DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_LOADN_NOABORT, "__asan_loadN_noabort", 140 BT_FN_VOID_PTR_PTRMODE, ATTR_TMPURE_NOTHROW_LEAF_LIST) 141DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_STORE1_NOABORT, "__asan_store1_noabort", 142 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 143DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_STORE2_NOABORT, "__asan_store2_noabort", 144 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 145DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_STORE4_NOABORT, "__asan_store4_noabort", 146 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 147DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_STORE8_NOABORT, "__asan_store8_noabort", 148 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 149DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_STORE16_NOABORT, "__asan_store16_noabort", 150 BT_FN_VOID_PTR, ATTR_TMPURE_NOTHROW_LEAF_LIST) 151DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_STOREN_NOABORT, "__asan_storeN_noabort", 152 BT_FN_VOID_PTR_PTRMODE, ATTR_TMPURE_NOTHROW_LEAF_LIST) 153DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_REGISTER_GLOBALS, 154 "__asan_register_globals", 155 BT_FN_VOID_PTR_PTRMODE, ATTR_NOTHROW_LEAF_LIST) 156DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_UNREGISTER_GLOBALS, 157 "__asan_unregister_globals", 158 BT_FN_VOID_PTR_PTRMODE, ATTR_NOTHROW_LEAF_LIST) 159DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_HANDLE_NO_RETURN, 160 "__asan_handle_no_return", 161 BT_FN_VOID, ATTR_TMPURE_NOTHROW_LEAF_LIST) 162DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT, 163 "__asan_before_dynamic_init", 164 BT_FN_VOID_CONST_PTR, ATTR_NOTHROW_LEAF_LIST) 165DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_AFTER_DYNAMIC_INIT, 166 "__asan_after_dynamic_init", 167 BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) 168DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_POISON_STACK_MEMORY, 169 "__asan_poison_stack_memory", 170 BT_FN_VOID_PTR_PTRMODE, ATTR_NOTHROW_LEAF_LIST) 171DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_UNPOISON_STACK_MEMORY, 172 "__asan_unpoison_stack_memory", 173 BT_FN_VOID_PTR_PTRMODE, ATTR_NOTHROW_LEAF_LIST) 174DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_ALLOCA_POISON, "__asan_alloca_poison", 175 BT_FN_VOID_PTR_PTRMODE, ATTR_NOTHROW_LEAF_LIST) 176DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_ALLOCAS_UNPOISON, "__asan_allocas_unpoison", 177 BT_FN_VOID_PTR_PTRMODE, ATTR_NOTHROW_LEAF_LIST) 178DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_POINTER_COMPARE, "__sanitizer_ptr_cmp", 179 BT_FN_VOID_PTR_PTRMODE, ATTR_NOTHROW_LEAF_LIST) 180DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_POINTER_SUBTRACT, "__sanitizer_ptr_sub", 181 BT_FN_VOID_PTR_PTRMODE, ATTR_NOTHROW_LEAF_LIST) 182 183/* Thread Sanitizer */ 184DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_INIT, "__tsan_init", 185 BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) 186DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_FUNC_ENTRY, "__tsan_func_entry", 187 BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST) 188DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_FUNC_EXIT, "__tsan_func_exit", 189 BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST) 190DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_VPTR_UPDATE, "__tsan_vptr_update", 191 BT_FN_VOID_PTR_PTR, ATTR_NOTHROW_LEAF_LIST) 192DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_READ1, "__tsan_read1", 193 BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST) 194DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_READ2, "__tsan_read2", 195 BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST) 196DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_READ4, "__tsan_read4", 197 BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST) 198DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_READ8, "__tsan_read8", 199 BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST) 200DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_READ16, "__tsan_read16", 201 BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST) 202DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_WRITE1, "__tsan_write1", 203 BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST) 204DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_WRITE2, "__tsan_write2", 205 BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST) 206DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_WRITE4, "__tsan_write4", 207 BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST) 208DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_WRITE8, "__tsan_write8", 209 BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST) 210DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_WRITE16, "__tsan_write16", 211 BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST) 212DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_READ_RANGE, "__tsan_read_range", 213 BT_FN_VOID_PTR_PTRMODE, ATTR_NOTHROW_LEAF_LIST) 214DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_WRITE_RANGE, "__tsan_write_range", 215 BT_FN_VOID_PTR_PTRMODE, ATTR_NOTHROW_LEAF_LIST) 216 217DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC8_LOAD, 218 "__tsan_atomic8_load", 219 BT_FN_I1_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST) 220DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC16_LOAD, 221 "__tsan_atomic16_load", 222 BT_FN_I2_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST) 223DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC32_LOAD, 224 "__tsan_atomic32_load", 225 BT_FN_I4_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST) 226DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC64_LOAD, 227 "__tsan_atomic64_load", 228 BT_FN_I8_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST) 229DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC128_LOAD, 230 "__tsan_atomic128_load", 231 BT_FN_I16_CONST_VPTR_INT, ATTR_NOTHROW_LEAF_LIST) 232 233DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC8_STORE, 234 "__tsan_atomic8_store", 235 BT_FN_VOID_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 236DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC16_STORE, 237 "__tsan_atomic16_store", 238 BT_FN_VOID_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 239DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC32_STORE, 240 "__tsan_atomic32_store", 241 BT_FN_VOID_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 242DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC64_STORE, 243 "__tsan_atomic64_store", 244 BT_FN_VOID_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 245DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC128_STORE, 246 "__tsan_atomic128_store", 247 BT_FN_VOID_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST) 248 249DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC8_EXCHANGE, 250 "__tsan_atomic8_exchange", 251 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 252DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC16_EXCHANGE, 253 "__tsan_atomic16_exchange", 254 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 255DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC32_EXCHANGE, 256 "__tsan_atomic32_exchange", 257 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 258DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC64_EXCHANGE, 259 "__tsan_atomic64_exchange", 260 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 261DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC128_EXCHANGE, 262 "__tsan_atomic128_exchange", 263 BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST) 264 265DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC8_FETCH_ADD, 266 "__tsan_atomic8_fetch_add", 267 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 268DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC16_FETCH_ADD, 269 "__tsan_atomic16_fetch_add", 270 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 271DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC32_FETCH_ADD, 272 "__tsan_atomic32_fetch_add", 273 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 274DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC64_FETCH_ADD, 275 "__tsan_atomic64_fetch_add", 276 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 277DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC128_FETCH_ADD, 278 "__tsan_atomic128_fetch_add", 279 BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST) 280 281DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC8_FETCH_SUB, 282 "__tsan_atomic8_fetch_sub", 283 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 284DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC16_FETCH_SUB, 285 "__tsan_atomic16_fetch_sub", 286 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 287DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC32_FETCH_SUB, 288 "__tsan_atomic32_fetch_sub", 289 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 290DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC64_FETCH_SUB, 291 "__tsan_atomic64_fetch_sub", 292 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 293DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC128_FETCH_SUB, 294 "__tsan_atomic128_fetch_sub", 295 BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST) 296 297DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC8_FETCH_AND, 298 "__tsan_atomic8_fetch_and", 299 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 300DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC16_FETCH_AND, 301 "__tsan_atomic16_fetch_and", 302 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 303DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC32_FETCH_AND, 304 "__tsan_atomic32_fetch_and", 305 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 306DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC64_FETCH_AND, 307 "__tsan_atomic64_fetch_and", 308 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 309DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC128_FETCH_AND, 310 "__tsan_atomic128_fetch_and", 311 BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST) 312 313DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC8_FETCH_OR, 314 "__tsan_atomic8_fetch_or", 315 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 316DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC16_FETCH_OR, 317 "__tsan_atomic16_fetch_or", 318 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 319DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC32_FETCH_OR, 320 "__tsan_atomic32_fetch_or", 321 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 322DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC64_FETCH_OR, 323 "__tsan_atomic64_fetch_or", 324 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 325DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC128_FETCH_OR, 326 "__tsan_atomic128_fetch_or", 327 BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST) 328 329DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC8_FETCH_XOR, 330 "__tsan_atomic8_fetch_xor", 331 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 332DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC16_FETCH_XOR, 333 "__tsan_atomic16_fetch_xor", 334 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 335DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC32_FETCH_XOR, 336 "__tsan_atomic32_fetch_xor", 337 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 338DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC64_FETCH_XOR, 339 "__tsan_atomic64_fetch_xor", 340 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 341DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC128_FETCH_XOR, 342 "__tsan_atomic128_fetch_xor", 343 BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST) 344 345DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC8_FETCH_NAND, 346 "__tsan_atomic8_fetch_nand", 347 BT_FN_I1_VPTR_I1_INT, ATTR_NOTHROW_LEAF_LIST) 348DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC16_FETCH_NAND, 349 "__tsan_atomic16_fetch_nand", 350 BT_FN_I2_VPTR_I2_INT, ATTR_NOTHROW_LEAF_LIST) 351DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC32_FETCH_NAND, 352 "__tsan_atomic32_fetch_nand", 353 BT_FN_I4_VPTR_I4_INT, ATTR_NOTHROW_LEAF_LIST) 354DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC64_FETCH_NAND, 355 "__tsan_atomic64_fetch_nand", 356 BT_FN_I8_VPTR_I8_INT, ATTR_NOTHROW_LEAF_LIST) 357DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC128_FETCH_NAND, 358 "__tsan_atomic128_fetch_nand", 359 BT_FN_I16_VPTR_I16_INT, ATTR_NOTHROW_LEAF_LIST) 360 361DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC8_COMPARE_EXCHANGE_STRONG, 362 "__tsan_atomic8_compare_exchange_strong", 363 BT_FN_BOOL_VPTR_PTR_I1_INT_INT, 364 ATTR_NOTHROW_LEAF_LIST) 365DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC16_COMPARE_EXCHANGE_STRONG, 366 "__tsan_atomic16_compare_exchange_strong", 367 BT_FN_BOOL_VPTR_PTR_I2_INT_INT, 368 ATTR_NOTHROW_LEAF_LIST) 369DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC32_COMPARE_EXCHANGE_STRONG, 370 "__tsan_atomic32_compare_exchange_strong", 371 BT_FN_BOOL_VPTR_PTR_I4_INT_INT, 372 ATTR_NOTHROW_LEAF_LIST) 373DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC64_COMPARE_EXCHANGE_STRONG, 374 "__tsan_atomic64_compare_exchange_strong", 375 BT_FN_BOOL_VPTR_PTR_I8_INT_INT, 376 ATTR_NOTHROW_LEAF_LIST) 377DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC128_COMPARE_EXCHANGE_STRONG, 378 "__tsan_atomic128_compare_exchange_strong", 379 BT_FN_BOOL_VPTR_PTR_I16_INT_INT, 380 ATTR_NOTHROW_LEAF_LIST) 381 382DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC8_COMPARE_EXCHANGE_WEAK, 383 "__tsan_atomic8_compare_exchange_weak", 384 BT_FN_BOOL_VPTR_PTR_I1_INT_INT, 385 ATTR_NOTHROW_LEAF_LIST) 386DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC16_COMPARE_EXCHANGE_WEAK, 387 "__tsan_atomic16_compare_exchange_weak", 388 BT_FN_BOOL_VPTR_PTR_I2_INT_INT, 389 ATTR_NOTHROW_LEAF_LIST) 390DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC32_COMPARE_EXCHANGE_WEAK, 391 "__tsan_atomic32_compare_exchange_weak", 392 BT_FN_BOOL_VPTR_PTR_I4_INT_INT, 393 ATTR_NOTHROW_LEAF_LIST) 394DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC64_COMPARE_EXCHANGE_WEAK, 395 "__tsan_atomic64_compare_exchange_weak", 396 BT_FN_BOOL_VPTR_PTR_I8_INT_INT, 397 ATTR_NOTHROW_LEAF_LIST) 398DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC128_COMPARE_EXCHANGE_WEAK, 399 "__tsan_atomic128_compare_exchange_weak", 400 BT_FN_BOOL_VPTR_PTR_I16_INT_INT, 401 ATTR_NOTHROW_LEAF_LIST) 402 403DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC_THREAD_FENCE, 404 "__tsan_atomic_thread_fence", 405 BT_FN_VOID_INT, ATTR_NOTHROW_LEAF_LIST) 406DEF_SANITIZER_BUILTIN(BUILT_IN_TSAN_ATOMIC_SIGNAL_FENCE, 407 "__tsan_atomic_signal_fence", 408 BT_FN_VOID_INT, ATTR_NOTHROW_LEAF_LIST) 409 410/* Undefined Behavior Sanitizer */ 411DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW, 412 "__ubsan_handle_divrem_overflow", 413 BT_FN_VOID_PTR_PTR_PTR, 414 ATTR_COLD_NOTHROW_LEAF_LIST) 415DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS, 416 "__ubsan_handle_shift_out_of_bounds", 417 BT_FN_VOID_PTR_PTR_PTR, 418 ATTR_COLD_NOTHROW_LEAF_LIST) 419DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE, 420 "__ubsan_handle_builtin_unreachable", 421 BT_FN_VOID_PTR, 422 ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST) 423DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_MISSING_RETURN, 424 "__ubsan_handle_missing_return", 425 BT_FN_VOID_PTR, 426 ATTR_NORETURN_NOTHROW_LEAF_LIST) 427DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE, 428 "__ubsan_handle_vla_bound_not_positive", 429 BT_FN_VOID_PTR_PTR, 430 ATTR_COLD_NOTHROW_LEAF_LIST) 431DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1, 432 "__ubsan_handle_type_mismatch_v1", 433 BT_FN_VOID_PTR_PTR, 434 ATTR_COLD_NOTHROW_LEAF_LIST) 435DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW, 436 "__ubsan_handle_add_overflow", 437 BT_FN_VOID_PTR_PTR_PTR, 438 ATTR_COLD_NOTHROW_LEAF_LIST) 439DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW, 440 "__ubsan_handle_sub_overflow", 441 BT_FN_VOID_PTR_PTR_PTR, 442 ATTR_COLD_NOTHROW_LEAF_LIST) 443DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW, 444 "__ubsan_handle_mul_overflow", 445 BT_FN_VOID_PTR_PTR_PTR, 446 ATTR_COLD_NOTHROW_LEAF_LIST) 447DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW, 448 "__ubsan_handle_negate_overflow", 449 BT_FN_VOID_PTR_PTR, 450 ATTR_COLD_NOTHROW_LEAF_LIST) 451DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE, 452 "__ubsan_handle_load_invalid_value", 453 BT_FN_VOID_PTR_PTR, 454 ATTR_COLD_NOTHROW_LEAF_LIST) 455DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_POINTER_OVERFLOW, 456 "__ubsan_handle_pointer_overflow", 457 BT_FN_VOID_PTR_PTR_PTR, 458 ATTR_COLD_NOTHROW_LEAF_LIST) 459DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT, 460 "__ubsan_handle_divrem_overflow_abort", 461 BT_FN_VOID_PTR_PTR_PTR, 462 ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST) 463DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT, 464 "__ubsan_handle_shift_out_of_bounds_abort", 465 BT_FN_VOID_PTR_PTR_PTR, 466 ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST) 467DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT, 468 "__ubsan_handle_vla_bound_not_positive_abort", 469 BT_FN_VOID_PTR_PTR, 470 ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST) 471DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT, 472 "__ubsan_handle_type_mismatch_v1_abort", 473 BT_FN_VOID_PTR_PTR, 474 ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST) 475DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT, 476 "__ubsan_handle_add_overflow_abort", 477 BT_FN_VOID_PTR_PTR_PTR, 478 ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST) 479DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT, 480 "__ubsan_handle_sub_overflow_abort", 481 BT_FN_VOID_PTR_PTR_PTR, 482 ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST) 483DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT, 484 "__ubsan_handle_mul_overflow_abort", 485 BT_FN_VOID_PTR_PTR_PTR, 486 ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST) 487DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT, 488 "__ubsan_handle_negate_overflow_abort", 489 BT_FN_VOID_PTR_PTR, 490 ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST) 491DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT, 492 "__ubsan_handle_load_invalid_value_abort", 493 BT_FN_VOID_PTR_PTR, 494 ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST) 495DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_POINTER_OVERFLOW_ABORT, 496 "__ubsan_handle_pointer_overflow_abort", 497 BT_FN_VOID_PTR_PTR_PTR, 498 ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST) 499DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW, 500 "__ubsan_handle_float_cast_overflow", 501 BT_FN_VOID_PTR_PTR, 502 ATTR_COLD_NOTHROW_LEAF_LIST) 503DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT, 504 "__ubsan_handle_float_cast_overflow_abort", 505 BT_FN_VOID_PTR_PTR, 506 ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST) 507DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS, 508 "__ubsan_handle_out_of_bounds", 509 BT_FN_VOID_PTR_PTR, 510 ATTR_COLD_NOTHROW_LEAF_LIST) 511DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT, 512 "__ubsan_handle_out_of_bounds_abort", 513 BT_FN_VOID_PTR_PTR, 514 ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST) 515DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_NONNULL_ARG, 516 "__ubsan_handle_nonnull_arg", 517 BT_FN_VOID_PTR, 518 ATTR_COLD_NOTHROW_LEAF_LIST) 519DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT, 520 "__ubsan_handle_nonnull_arg_abort", 521 BT_FN_VOID_PTR, 522 ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST) 523DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1, 524 "__ubsan_handle_nonnull_return_v1", 525 BT_FN_VOID_PTR_PTR, 526 ATTR_COLD_NOTHROW_LEAF_LIST) 527DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT, 528 "__ubsan_handle_nonnull_return_v1_abort", 529 BT_FN_VOID_PTR_PTR, 530 ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST) 531DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN, 532 "__ubsan_handle_invalid_builtin", 533 BT_FN_VOID_PTR, 534 ATTR_COLD_NOTHROW_LEAF_LIST) 535DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT, 536 "__ubsan_handle_invalid_builtin_abort", 537 BT_FN_VOID_PTR, 538 ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST) 539DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS, 540 "__ubsan_handle_dynamic_type_cache_miss", 541 BT_FN_VOID_PTR_PTR_PTR, 542 ATTR_COLD_NOTHROW_LEAF_LIST) 543DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT, 544 "__ubsan_handle_dynamic_type_cache_miss_abort", 545 BT_FN_VOID_PTR_PTR_PTR, 546 ATTR_COLD_NOTHROW_LEAF_LIST) 547 548/* Sanitizer coverage */ 549DEF_SANITIZER_BUILTIN(BUILT_IN_SANITIZER_COV_TRACE_PC, 550 "__sanitizer_cov_trace_pc", 551 BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) 552DEF_SANITIZER_BUILTIN(BUILT_IN_SANITIZER_COV_TRACE_CMP1, 553 "__sanitizer_cov_trace_cmp1", 554 BT_FN_VOID_UINT8_UINT8, ATTR_NOTHROW_LEAF_LIST) 555DEF_SANITIZER_BUILTIN(BUILT_IN_SANITIZER_COV_TRACE_CMP2, 556 "__sanitizer_cov_trace_cmp2", 557 BT_FN_VOID_UINT16_UINT16, ATTR_NOTHROW_LEAF_LIST) 558DEF_SANITIZER_BUILTIN(BUILT_IN_SANITIZER_COV_TRACE_CMP4, 559 "__sanitizer_cov_trace_cmp4", 560 BT_FN_VOID_UINT32_UINT32, ATTR_NOTHROW_LEAF_LIST) 561DEF_SANITIZER_BUILTIN(BUILT_IN_SANITIZER_COV_TRACE_CMP8, 562 "__sanitizer_cov_trace_cmp8", 563 BT_FN_VOID_UINT64_UINT64, ATTR_NOTHROW_LEAF_LIST) 564DEF_SANITIZER_BUILTIN(BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1, 565 "__sanitizer_cov_trace_const_cmp1", 566 BT_FN_VOID_UINT8_UINT8, ATTR_NOTHROW_LEAF_LIST) 567DEF_SANITIZER_BUILTIN(BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2, 568 "__sanitizer_cov_trace_const_cmp2", 569 BT_FN_VOID_UINT16_UINT16, ATTR_NOTHROW_LEAF_LIST) 570DEF_SANITIZER_BUILTIN(BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4, 571 "__sanitizer_cov_trace_const_cmp4", 572 BT_FN_VOID_UINT32_UINT32, ATTR_NOTHROW_LEAF_LIST) 573DEF_SANITIZER_BUILTIN(BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8, 574 "__sanitizer_cov_trace_const_cmp8", 575 BT_FN_VOID_UINT64_UINT64, ATTR_NOTHROW_LEAF_LIST) 576DEF_SANITIZER_BUILTIN(BUILT_IN_SANITIZER_COV_TRACE_CMPF, 577 "__sanitizer_cov_trace_cmpf", 578 BT_FN_VOID_FLOAT_FLOAT, ATTR_NOTHROW_LEAF_LIST) 579DEF_SANITIZER_BUILTIN(BUILT_IN_SANITIZER_COV_TRACE_CMPD, 580 "__sanitizer_cov_trace_cmpd", 581 BT_FN_VOID_DOUBLE_DOUBLE, ATTR_NOTHROW_LEAF_LIST) 582DEF_SANITIZER_BUILTIN(BUILT_IN_SANITIZER_COV_TRACE_SWITCH, 583 "__sanitizer_cov_trace_switch", 584 BT_FN_VOID_UINT64_PTR, ATTR_NOTHROW_LEAF_LIST) 585 586/* This has to come after all the sanitizer builtins. */ 587DEF_BUILTIN_STUB(END_SANITIZER_BUILTINS, (const char *)0) 588