aboutsummaryrefslogtreecommitdiffhomepage
path: root/testdata/atomic.go
diff options
context:
space:
mode:
authorAyke van Laethem <[email protected]>2022-06-20 14:56:55 +0200
committerRon Evans <[email protected]>2022-06-24 11:10:24 +0200
commit1ceb63d14c69c013fb25d8ed09cbe45658ecf3ad (patch)
tree148e1e67a2af3b510c53c38da0d20426559e07db /testdata/atomic.go
parente1052f921c0d845fb6257d1347a97af4e4d8dfd9 (diff)
downloadtinygo-1ceb63d14c69c013fb25d8ed09cbe45658ecf3ad.tar.gz
tinygo-1ceb63d14c69c013fb25d8ed09cbe45658ecf3ad.zip
compiler: really define runtime/volatile.* functions
This makes them available to deferred calls, among others.
Diffstat (limited to 'testdata/atomic.go')
-rw-r--r--testdata/atomic.go7
1 files changed, 6 insertions, 1 deletions
diff --git a/testdata/atomic.go b/testdata/atomic.go
index 2b9131c91..4d5ced301 100644
--- a/testdata/atomic.go
+++ b/testdata/atomic.go
@@ -3,6 +3,8 @@ package main
import (
"sync/atomic"
"unsafe"
+
+ "runtime/volatile"
)
func main() {
@@ -82,7 +84,7 @@ func main() {
testValue(int(3), int(-2))
testValue("", "foobar", "baz")
- // Test atomic operations as deferred values.
+ // Test atomic and volatile operations as deferred values.
testDefer()
}
@@ -99,8 +101,11 @@ func testValue(values ...interface{}) {
func testDefer() {
n1 := int32(5)
+ n2 := uint32(6)
defer func() {
println("deferred atomic add:", n1)
+ println("deferred volatile store:", n2)
}()
defer atomic.AddInt32(&n1, 3)
+ defer volatile.StoreUint32(&n2, 22)
}