/* mm_diff - Memory snapshooting and comparison */
-/* Copyright (c) 2008-2013. The SimGrid Team.
+/* Copyright (c) 2008-2014. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
void *addr_pointed1, *addr_pointed2;;
switch(type->type){
+ case DW_TAG_unspecified_type:
+ return 1;
+
case DW_TAG_base_type:
if(type->name!=NULL && strcmp(type->name, "char") == 0){ /* String, hence random (arbitrary ?) size */
if(real_area1 == real_area2)
case DW_TAG_array_type:
subtype = xbt_dict_get_or_null(info->types, type->dw_type_id);
switch(subtype->type){
+ case DW_TAG_unspecified_type:
+ return 1;
+
case DW_TAG_base_type:
case DW_TAG_enumeration_type:
case DW_TAG_pointer_type:
+ case DW_TAG_reference_type:
+ case DW_TAG_rvalue_reference_type:
case DW_TAG_structure_type:
+ case DW_TAG_class_type:
case DW_TAG_union_type:
if(subtype->byte_size == 0){ /*declaration of the type, need the complete description */
subtype = xbt_dict_get_or_null(other_info->types_by_name, subtype->name);
return res;
}
break;
+ case DW_TAG_reference_type:
+ case DW_TAG_rvalue_reference_type:
case DW_TAG_pointer_type:
if(type->dw_type_id && ((dw_type_t)xbt_dict_get_or_null(info->types, type->dw_type_id))->type == DW_TAG_subroutine_type){
addr_pointed1 = *((void **)(area1));
}
break;
case DW_TAG_structure_type:
+ case DW_TAG_class_type:
if(type->byte_size == 0){ /*declaration of the structure, need the complete description */
dw_type_t full_type = xbt_dict_get_or_null(info->types_by_name, type->name);
if(full_type){
}
switch(type->type){
case DW_TAG_structure_type :
+ case DW_TAG_class_type:
if(type->byte_size == 0){ /*declaration of the structure, need the complete description */
if(*switch_type == 0){
dw_type_t full_type = xbt_dict_get_or_null(info->types_by_name, type->name);