|
From: <sv...@va...> - 2008-06-24 09:58:46
|
Author: sewardj
Date: 2008-06-24 10:58:54 +0100 (Tue, 24 Jun 2008)
New Revision: 8278
Log:
Merge from trunk a couple of changes needed for openSUSE 11 / gcc-4.3
support: r8275 and r8276.
Modified:
branches/HGDEV/coregrind/m_debuginfo/readdwarf3.c
branches/HGDEV/xfree-4.supp
Modified: branches/HGDEV/coregrind/m_debuginfo/readdwarf3.c
===================================================================
--- branches/HGDEV/coregrind/m_debuginfo/readdwarf3.c 2008-06-24 09:54:05 UTC (rev 8277)
+++ branches/HGDEV/coregrind/m_debuginfo/readdwarf3.c 2008-06-24 09:58:54 UTC (rev 8278)
@@ -1398,7 +1398,20 @@
level,
False/*isFunc*/, NULL/*fbGX*/ );
} else
+ if (have_lo && (!have_hi1) && have_range && ip_lo == 0) {
+ /* broken DIE created by gcc-4.3.X ? Ignore the
+ apparently-redundant DW_AT_low_pc and use the DW_AT_ranges
+ instead. */
+ varstack_push( cc, parser, td3,
+ get_range_list( cc, td3,
+ rangeoff, cc->cu_svma ),
+ level,
+ False/*isFunc*/, NULL/*fbGX*/ );
+ } else {
+ if (0) VG_(printf)("I got hlo %d hhi1 %d hrange %d\n",
+ (Int)have_lo, (Int)have_hi1, (Int)have_range);
goto bad_DIE;
+ }
}
if (dtag == DW_TAG_lexical_block || dtag == DW_TAG_subprogram) {
Modified: branches/HGDEV/xfree-4.supp
===================================================================
--- branches/HGDEV/xfree-4.supp 2008-06-24 09:54:05 UTC (rev 8277)
+++ branches/HGDEV/xfree-4.supp 2008-06-24 09:58:54 UTC (rev 8278)
@@ -302,5 +302,18 @@
fun:for__add_to_lf_table
}
+# zlib-1.2.x uses uninitialised memory in some tricky way which
+# apparently is harmless (it must amount to a vectorised while-loop,
+# nothing else makes sense). Fools Memcheck though. See the mentioned
+# URL for details.
+{
+ zlib-1.2.x trickyness: See http://www.zlib.net/zlib_faq.html#faq36
+ Memcheck:Cond
+ obj:/lib64/libz.so.1.2.*
+ obj:/lib64/libz.so.1.2.*
+ fun:deflate
+}
+
+
##----------------------------------------------------------------------##
|