* fix for Mantis #35386: use the correct size for the string's length (SizeInt for Ansi-/UnicodeString and DWord for WideString)

git-svn-id: trunk@42038 -
This commit is contained in:
svenbarth 2019-05-11 15:38:56 +00:00
parent 1349f1db03
commit e769233436

View File

@ -4275,7 +4275,7 @@ implementation
DW_AT_upper_bound,DW_FORM_block1,upperopcodes
]);
{ high(string) is stored sizeof(ptrint) bytes before the string data }
{ high(string) is stored sizeof(sizeint) bytes before the string data }
current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_push_object_address)));
current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_deref)));
current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_dup)));
@ -4287,7 +4287,11 @@ implementation
current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_skip)));
current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_16bit_unaligned(3));
{ no -> load length }
current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_lit0)+sizeof(ptrint)));
if upperopcodes=15 then
{ for Windows WideString the size is always a DWORD }
current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_lit4)))
else
current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_lit0)+sizesinttype.size));
current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_minus)));
current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_deref)));