|
From: <sv...@va...> - 2015-01-04 11:30:18
|
Author: florian
Date: Sun Jan 4 11:30:11 2015
New Revision: 14845
Log:
TyEnt::TyStOrUn::fieldRs is never NULL as VG_(newXA) always returns
something != NULL. Testing fieldRs for NULL-ness was confusing static
analysis. It usually takes such tests as evidence that the pointer
can in fact be NULL and may report false positives as a consequence.
Modified:
trunk/coregrind/m_debuginfo/tytypes.c
Modified: trunk/coregrind/m_debuginfo/tytypes.c
==============================================================================
--- trunk/coregrind/m_debuginfo/tytypes.c (original)
+++ trunk/coregrind/m_debuginfo/tytypes.c Sun Jan 4 11:30:11 2015
@@ -158,8 +158,7 @@
te->Te.TyStOrUn.fieldRs,
te->Te.TyStOrUn.name ? te->Te.TyStOrUn.name
: "" );
- if (te->Te.TyStOrUn.fieldRs)
- pp_XArray_of_cuOffs( te->Te.TyStOrUn.fieldRs );
+ pp_XArray_of_cuOffs( te->Te.TyStOrUn.fieldRs );
} else {
VG_(printf)("Te_TyStOrUn(INCOMPLETE,\"%s\")",
te->Te.TyStOrUn.name);
@@ -619,7 +618,7 @@
break;
case Te_TyStOrUn:
if (te->Te.TyStOrUn.name) ML_(dinfo_free)(te->Te.TyStOrUn.name);
- if (te->Te.TyStOrUn.fieldRs) VG_(deleteXA)(te->Te.TyStOrUn.fieldRs);
+ VG_(deleteXA)(te->Te.TyStOrUn.fieldRs);
break;
case Te_TyEnum:
if (te->Te.TyEnum.name) ML_(dinfo_free)(te->Te.TyEnum.name);
@@ -784,7 +783,7 @@
PtrdiffT offMin = 0, offMax1 = 0;
if (!ty->Te.TyStOrUn.isStruct) goto done;
fieldRs = ty->Te.TyStOrUn.fieldRs;
- if (((!fieldRs) || VG_(sizeXA)(fieldRs) == 0)
+ if (VG_(sizeXA)(fieldRs) == 0
&& (ty->Te.TyStOrUn.typeR == 0)) goto done;
for (i = 0; i < VG_(sizeXA)( fieldRs ); i++ ) {
fieldR = *(UWord*)VG_(indexXA)( fieldRs, i );
|