mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2024-12-23 13:41:37 +00:00
compiler: fix panic in notification check
Options is a pointer, so it can be nil: --- FAIL: TestCompiler (0.23s) --- FAIL: TestCompiler/TestCompile (0.21s) panic: runtime error: invalid memory address or nil pointer dereference [recovered] panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x960374] goroutine 8861 [running]: testing.tRunner.func1.2({0xa604c0, 0x112c230}) /usr/lib64/go/1.18/src/testing/testing.go:1389 +0x24e testing.tRunner.func1() /usr/lib64/go/1.18/src/testing/testing.go:1392 +0x39f panic({0xa604c0, 0x112c230}) /usr/lib64/go/1.18/src/runtime/panic.go:838 +0x207 github.com/nspcc-dev/neo-go/pkg/compiler.(*codegen).processNotify(0xc0000eba40, 0xc000233ae0?, {0xc00044ae90, 0x1, 0x1}) /home/rik/dev/neo-go/pkg/compiler/inline.go:134 +0xd4 github.com/nspcc-dev/neo-go/pkg/compiler.(*codegen).processStdlibCall(0xc0000eba40?, 0xc000233ae0, {0xc00044ae90, 0x1, 0x1}) /home/rik/dev/neo-go/pkg/compiler/inline.go:124 +0xda github.com/nspcc-dev/neo-go/pkg/compiler.(*codegen).inlineCall(0xc0000eba40, 0xc000233ae0, 0xc0001fe5c0) /home/rik/dev/neo-go/pkg/compiler/inline.go:35 +0x1fa github.com/nspcc-dev/neo-go/pkg/compiler.(*codegen).Visit(0xc0000eba40, {0xd36bf8?, 0xc0001fe5c0?}) /home/rik/dev/neo-go/pkg/compiler/codegen.go:932 +0x152c go/ast.Walk({0xd348e0?, 0xc0000eba40?}, {0xd36bf8?, 0xc0001fe5c0?}) /usr/lib64/go/1.18/src/go/ast/walk.go:52 +0x62 go/ast.Walk({0xd348e0?, 0xc0000eba40?}, {0xd36db0?, 0xc00044aeb0?}) /usr/lib64/go/1.18/src/go/ast/walk.go:207 +0x1154 github.com/nspcc-dev/neo-go/pkg/compiler.(*codegen).Visit(0xc0000eba40, {0xd36ba8?, 0xc0001cce70?}) /home/rik/dev/neo-go/pkg/compiler/codegen.go:1155 +0x54cd go/ast.Walk({0xd348e0?, 0xc0000eba40?}, {0xd36ba8?, 0xc0001cce70?}) /usr/lib64/go/1.18/src/go/ast/walk.go:52 +0x62 github.com/nspcc-dev/neo-go/pkg/compiler.(*codegen).Visit(0xc0000eba40, {0xd36f68?, 0xc0001fe600?}) /home/rik/dev/neo-go/pkg/compiler/codegen.go:733 +0x2e30 go/ast.Walk({0xd348e0?, 0xc0000eba40?}, {0xd36f68?, 0xc0001fe600?}) /usr/lib64/go/1.18/src/go/ast/walk.go:52 +0x62 github.com/nspcc-dev/neo-go/pkg/compiler.(*codegen).Visit(0xc0000eba40, {0xd36ba8?, 0xc0001ccea0?}) /home/rik/dev/neo-go/pkg/compiler/codegen.go:1155 +0x54cd go/ast.Walk({0xd348e0?, 0xc0000eba40?}, {0xd36ba8?, 0xc0001ccea0?}) /usr/lib64/go/1.18/src/go/ast/walk.go:52 +0x62 github.com/nspcc-dev/neo-go/pkg/compiler.(*codegen).convertFuncDecl(0xc0000eba40, {0xd36e28, 0xc000256700}, 0xc0001cced0, 0xc00041b68c?) /home/rik/dev/neo-go/pkg/compiler/codegen.go:502 +0x97d github.com/nspcc-dev/neo-go/pkg/compiler.(*codegen).compile.func2(0xc000256700, 0xc0001c64b0) /home/rik/dev/neo-go/pkg/compiler/codegen.go:2129 +0x1f9 github.com/nspcc-dev/neo-go/pkg/compiler.(*codegen).ForEachFile.func1(0xc000254a00) /home/rik/dev/neo-go/pkg/compiler/compiler.go:102 +0x96 github.com/nspcc-dev/neo-go/pkg/compiler.(*codegen).ForEachPackage(0xc0000eba40, 0xc0002f3c68) /home/rik/dev/neo-go/pkg/compiler/compiler.go:93 +0xdb github.com/nspcc-dev/neo-go/pkg/compiler.(*codegen).ForEachFile(0xa1f700?, 0xc000448f90?) /home/rik/dev/neo-go/pkg/compiler/compiler.go:99 +0x4d github.com/nspcc-dev/neo-go/pkg/compiler.(*codegen).compile(0xc0000eba40, 0xc00022c390, 0x1?) /home/rik/dev/neo-go/pkg/compiler/codegen.go:2116 +0x3d6 github.com/nspcc-dev/neo-go/pkg/compiler.codeGen(0xc00022c390) /home/rik/dev/neo-go/pkg/compiler/codegen.go:2167 +0x373 github.com/nspcc-dev/neo-go/pkg/compiler.CompileWithOptions({0xc000c525a0?, 0x16?}, {0x0?, 0x0?}, 0x0) /home/rik/dev/neo-go/pkg/compiler/compiler.go:218 +0x7d github.com/nspcc-dev/neo-go/pkg/compiler.Compile({0xc000c525a0?, 0xc000304340?}, {0x0?, 0x0?}) /home/rik/dev/neo-go/pkg/compiler/compiler.go:203 +0x34 github.com/nspcc-dev/neo-go/pkg/compiler_test.compileFile(...) /home/rik/dev/neo-go/pkg/compiler/compiler_test.go:89 github.com/nspcc-dev/neo-go/pkg/compiler_test.TestCompiler.func2(0x6a2a89?) /home/rik/dev/neo-go/pkg/compiler/compiler_test.go:61 +0x133 testing.tRunner(0xc000304340, 0xc7f5b0) /usr/lib64/go/1.18/src/testing/testing.go:1439 +0x102 created by testing.(*T).Run /usr/lib64/go/1.18/src/testing/testing.go:1486 +0x35f
This commit is contained in:
parent
7fe462a65d
commit
be7527409c
1 changed files with 1 additions and 1 deletions
|
@ -131,7 +131,7 @@ func (c *codegen) processStdlibCall(f *funcScope, args []ast.Expr) {
|
|||
|
||||
func (c *codegen) processNotify(f *funcScope, args []ast.Expr) {
|
||||
if c.scope != nil && c.isVerifyFunc(c.scope.decl) &&
|
||||
c.scope.pkg == c.mainPkg.Types && !c.buildInfo.options.NoEventsCheck {
|
||||
c.scope.pkg == c.mainPkg.Types && (c.buildInfo.options == nil || !c.buildInfo.options.NoEventsCheck) {
|
||||
c.prog.Err = fmt.Errorf("runtime.%s is not allowed in `Verify`", f.name)
|
||||
return
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue