TestErrCompileInstrOrValue

This commit is contained in:
xushiwei
2024-05-03 18:35:14 +08:00
parent 236debab33
commit 330cb22351
2 changed files with 17 additions and 8 deletions

View File

@@ -25,6 +25,18 @@ import (
"golang.org/x/tools/go/ssa" "golang.org/x/tools/go/ssa"
) )
func TestErrCompileInstrOrValue(t *testing.T) {
defer func() {
if r := recover(); r == nil {
t.Fatal("compileInstrOrValue: no error?")
}
}()
ctx := &context{
bvals: make(map[ssa.Value]llssa.Expr),
}
ctx.compileInstrOrValue(nil, &ssa.Call{}, true)
}
func TestErrAdvance(t *testing.T) { func TestErrAdvance(t *testing.T) {
defer func() { defer func() {
if r := recover(); r == nil { if r := recover(); r == nil {

View File

@@ -587,14 +587,11 @@ func (p *context) compileValue(b llssa.Builder, v ssa.Value) llssa.Expr {
} }
} }
case *ssa.Function: case *ssa.Function:
panic("unreachable") fn, ftype := p.funcOf(v)
/* if ftype >= llgoInstrBase {
fn, ftype := p.funcOf(v) panic("can't use llgo instruction as a value")
if ftype >= llgoInstrBase { }
panic("can't use llgo instruction as a value") return fn.Expr
}
return fn.Expr
*/
case *ssa.Global: case *ssa.Global:
g := p.varOf(v) g := p.varOf(v)
return g.Expr return g.Expr