blob: 73844a1eda424a66546ad41e4f2a6f8ba4d96a85 [file] [log] [blame]
// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
#ifndef RUNTIME_PLATFORM_SAFE_STACK_H_
#define RUNTIME_PLATFORM_SAFE_STACK_H_
#if defined(__has_feature)
#if __has_feature(safe_stack)
#define USING_SAFE_STACK
#endif
#endif
#if defined(USING_SAFE_STACK)
#define NO_SANITIZE_SAFE_STACK __attribute__((no_sanitize("safe-stack")))
#else
#define NO_SANITIZE_SAFE_STACK
#endif
#if defined(__has_feature)
#if __has_feature(shadow_call_stack)
#define USING_SHADOW_CALL_STACK
#endif
#endif
#if defined(USING_SHADOW_CALL_STACK)
#define NO_SANITIZE_SHADOW_CALL_STACK \
__attribute__((no_sanitize("shadow-call-stack")))
#else
#define NO_SANITIZE_SHADOW_CALL_STACK
#endif
#endif // RUNTIME_PLATFORM_SAFE_STACK_H_