File lcrash-composite-types.patch of Package lcrash
Index: trunk/lkcdutils/lib/libklib/kl_stabs.c
===================================================================
--- trunk/lkcdutils/lib/libklib/kl_stabs.c (revision 1376)
+++ trunk/lkcdutils/lib/libklib/kl_stabs.c (working copy)
@@ -1851,8 +1851,8 @@
strcpy(typestr, KL_TYPESTR_UNION);
break;
}
+ strcat(typestr, " ");
if (sp->st_name) {
- strcat(typestr, " ");
strcat(typestr, sp->st_name);
strcat(typestr, " ");
}
@@ -2062,10 +2062,9 @@
sprintf(typestr, "<type=%d>", rsp->st_type);
break;
}
- if (rsp->st_name) {
- strcat(typestr, " ");
+ strcat(typestr, " ");
+ if (rsp->st_name)
strcat(typestr, rsp->st_name);
- }
got_typedef:
if (ptrcnt) {
strcat(typestr, " ");
Index: trunk/lkcdutils/lib/libklib/kl_dwarf.c
===================================================================
--- trunk/lkcdutils/lib/libklib/kl_dwarf.c (revision 1376)
+++ trunk/lkcdutils/lib/libklib/kl_dwarf.c (working copy)
@@ -1028,9 +1028,7 @@
/* First, check to see if this is an anonymous union or struct...
*/
- if (!strcmp(source->kl_typestr, KL_TYPESTR_STRUCT) ||
- !strcmp(source->kl_typestr, KL_TYPESTR_STRUCT" ") ||
- !strcmp(source->kl_typestr, KL_TYPESTR_UNION) ||
+ if (!strcmp(source->kl_typestr, KL_TYPESTR_STRUCT" ") ||
!strcmp(source->kl_typestr, KL_TYPESTR_UNION" ")) {
source->kl_flags |= TYP_ANONYMOUS_FLG;
}
Index: trunk/lkcdutils/lib/libklib/kl_symbol.c
===================================================================
--- trunk/lkcdutils/lib/libklib/kl_symbol.c (revision 1376)
+++ trunk/lkcdutils/lib/libklib/kl_symbol.c (working copy)
@@ -1066,12 +1066,10 @@
} else {
fprintf(kl_stdout, " []\n");
}
- } else if((strcmp(kltp->kl_typestr,
- KL_TYPESTR_STRUCT) == 0) ||
- (strcmp(kltp->kl_typestr,
- KL_TYPESTR_STRUCT" ") == 0) ||
- (strcmp(kltp->kl_typestr,
- KL_TYPESTR_UNION) == 0)){
+ } else if(strcmp(kltp->kl_typestr,
+ KL_TYPESTR_STRUCT" ") == 0 ||
+ strcmp(kltp->kl_typestr,
+ KL_TYPESTR_UNION" ") == 0){
/* anonymous struct or union */
fprintf(kl_stdout, " {...}\n");
} else {