@@ -1116,6 +1116,7 @@ private int writeClassLayoutAbbrevs(@SuppressWarnings("unused") DebugContext con
1116
1116
int pos = p ;
1117
1117
pos = writeClassLayoutAbbrev (context , AbbrevCode .CLASS_LAYOUT_1 , buffer , pos );
1118
1118
pos = writeClassLayoutAbbrev (context , AbbrevCode .CLASS_LAYOUT_3 , buffer , pos );
1119
+ pos = writeClassLayoutAbbrev (context , AbbrevCode .CLASS_LAYOUT_4 , buffer , pos );
1119
1120
if (!dwarfSections .useHeapBase ()) {
1120
1121
pos = writeClassLayoutAbbrev (context , AbbrevCode .CLASS_LAYOUT_2 , buffer , pos );
1121
1122
}
@@ -1130,21 +1131,23 @@ private int writeClassLayoutAbbrev(@SuppressWarnings("unused") DebugContext cont
1130
1131
pos = writeHasChildren (DwarfHasChildren .DW_CHILDREN_yes , buffer , pos );
1131
1132
pos = writeAttrType (DwarfAttribute .DW_AT_name , buffer , pos );
1132
1133
pos = writeAttrForm (DwarfForm .DW_FORM_strp , buffer , pos );
1133
- if (abbrevCode == AbbrevCode .CLASS_LAYOUT_3 ) {
1134
+ if (abbrevCode == AbbrevCode .CLASS_LAYOUT_3 || abbrevCode == AbbrevCode . CLASS_LAYOUT_4 ) {
1134
1135
pos = writeAttrType (DwarfAttribute .DW_AT_declaration , buffer , pos );
1135
1136
pos = writeAttrForm (DwarfForm .DW_FORM_flag , buffer , pos );
1136
1137
pos = writeAttrType (DwarfAttribute .DW_AT_signature , buffer , pos );
1137
1138
pos = writeAttrForm (DwarfForm .DW_FORM_ref_sig8 , buffer , pos );
1139
+ if (abbrevCode == AbbrevCode .CLASS_LAYOUT_4 ) {
1140
+ pos = writeAttrType (DwarfAttribute .DW_AT_decl_file , buffer , pos );
1141
+ pos = writeAttrForm (DwarfForm .DW_FORM_data2 , buffer , pos );
1142
+ /*-
1143
+ * At present we definitely don't have a line number for the class itself.
1144
+ pos = writeAttrType(DwarfDebugInfo.DW_AT_decl_line, buffer, pos);
1145
+ pos = writeAttrForm(DwarfDebugInfo.DW_FORM_data2, buffer, pos);
1146
+ */
1147
+ }
1138
1148
} else {
1139
1149
pos = writeAttrType (DwarfAttribute .DW_AT_byte_size , buffer , pos );
1140
1150
pos = writeAttrForm (DwarfForm .DW_FORM_data2 , buffer , pos );
1141
- pos = writeAttrType (DwarfAttribute .DW_AT_decl_file , buffer , pos );
1142
- pos = writeAttrForm (DwarfForm .DW_FORM_data2 , buffer , pos );
1143
- /*-
1144
- * At present we definitely don't have a line number for the class itself.
1145
- pos = writeAttrType(DwarfDebugInfo.DW_AT_decl_line, buffer, pos);
1146
- pos = writeAttrForm(DwarfDebugInfo.DW_FORM_data2, buffer, pos);
1147
- */
1148
1151
if (abbrevCode == AbbrevCode .CLASS_LAYOUT_2 ) {
1149
1152
pos = writeAttrType (DwarfAttribute .DW_AT_data_location , buffer , pos );
1150
1153
pos = writeAttrForm (DwarfForm .DW_FORM_expr_loc , buffer , pos );
0 commit comments