Blame valgrind-3.7.0-unspecified-type.patch
|
Jakub Jelinek |
21fc84 |
--- valgrind-3.7.0/coregrind/m_debuginfo/readdwarf3.c (revision 12337)
|
|
Jakub Jelinek |
21fc84 |
+++ valgrind-3.7.0/coregrind/m_debuginfo/readdwarf3.c (revision 12338)
|
|
Jakub Jelinek |
21fc84 |
@@ -2723,6 +2723,21 @@ static void parse_type_DIE ( /*MOD*/XArr
|
|
Jakub Jelinek |
21fc84 |
goto bad_DIE;
|
|
Jakub Jelinek |
21fc84 |
}
|
|
Jakub Jelinek |
21fc84 |
|
|
Jakub Jelinek |
21fc84 |
+ /*
|
|
Jakub Jelinek |
21fc84 |
+ * Treat DW_TAG_unspecified_type as type void. An example of DW_TAG_unspecified_type:
|
|
Jakub Jelinek |
21fc84 |
+ *
|
|
Jakub Jelinek |
21fc84 |
+ * $ readelf --debug-dump /usr/lib/debug/usr/lib/libstdc++.so.6.0.16.debug
|
|
Jakub Jelinek |
21fc84 |
+ * <1><10d4>: Abbrev Number: 53 (DW_TAG_unspecified_type)
|
|
Jakub Jelinek |
21fc84 |
+ * <10d5> DW_AT_name : (indirect string, offset: 0xdb7): decltype(nullptr)
|
|
Jakub Jelinek |
21fc84 |
+ */
|
|
Jakub Jelinek |
21fc84 |
+ if (dtag == DW_TAG_unspecified_type) {
|
|
Jakub Jelinek |
21fc84 |
+ VG_(memset)(&typeE, 0, sizeof(typeE));
|
|
Jakub Jelinek |
21fc84 |
+ typeE.cuOff = D3_INVALID_CUOFF;
|
|
Jakub Jelinek |
21fc84 |
+ typeE.tag = Te_TyQual;
|
|
Jakub Jelinek |
21fc84 |
+ typeE.Te.TyQual.typeR = D3_FAKEVOID_CUOFF;
|
|
Jakub Jelinek |
21fc84 |
+ goto acquire_Type;
|
|
Jakub Jelinek |
21fc84 |
+ }
|
|
Jakub Jelinek |
21fc84 |
+
|
|
Jakub Jelinek |
21fc84 |
/* else ignore this DIE */
|
|
Jakub Jelinek |
21fc84 |
return;
|
|
Jakub Jelinek |
21fc84 |
/*NOTREACHED*/
|