mirror of
https://github.com/nim-lang/Nim.git
synced 2026-09-17 10:34:53 +00:00
fixes #26015 Fixes imported global variables with codegenDecl being emitted as definitions instead of extern declarations. A variable’s codegenDecl format should customize its definition in the owning module. Other modules referencing the variable must emit a normal declaration: ```c extern NI variable; ``` After the variable-declaration builder refactor, genVarPrototype passed Extern visibility to addVar. However, the sfCodegenDecl branch returned before applying that visibility. This caused importing modules to emit another tentative definition, resulting in duplicate-symbol linker errors. The fix restores the previous distinction between the custom definition and cross-module prototypes. It also adds C and C++ regression coverage for both direct access and access through an inline procedure. follows up https://github.com/nim-lang/Nim/pull/24423
5 lines
148 B
Nim
5 lines
148 B
Nim
var codegenDeclGlobal* {.codegenDecl: "$# /* custom declaration */ $#".} = 123
|
|
|
|
proc readCodegenDeclGlobal*(): int {.inline.} =
|
|
codegenDeclGlobal
|