================ @@ -0,0 +1,69 @@ +//===-- flang-rt/runtime/trampoline.h ----------------------------*- C++-*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// Internal declarations for the W^X-compliant trampoline pool. +// +//===----------------------------------------------------------------------===// + +#ifndef FLANG_RT_RUNTIME_TRAMPOLINE_H_ +#define FLANG_RT_RUNTIME_TRAMPOLINE_H_ + +#include <cstddef> +#include <cstdint> + +namespace Fortran::runtime::trampoline { + +/// Per-trampoline data entry. Stored in a writable (non-executable) region. +/// Each entry is paired with a trampoline code stub in the executable region. +struct TrampolineData { + const void *calleeAddress; + const void *staticChainAddress; +}; + +/// Default number of trampoline slots in the pool. +/// Can be overridden via FLANG_TRAMPOLINE_POOL_SIZE environment variable. +constexpr std::size_t kDefaultPoolSize = 1024; ---------------- vzakhari wrote:
Braces initialization please here and below. https://github.com/llvm/llvm-project/pull/183108 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
