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:
parent
801c0f0369
commit
27e548140b
2 changed files with 24 additions and 2 deletions
|
|
@ -376,8 +376,8 @@ proc genParams(p: BProc, ri: PNode, typ: PType): Rope =
|
||||||
if not needTmp[i - 1]:
|
if not needTmp[i - 1]:
|
||||||
needTmp[i - 1] = potentialAlias(n, potentialWrites)
|
needTmp[i - 1] = potentialAlias(n, potentialWrites)
|
||||||
getPotentialWrites(ri[i], false, potentialWrites)
|
getPotentialWrites(ri[i], false, potentialWrites)
|
||||||
if ri[i].kind == nkHiddenAddr:
|
if ri[i].kind in {nkHiddenAddr, nkAddr}:
|
||||||
# Optimization: don't use a temp, if we would only take the adress anyway
|
# Optimization: don't use a temp, if we would only take the address anyway
|
||||||
needTmp[i - 1] = false
|
needTmp[i - 1] = false
|
||||||
|
|
||||||
for i in 1..<ri.len:
|
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
|
||||||
Loading…
Add table
Add a link
Reference in a new issue