Grr, gcc-5.4 creates DW_AT_typedef without DW_AT_type for HARD_REG_SET!
<1><c26b>: Abbrev Number: 4 (DW_TAG_typedef) <c26c> DW_AT_name : (indirect string, offset: 0x16e30): HARD_REG_ELT_TYPE <c270> DW_AT_decl_file : 57 <c271> DW_AT_decl_line : 43 <c272> DW_AT_type : <0x70> <1><c276>: Abbrev Number: 102 (DW_TAG_typedef) <c277> DW_AT_name : (indirect string, offset: 0x2f954): HARD_REG_SET <c27b> DW_AT_decl_file : 57 <c27c> DW_AT_decl_line : 54
This commit is contained in:
parent
aad330ff83
commit
2964f15a7a
|
@ -1224,8 +1224,18 @@ die_sou_resolve(tdesc_t *tdp, tdesc_t **tdpp __unused, void *private)
|
|||
(mt->t_name == NULL || mt->t_name[0] == '\0'))
|
||||
continue;
|
||||
|
||||
printf("%s unresolved type = %d (%s)\n", tdesc_name(tdp),
|
||||
mt->t_type, tdesc_name(mt));
|
||||
/*
|
||||
* XXX: Gcc-5.4 DW_TAG_typedef without DW_AT_type;
|
||||
* assume pointer
|
||||
*/
|
||||
if (mt->t_id == TID_VOID) {
|
||||
ml->ml_size = dw->dw_ptrsz;
|
||||
continue;
|
||||
}
|
||||
|
||||
fprintf(stderr, "%s unresolved type=%d (%s) tid=%#x\n",
|
||||
tdesc_name(tdp), mt->t_type, tdesc_name(mt),
|
||||
mt->t_id);
|
||||
dw->dw_nunres++;
|
||||
return (1);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue