Module Name:    src
Committed By:   christos
Date:           Wed Jun  8 21:32:27 UTC 2016

Modified Files:
        src/external/cddl/osnet/dist/tools/ctf/cvt: dwarf.c

Log Message:
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


To generate a diff of this commit:
cvs rdiff -u -r1.22 -r1.23 src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c
diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c:1.22 src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c:1.23
--- src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c:1.22	Fri Mar 18 13:07:23 2016
+++ src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c	Wed Jun  8 17:32:27 2016
@@ -1224,8 +1224,18 @@ die_sou_resolve(tdesc_t *tdp, tdesc_t **
 			    (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);
 		}

Reply via email to