summary refs log tree commit diff stats
path: root/tests/misc/taddr.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/misc/taddr.nim')
-rw-r--r--tests/misc/taddr.nim14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/misc/taddr.nim b/tests/misc/taddr.nim
index 631c9f265..48d4928ac 100644
--- a/tests/misc/taddr.nim
+++ b/tests/misc/taddr.nim
@@ -32,6 +32,10 @@ doAssert objDeref.x == 42
 
 # String tests
 obj.s = "lorem ipsum dolor sit amet"
+when defined(gcArc) or defined(gcOrc):
+  prepareMutation(obj.s)
+
+
 var indexAddr = addr(obj.s[2])
 
 doAssert indexAddr[] == 'r'
@@ -232,8 +236,17 @@ block: # bug #15939
     const bar = proc2(foo)
     doAssert bar == "foo"
 
+template prepareMutationForOrc(x: string) =
+  when defined(gcArc) or defined(gcOrc):
+    when nimvm:
+      discard
+    else:
+      prepareMutation(x)
+
 proc test15939() = # bug #15939 (v2)
   template fn(a) =
+    when typeof(a) is string:
+      prepareMutationForOrc(a)
     let pa = a[0].addr
     doAssert pa != nil
     doAssert pa[] == 'a'
@@ -253,6 +266,7 @@ proc test15939() = # bug #15939 (v2)
   # mycstring[ind].addr
   template cstringTest =
     var a2 = "abc"
+    prepareMutationForOrc(a2)
     var b2 = a2.cstring
     fn(b2)
   when nimvm: cstringTest()