[flang-commits] [flang] [flang][docs] Add an FAQ about an executable stack (PR #171241)

David Spickett via flang-commits flang-commits at lists.llvm.org
Wed Dec 10 07:53:28 PST 2025


================
@@ -0,0 +1,47 @@
+<!--===- docs/FAQ.md
+
+   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
+
+-->
+
+<!-- TODO: remove this after adding this page to ToC -->
+```{eval-rst}
+:orphan:
+```
+
+# Frequently Asked Questions (FAQ)
+
+```{contents}
+---
+local:
+---
+```
+
+## Driver
+
+### Why do I get a warning or error about an executable stack?
+
+This warning or error occurs because Flang's implementation of pointers to internal procedures requires an executable stack.
+
+When an internal procedure is referenced from outside its host scope (e.g., via a procedure pointer), the implementation must ensure it can still access its host-associated variables.
+To achieve this, the current implementation of Flang generates a small piece of code, called a "trampoline", on the stack dynamically.
----------------
DavidSpickett wrote:

Also is it worth saying how the space on the stack is acquired? Is it that the program has statically allocated spare space in that stack frame, in case one of these procedures is called, or does it dynamically expand the stack frame?

https://github.com/llvm/llvm-project/pull/171241


More information about the flang-commits mailing list