mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-14 15:23:27 +00:00
don't use a temp for addr [backport: 1.6] (#19503)
* don't use a temp for addr fix #19497 * Update compiler/ccgcalls.nim Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com> * add a test Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>
This commit is contained in:
@@ -376,8 +376,8 @@ proc genParams(p: BProc, ri: PNode, typ: PType): Rope =
|
||||
if not needTmp[i - 1]:
|
||||
needTmp[i - 1] = potentialAlias(n, potentialWrites)
|
||||
getPotentialWrites(ri[i], false, potentialWrites)
|
||||
if ri[i].kind == nkHiddenAddr:
|
||||
# Optimization: don't use a temp, if we would only take the adress anyway
|
||||
if ri[i].kind in {nkHiddenAddr, nkAddr}:
|
||||
# Optimization: don't use a temp, if we would only take the address anyway
|
||||
needTmp[i - 1] = false
|
||||
|
||||
for i in 1..<ri.len:
|
||||
|
||||
22
tests/arc/tarc_orc.nim
Normal file
22
tests/arc/tarc_orc.nim
Normal file
@@ -0,0 +1,22 @@
|
||||
discard """
|
||||
matrix: "--mm:arc; --mm:orc"
|
||||
"""
|
||||
|
||||
block:
|
||||
type
|
||||
PublicKey = array[32, uint8]
|
||||
PrivateKey = array[64, uint8]
|
||||
|
||||
proc ed25519_create_keypair(publicKey: ptr PublicKey; privateKey: ptr PrivateKey) =
|
||||
publicKey[][0] = uint8(88)
|
||||
|
||||
type
|
||||
KeyPair = object
|
||||
public: PublicKey
|
||||
private: PrivateKey
|
||||
|
||||
proc initKeyPair(): KeyPair =
|
||||
ed25519_create_keypair(result.public.addr, result.private.addr)
|
||||
|
||||
let keys = initKeyPair()
|
||||
doAssert keys.public[0] == 88
|
||||
Reference in New Issue
Block a user