aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineBlockPlacement.cpp
diff options
context:
space:
mode:
authorDaniel Rodríguez Troitiño <drodriguez@users.noreply.github.com>2024-09-24 10:55:35 -0700
committerGitHub <noreply@github.com>2024-09-24 10:55:35 -0700
commit12285cca5ed713dfd483bd96422a5607b8af0085 (patch)
tree28075ce5ff1fd997280e2528ecf3e0ae32a89960 /llvm/lib/CodeGen/MachineBlockPlacement.cpp
parent26029d77a57cb4aaa1479064109e985a90d0edd8 (diff)
downloadllvm-12285cca5ed713dfd483bd96422a5607b8af0085.zip
llvm-12285cca5ed713dfd483bd96422a5607b8af0085.tar.gz
llvm-12285cca5ed713dfd483bd96422a5607b8af0085.tar.bz2
[DWARF] Use ULEB128 and not just one byte for directory indices (#109067)
According to the standard `DW_LNCT_directory_index` can be `data1`, `data2`, or `udata` (see 6.2.4.1). The code was using `data1`, but this limits the number of directories to 256, even if the variable holding the directory index is a `uint64_t`. `dsymutil` was hitting an assertion when trying to write directory indices higher than 255. Modify the classic and the parallel DWARF linkers to use `udata` and encode the directory indices as ULEB128 and provide a test that has more than 256 directories to check the changes are working as expected. For people that were using `dsymutil` with CUs that had between 128-256 directories, this will mean that for those indices 2 bytes will be used now, instead of just one.
Diffstat (limited to 'llvm/lib/CodeGen/MachineBlockPlacement.cpp')
0 files changed, 0 insertions, 0 deletions