wasm: execute an 'unreachable' trap inst on panic
This already happened when directly calling panic() but not with some runtime panics like accessing a slice out of bounds.
Этот коммит содержится в:
родитель
0314a487ff
коммит
a459570d94
2 изменённых файлов: 7 добавлений и 1 удалений
|
@ -1,5 +1,10 @@
|
|||
package runtime
|
||||
|
||||
// trap is a compiler hint that this function cannot be executed. It is
|
||||
// translated into either a trap instruction or a call to abort().
|
||||
//go:linkname trap llvm.trap
|
||||
func trap()
|
||||
|
||||
// Builtin function panic(msg), used as a compiler intrinsic.
|
||||
func _panic(message interface{}) {
|
||||
printstring("panic: ")
|
||||
|
|
|
@ -49,6 +49,7 @@ func align(ptr uintptr) uintptr {
|
|||
return (ptr + 3) &^ 3
|
||||
}
|
||||
|
||||
// Abort executes the wasm 'unreachable' instruction.
|
||||
func abort() {
|
||||
// TODO
|
||||
trap()
|
||||
}
|
||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче