mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 12:12:47 +01:00
c0b486e8f3
Fixes assert in: https://bugs.llvm.org/show_bug.cgi?id=49036
getWasmSection creates sections if they don't exist, but doesn't add them to the Symbols table. This may cause problems in subsequent calls to getOrCreateSymbol which checks this table, the calls createSymbol assuming it doesn't exist, which then checks UsedNames and finds out it does exist, causing an assert on trying to rename a non-temp symbol.
I tried also fixing the somewhat unintuitive forced suffixing (adding `0`), but it turns out that WasmObjectWriter currently assumes these section symbols are unique, so that may have to be a separate fix: https://bugs.llvm.org/show_bug.cgi?id=49252
Also worth noting is that getWasmSection calling createSymbol may not be correct to start with, given that createSymbol seems to assume it is creating non-section symbols. But again, for a future fix.
Related: where some of this was introduced: 8d396acac3
Differential Revision: https://reviews.llvm.org/D96473
17 lines
545 B
ArmAsm
17 lines
545 B
ArmAsm
# RUN: llvm-mc -triple=wasm32 < %s | FileCheck %s
|
|
|
|
# check that we can refer to section symbols of other sections.
|
|
# getWasmSection currently forces the section symbol to have a suffix.
|
|
|
|
# TODO: fix the 0-suffix: https://bugs.llvm.org/show_bug.cgi?id=49252
|
|
|
|
.section .debug_abbrev,"",@
|
|
.int8 1
|
|
.section .debug_info,"",@
|
|
.int32 .debug_abbrev0
|
|
|
|
# CHECK: .section .debug_abbrev,"",@
|
|
# CHECK-NEXT: .int8 1
|
|
# CHECK-NEXT: .section .debug_info,"",@
|
|
# CHECK-NEXT: .int32 .debug_abbrev0
|