Uninitialized variable in profile.c

Berthold Stoeger bstoeger at mail.tuwien.ac.at
Sun Dec 17 14:42:06 PST 2017


On Sonntag, 17. Dezember 2017 19:43:11 CET Robert C. Helling wrote:
> Hi,
> 
> > Am 17.12.2017 um 19:11 schrieb Dirk Hohndel <dirk at hohndel.org>:
> >> On Dec 17, 2017, at 8:06 AM, Robert Helling <helling at atdotde.de> wrote:
> >> 
> >> Hi,
> >> 
> >>> On 17. Dec 2017, at 14:19, Berthold Stoeger <bstoeger at mail.tuwien.ac.at>
> >>> wrote:
> >>> 
> >>> There is another warning concerning entry in l.807. To make the warning
> >>> go
> >>> away, you could add a
> >>> 
> >>>  if (pi->nr <= 0)
> >>>  
> >>>    return;
> >>> 
> >>> block before the loop. Even if pi->nr can never be <= 0, this seems like
> >>> a
> >>> good idea for robustness' sake.
> >> 
> >> isn’t that what
> >> 
> >> assert(pi->nr >= 0);
> >> 
> >> is for?
> > 
> > Asserts are usually compiled out in production code. Not a huge fan of
> > asserts, TBH
> But they do not just fail silently in debug mode as does if-return. If this
> occurs it‘s a bug that needs to be taken care of.

I'd say it depends on how big a disaster `pi->nr <= 0` is. If it can be 
recovered from, a compromise could be qWarning(...) + return: Developers are 
informed, user doesn't loose data owing to crash and compiler is happy.

Berthold


More information about the subsurface mailing list