chromium/third_party/blink/renderer/platform/wtf/gc_plugin.h

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_GC_PLUGIN_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_GC_PLUGIN_H_

// GC_PLUGIN_IGNORE is used to make the Blink GC plugin ignore a particular
// class or field when checking for proper usage.  When using GC_PLUGIN_IGNORE a
// reason must be provided as an argument. In most cases this will be a bug id
// where the bug describes what needs to happen to remove the GC_PLUGIN_IGNORE
// again.
//
// Developer note: this macro must be kept in sync with the definition of
// STACK_ALLOCATED_IGNORE in /base/memory/stack_allocated.h.
#if defined(__clang__)
#define GC_PLUGIN_IGNORE(reason)
#else  // !defined(__clang__)
#define GC_PLUGIN_IGNORE
#endif  // !defined(__clang__)

// GC_SAFE_FIELD is used to make the Blink GC plugin ignore a particular field.
// This must only be used when we can ensure that the pattern it is marking is
// safe despite the exception thrown by the plugin.
#define GC_SAFE_FIELD(reason)

#endif  // THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_GC_PLUGIN_H_