From 92468e99f7fb98d1965fc694553ddeb10522ae94 Mon Sep 17 00:00:00 2001 From: ringabout <43030857+ringabout@users.noreply.github.com> Date: Sat, 8 Nov 2025 13:04:05 +0800 Subject: [PATCH] fixes #25265; fixes #23453; Unable to build Nim 2.2.6 tools from source (#25269) fixes #25265; fixes #23453 `(addr deref (ptr object))` generated weak typedesc before, which causes problems for old GCC versions. As a bonus, by generating a typedesc for `deref (ptr object)`, it also fixes #23453 --- compiler/ccgexprs.nim | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/compiler/ccgexprs.nim b/compiler/ccgexprs.nim index d3e215ea56..8c8a12a327 100644 --- a/compiler/ccgexprs.nim +++ b/compiler/ccgexprs.nim @@ -919,6 +919,10 @@ proc genDeref(p: BProc, e: PNode, d: var TLoc) = return else: a = initLocExprSingleUse(p, e[0]) + + if e.typ != nil and e.typ.kind == tyObject: + # bug #23453 #25265 + discard getTypeDesc(p.module, e.typ) if d.k == locNone: # dest = *a; <-- We do not know that 'dest' is on the heap! # It is completely wrong to set 'd.storage' here, unless it's not yet