Module: wine
Branch: master
Commit: 15eb6a2560e61f02cd2b471dcb00ff28b343be3a
URL: https://source.winehq.org/git/wine.git/?a=commit;h=15eb6a2560e61f02cd2b471d…
Author: Eric Pouech <eric.pouech(a)gmail.com>
Date: Tue Sep 21 08:00:36 2021 +0200
dbghelp/dwarf: Handle C++ rvalue reference type as a reference.
As we don't handle C++ references yet, it'll be a pointer in the end.
Signed-off-by: Eric Pouech <eric.pouech(a)gmail.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/dbghelp/dwarf.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index c409f39d80b..192dbf59814 100644
--- a/dlls/dbghelp/dwarf.c
+++ b/dlls/dbghelp/dwarf.c
@@ -2343,6 +2343,7 @@ static void dwarf2_load_one_entry(dwarf2_debug_info_t* di)
dwarf2_parse_unspecified_type(di);
break;
case DW_TAG_reference_type:
+ case DW_TAG_rvalue_reference_type:
dwarf2_parse_reference_type(di);
break;
case DW_TAG_enumeration_type:
Module: wine
Branch: master
Commit: 79cd318b778def23b044af6d1f54a14e6496880e
URL: https://source.winehq.org/git/wine.git/?a=commit;h=79cd318b778def23b044af6d…
Author: Eric Pouech <eric.pouech(a)gmail.com>
Date: Tue Sep 21 08:00:30 2021 +0200
dbghelp/dwarf: Support more dwarf's TAG related to types in udt parsing.
Signed-off-by: Eric Pouech <eric.pouech(a)gmail.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/dbghelp/dwarf.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index d1075caf4b8..c409f39d80b 100644
--- a/dlls/dbghelp/dwarf.c
+++ b/dlls/dbghelp/dwarf.c
@@ -1704,6 +1704,12 @@ static struct symt* dwarf2_parse_udt_type(dwarf2_debug_info_t* di,
case DW_TAG_const_type:
dwarf2_parse_const_type(child);
break;
+ case DW_TAG_volatile_type:
+ dwarf2_parse_volatile_type(di);
+ break;
+ case DW_TAG_pointer_type:
+ dwarf2_parse_pointer_type(child);
+ break;
case DW_TAG_subrange_type:
dwarf2_parse_subrange_type(child);
break;
@@ -1713,11 +1719,13 @@ static struct symt* dwarf2_parse_udt_type(dwarf2_debug_info_t* di,
case DW_TAG_typedef:
/* FIXME: we need to handle nested udt definitions */
case DW_TAG_inheritance:
+ case DW_TAG_interface_type:
case DW_TAG_template_type_param:
case DW_TAG_template_value_param:
case DW_TAG_variable:
case DW_TAG_imported_declaration:
case DW_TAG_ptr_to_member_type:
+ case DW_TAG_GNU_template_template_param:
case DW_TAG_GNU_template_parameter_pack:
case DW_TAG_GNU_formal_parameter_pack:
/* FIXME: some C++ related stuff */
Module: wine
Branch: master
Commit: ab8fdb191c7fc3868decfa7d442898612bf9b4b3
URL: https://source.winehq.org/git/wine.git/?a=commit;h=ab8fdb191c7fc3868decfa7d…
Author: Eric Pouech <eric.pouech(a)gmail.com>
Date: Tue Sep 21 07:59:48 2021 +0200
dbghelp/dwarf: In DW_AT_ranges, the values are relative to the start of the CU.
And not the module, as most of the other addresses.
Signed-off-by: Eric Pouech <eric.pouech(a)gmail.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/dbghelp/dwarf.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index f67efc43993..3009dead905 100644
--- a/dlls/dbghelp/dwarf.c
+++ b/dlls/dbghelp/dwarf.c
@@ -1222,6 +1222,9 @@ static BOOL dwarf2_read_range(dwarf2_parse_context_t* ctx, const dwarf2_debug_in
high = dwarf2_parse_addr_head(&traverse, &ctx->head);
if (low == 0 && high == 0) break;
if (low == ULONG_MAX) FIXME("unsupported yet (base address selection)\n");
+ /* range values are relative to start of compilation unit */
+ low += ctx->compiland->address - ctx->module_ctx->load_offset;
+ high += ctx->compiland->address - ctx->module_ctx->load_offset;
if (low < *plow) *plow = low;
if (high > *phigh) *phigh = high;
}