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