From 4c65241b5e2e229c2cd1aa8901c69816e705b318 Mon Sep 17 00:00:00 2001 From: Gabriel Corona Date: Mon, 20 Jan 2014 13:09:22 +0100 Subject: [PATCH] [mc] Do not ignore DW_TAG_const_type --- src/mc/mc_compare.c | 5 ++--- src/xbt/mmalloc/mm_diff.c | 9 +++------ 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/mc/mc_compare.c b/src/mc/mc_compare.c index fad33714ea..6a9c5bb468 100644 --- a/src/mc/mc_compare.c +++ b/src/mc/mc_compare.c @@ -138,11 +138,9 @@ static int compare_areas_with_type(void *area1, void *area2, xbt_dict_t types, x break; case DW_TAG_typedef: case DW_TAG_volatile_type: + case DW_TAG_const_type: return compare_areas_with_type(area1, area2, types, other_types, type->dw_type_id, region_size, region_type, start_data, pointer_level); break; - case DW_TAG_const_type: /* Const variable cannot be modified */ - return -1; - break; case DW_TAG_array_type: subtype = xbt_dict_get_or_null(types, type->dw_type_id); switch(subtype->type){ @@ -160,6 +158,7 @@ static int compare_areas_with_type(void *area1, void *area2, xbt_dict_t types, x } elm_size = subtype->byte_size; break; + case DW_TAG_const_type: case DW_TAG_typedef: case DW_TAG_volatile_type: subsubtype = xbt_dict_get_or_null(types, subtype->dw_type_id); diff --git a/src/xbt/mmalloc/mm_diff.c b/src/xbt/mmalloc/mm_diff.c index 52792d692a..9713c8d347 100644 --- a/src/xbt/mmalloc/mm_diff.c +++ b/src/xbt/mmalloc/mm_diff.c @@ -798,10 +798,9 @@ static int compare_heap_area_with_type(void *real_area1, void *real_area2, void return (memcmp(area1, area2, type->byte_size) != 0); break; case DW_TAG_typedef: - return compare_heap_area_with_type(real_area1, real_area2, area1, area2, previous, all_types, other_types, type->dw_type_id, area_size, check_ignore, pointer_level); - break; case DW_TAG_const_type: - return 0; + case DW_TAG_volatile_type: + return compare_heap_area_with_type(real_area1, real_area2, area1, area2, previous, all_types, other_types, type->dw_type_id, area_size, check_ignore, pointer_level); break; case DW_TAG_array_type: subtype = xbt_dict_get_or_null(all_types, type->dw_type_id); @@ -823,6 +822,7 @@ static int compare_heap_area_with_type(void *real_area1, void *real_area2, void elm_size = subtype->byte_size; break; // TODO, just remove the type indirection? + case DW_TAG_const_type: case DW_TAG_typedef: case DW_TAG_volatile_type: subsubtype = xbt_dict_get_or_null(all_types, subtype->dw_type_id); @@ -918,9 +918,6 @@ static int compare_heap_area_with_type(void *real_area1, void *real_area2, void case DW_TAG_union_type: return compare_heap_area_without_type(real_area1, real_area2, area1, area2, previous, all_types, other_types, type->byte_size, check_ignore); break; - case DW_TAG_volatile_type: - return compare_heap_area_with_type(real_area1, real_area2, area1, area2, previous, all_types, other_types, type->dw_type_id, area_size, check_ignore, pointer_level); - break; default: break; } -- 2.20.1