diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-06-27 17:12:45 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-06-27 17:12:45 -0700 |
| commit | 3c1daf951cf72e454de18e70f84b9a896aa17dd0 (patch) | |
| tree | 1d7069eba60eedb08b8cf38eb6c2b1ade1752beb /src/target.zig | |
| parent | 8d8a5f973314cb692d543773db8d59a9001b91ad (diff) | |
| download | zig-3c1daf951cf72e454de18e70f84b9a896aa17dd0.tar.gz zig-3c1daf951cf72e454de18e70f84b9a896aa17dd0.zip | |
LLVM: fix invalid IR on `@returnAddress` of wasm/bpf
see #11946
Diffstat (limited to 'src/target.zig')
| -rw-r--r-- | src/target.zig | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/target.zig b/src/target.zig index 14af2675d2..93c179b7f0 100644 --- a/src/target.zig +++ b/src/target.zig @@ -283,6 +283,14 @@ pub fn supportsStackProbing(target: std.Target) bool { (target.cpu.arch == .i386 or target.cpu.arch == .x86_64); } +pub fn supportsReturnAddress(target: std.Target) bool { + return switch (target.cpu.arch) { + .wasm32, .wasm64 => target.os.tag == .emscripten, + .bpfel, .bpfeb => false, + else => true, + }; +} + pub fn osToLLVM(os_tag: std.Target.Os.Tag) llvm.OSType { return switch (os_tag) { .freestanding, .other, .opencl, .glsl450, .vulkan, .plan9 => .UnknownOS, |
