aboutsummaryrefslogtreecommitdiff
path: root/AGENTS/PITFALLS.md
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-17 15:13:04 +0000
committer_ov4 <ov4@ov4.org>2026-10-17 15:13:04 +0000
commit09498bb7aab9182ba172aae1045ca895d4f422d4 (patch)
treee15844c5c27883f80b9a7482e78e164048b8ea92 /AGENTS/PITFALLS.md
parentd4f28b089b2818d23df8543db3130ac760f37ad8 (diff)
docs: document EXTERN and INCLUDE_OBJ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'AGENTS/PITFALLS.md')
-rw-r--r--AGENTS/PITFALLS.md8
1 files changed, 7 insertions, 1 deletions
diff --git a/AGENTS/PITFALLS.md b/AGENTS/PITFALLS.md
index 8f35c3d..551a64c 100644
--- a/AGENTS/PITFALLS.md
+++ b/AGENTS/PITFALLS.md
@@ -145,7 +145,13 @@ test programs.
require casts even for literals. C scalar arithmetic uses native promotions,
but / always returns REAL. Cast aliases must precede their use. long double
may have padding; sizeof does not identify its floating-point format. Native
- C support is verified on Linux LLVM 23; cross-target and EXTERN are unsupported.
+ C support is verified on Linux LLVM 23; cross-target is unsupported.
+- **EXTERN "C" extension.** Top-level, body-less; parameters/results are C types only,
+ no BYREF/OVERLOAD/structs. Variadic arguments must be C values (default promotions).
+ The driver checks every EXTERN symbol against INCLUDE_OBJ inputs before CodeGen;
+ `"__libc"` must be included explicitly even though the runtime always links libc.
+ Only `.o` user objects; INCLUDE_OBJ is global across inputs. `-S` does not link them.
+ Two EXTERNs differing only in case conflict (pseudocode names are case insensitive).
## Not implemented (9618 features)