diff --git a/llvm/test/CodeGen/WebAssembly/inline-asm-failure.ll b/llvm/test/CodeGen/WebAssembly/inline-asm-failure.ll new file mode 100644 --- /dev/null +++ b/llvm/test/CodeGen/WebAssembly/inline-asm-failure.ll @@ -0,0 +1,31 @@ +;RUN: not llc -O0 --mtriple=wasm32 -filetype=obj \ +;RUN: -o /dev/null 2>&1 <%s | FileCheck %s +source_filename = "issue111471.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-unknown" + +@__main_void = hidden alias i32 (), ptr @main + +; Function Attrs: noinline nounwind optnone +define hidden void @get_global() #0 { +entry: + call void asm sideeffect "global.get 0", ""() #1, !srcloc !2 + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden i32 @main() #0 { +entry: + ret i32 0 +} + +attributes #0 = { noinline nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+mutable-globals,+sign-ext" } +attributes #1 = { nounwind } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"clang version 16.0.5 (https://github.com/rust-lang/llvm-project.git 22897bce7bfedc9cd3953a33419b346936263500)"} +!2 = !{i64 32} +;CHECK: :0: error: Wasm globals should only be accessed symbolically!