aboutsummaryrefslogtreecommitdiffhomepage
path: root/transform/testdata
diff options
context:
space:
mode:
authorAyke van Laethem <[email protected]>2024-03-16 16:31:36 +0100
committerRon Evans <[email protected]>2024-03-19 07:10:51 +0100
commitad4d722f54b1521e163ce5d0687f51817fccf617 (patch)
tree89445fe0d5e7c0cd851d4ace31cf1ad96bd2acf3 /transform/testdata
parent6384ecace093df2d0b93915886954abfc4ecfe01 (diff)
downloadtinygo-ad4d722f54b1521e163ce5d0687f51817fccf617.tar.gz
tinygo-ad4d722f54b1521e163ce5d0687f51817fccf617.zip
all: move -panic=trap support to the compiler/runtime
Support for `-panic=trap` was previously a pass in the optimization pipeline. This change moves it to the compiler and runtime, which in my opinion is a much better place. As a side effect, it also fixes https://github.com/tinygo-org/tinygo/issues/4161 by trapping inside runtime.runtimePanicAt and not just runtime.runtimePanic. This change also adds a test for the list of imported functions. This is a more generic test where it's easy to add more tests for WebAssembly file properties, such as exported functions.
Diffstat (limited to 'transform/testdata')
-rw-r--r--transform/testdata/panic.ll22
-rw-r--r--transform/testdata/panic.out.ll25
2 files changed, 0 insertions, 47 deletions
diff --git a/transform/testdata/panic.ll b/transform/testdata/panic.ll
deleted file mode 100644
index 660e30f2f..000000000
--- a/transform/testdata/panic.ll
+++ /dev/null
@@ -1,22 +0,0 @@
-target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
-target triple = "armv7m-none-eabi"
-
-@"runtime.lookupPanic$string" = constant [18 x i8] c"index out of range"
-
-declare void @runtime.runtimePanic(ptr, i32)
-
-declare void @runtime._panic(i32, ptr)
-
-define void @runtime.lookupPanic() {
- call void @runtime.runtimePanic(ptr @"runtime.lookupPanic$string", i32 18)
- ret void
-}
-
-; This is equivalent to the following code:
-; func someFunc(x interface{}) {
-; panic(x)
-; }
-define void @someFunc(i32 %typecode, ptr %value) {
- call void @runtime._panic(i32 %typecode, ptr %value)
- unreachable
-}
diff --git a/transform/testdata/panic.out.ll b/transform/testdata/panic.out.ll
deleted file mode 100644
index 458e4c247..000000000
--- a/transform/testdata/panic.out.ll
+++ /dev/null
@@ -1,25 +0,0 @@
-target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
-target triple = "armv7m-none-eabi"
-
-@"runtime.lookupPanic$string" = constant [18 x i8] c"index out of range"
-
-declare void @runtime.runtimePanic(ptr, i32)
-
-declare void @runtime._panic(i32, ptr)
-
-define void @runtime.lookupPanic() {
- call void @llvm.trap()
- call void @runtime.runtimePanic(ptr @"runtime.lookupPanic$string", i32 18)
- ret void
-}
-
-define void @someFunc(i32 %typecode, ptr %value) {
- call void @llvm.trap()
- call void @runtime._panic(i32 %typecode, ptr %value)
- unreachable
-}
-
-; Function Attrs: cold noreturn nounwind
-declare void @llvm.trap() #0
-
-attributes #0 = { cold noreturn nounwind }