vmware-archive / go-pmem-transaction

Golang library for using persistent memory
Other
29 stars 5 forks source link

Compilation issue with pmem program #39

Open jerrinsg opened 4 years ago

jerrinsg commented 4 years ago

The following program is failing to compile with an error - internal compiler error: bad live variable at entry of main: .autotmp_4 (type unsafe.Pointer)

package main

import (
    "github.com/vmware/go-pmem-transaction/pmem"
    "github.com/vmware/go-pmem-transaction/transaction"
)

var ptr *int

func main() {
    firstInit := pmem.Init("~/datafile")
    if firstInit {
        txn("undo") {
            ptr = (*int)(pmem.New("root", ptr))
        }
    } else {
        ptr = (*int)(pmem.Get("root", ptr))
        println("Value is ", *ptr)
    }
}

Should we support wrapping pmem.New call within a txn{} block?