mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-19 02:25:01 +00:00
DI: Remove DW_TAG_arg_variable and DW_TAG_auto_variable
Remove the fake `DW_TAG_auto_variable` and `DW_TAG_arg_variable` tags, using `DW_TAG_variable` in their place Stop exposing the `tag:` field at all in the assembly format for `DILocalVariable`. Most of the testcase updates were generated by the following sed script: find test/ -name "*.ll" -o -name "*.mir" | xargs grep -l 'DILocalVariable' | xargs sed -i '' \ -e 's/tag: DW_TAG_arg_variable, //' \ -e 's/tag: DW_TAG_auto_variable, //' There were only a handful of tests in `test/Assembly` that I needed to update by hand. (Note: a follow-up could change `DILocalVariable::DILocalVariable()` to set the tag to `DW_TAG_formal_parameter` instead of `DW_TAG_variable` (as appropriate), instead of having that logic magically in the backend in `DbgVariable`. I've added a FIXME to that effect.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243774 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1972,15 +1972,19 @@ std::error_code BitcodeReader::parseMetadata() {
|
||||
}
|
||||
case bitc::METADATA_LOCAL_VAR: {
|
||||
// 10th field is for the obseleted 'inlinedAt:' field.
|
||||
if (Record.size() != 9 && Record.size() != 10)
|
||||
if (Record.size() < 8 || Record.size() > 10)
|
||||
return error("Invalid record");
|
||||
|
||||
// 2nd field used to be an artificial tag, either DW_TAG_auto_variable or
|
||||
// DW_TAG_arg_variable.
|
||||
bool HasTag = Record.size() > 8;
|
||||
MDValueList.assignValue(
|
||||
GET_OR_DISTINCT(DILocalVariable, Record[0],
|
||||
(Context, Record[1], getMDOrNull(Record[2]),
|
||||
getMDString(Record[3]), getMDOrNull(Record[4]),
|
||||
Record[5], getMDOrNull(Record[6]), Record[7],
|
||||
Record[8])),
|
||||
(Context, getMDOrNull(Record[1 + HasTag]),
|
||||
getMDString(Record[2 + HasTag]),
|
||||
getMDOrNull(Record[3 + HasTag]), Record[4 + HasTag],
|
||||
getMDOrNull(Record[5 + HasTag]), Record[6 + HasTag],
|
||||
Record[7 + HasTag])),
|
||||
NextMDValueNo++);
|
||||
break;
|
||||
}
|
||||
|
Reference in New Issue
Block a user