1 //===-- xray_defs.h ---------------------------------------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, 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 //===----------------------------------------------------------------------===// 8 // 9 // Common definitions useful for XRay sources. 10 // 11 //===----------------------------------------------------------------------===// 12 #ifndef XRAY_XRAY_DEFS_H 13 #define XRAY_XRAY_DEFS_H 14 15 #if XRAY_SUPPORTED 16 #define XRAY_NEVER_INSTRUMENT __attribute__((xray_never_instrument)) 17 #else 18 #define XRAY_NEVER_INSTRUMENT 19 #endif 20 21 #if SANITIZER_NETBSD 22 // NetBSD: thread_local is not aligned properly, and the code relying 23 // on it segfaults 24 #define XRAY_TLS_ALIGNAS(x) 25 #define XRAY_HAS_TLS_ALIGNAS 0 26 #else 27 #define XRAY_TLS_ALIGNAS(x) alignas(x) 28 #define XRAY_HAS_TLS_ALIGNAS 1 29 #endif 30 31 #endif // XRAY_XRAY_DEFS_H 32