Loom C API
Public Loom compiler C API
Loading...
Searching...
No Matches
sanitizer.h
Go to the documentation of this file.
1// Copyright 2026 The IREE Authors
2//
3// Licensed under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
7#ifndef LOOMC_SANITIZER_H_
8#define LOOMC_SANITIZER_H_
9
10#include "loomc/base.h"
11
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
37
38typedef uint64_t loomc_sanitizer_checks_t;
39
41#define LOOMC_SANITIZER_CHECKS_ASAN_LIKE \
42 ((loomc_sanitizer_checks_t)LOOMC_SANITIZER_CHECK_ACCESS)
43
45#define LOOMC_SANITIZER_CHECKS_UBSAN_LIKE \
46 ((loomc_sanitizer_checks_t)(LOOMC_SANITIZER_CHECK_VALUE | \
47 LOOMC_SANITIZER_CHECK_OPERATION))
48
50#define LOOMC_SANITIZER_CHECKS_TSAN_LIKE \
51 ((loomc_sanitizer_checks_t)LOOMC_SANITIZER_CHECK_RACE)
52
58
60typedef uint32_t loomc_sanitizer_flags_t;
61
73
99
100#ifdef __cplusplus
101} // extern "C"
102#endif
103
104#endif // LOOMC_SANITIZER_H_
Base types, descriptors, spans, and host allocation helpers.
size_t loomc_host_size_t
Host allocation and container size type.
Definition base.h:45
loomc_structure_type_t
Structure type values used by extensible public descriptors.
Definition base.h:181
loomc_sanitizer_check_bit_e
Sanitizer assertion classes that can be enabled independently.
Definition sanitizer.h:24
@ LOOMC_SANITIZER_CHECK_VALUE
Enables SSA value assertions.
Definition sanitizer.h:29
@ LOOMC_SANITIZER_CHECK_OPERATION
Enables operation-level assertions.
Definition sanitizer.h:32
@ LOOMC_SANITIZER_CHECK_ACCESS
Enables memory access assertions.
Definition sanitizer.h:26
@ LOOMC_SANITIZER_CHECK_RACE
Enables data-race observations.
Definition sanitizer.h:35
uint32_t loomc_sanitizer_flags_t
Bitset of loomc_sanitizer_flag_bit_e values controlling sanitizer behavior.
Definition sanitizer.h:60
loomc_sanitizer_flag_bit_e
Additional sanitizer behavior flag bits.
Definition sanitizer.h:54
@ LOOMC_SANITIZER_FLAG_NONE
No sanitizer flags are currently defined.
Definition sanitizer.h:56
loomc_sanitizer_reporting_mode_t
Target-specific behavior when a lowered sanitizer assertion fails.
Definition sanitizer.h:63
@ LOOMC_SANITIZER_REPORTING_MODE_REPORT_ONLY
Emit structured sanitizer reports without using a direct trap.
Definition sanitizer.h:71
@ LOOMC_SANITIZER_REPORTING_MODE_TRAP
Trap directly on sanitizer failures without emitting structured reports.
Definition sanitizer.h:68
@ LOOMC_SANITIZER_REPORTING_MODE_DEFAULT
Use the target's default structured sanitizer report path.
Definition sanitizer.h:65
uint64_t loomc_sanitizer_checks_t
Bitset of loomc_sanitizer_check_bit_e values selecting assertion classes.
Definition sanitizer.h:38
Invocation option extension that enables sanitizer assertions.
Definition sanitizer.h:80
loomc_sanitizer_flags_t flags
Additional behavior flags enabled by the caller.
Definition sanitizer.h:94
loomc_sanitizer_checks_t checks
Assertion classes enabled by the caller.
Definition sanitizer.h:91
loomc_host_size_t structure_size
Size of this structure in bytes.
Definition sanitizer.h:85
loomc_sanitizer_reporting_mode_t reporting_mode
Target failure reporting behavior for lowered sanitizer assertions.
Definition sanitizer.h:97
const void * next
Next invocation option extension.
Definition sanitizer.h:88
loomc_structure_type_t type
Structure type. Must be LOOMC_STRUCTURE_TYPE_SANITIZER_OPTIONS.
Definition sanitizer.h:82