This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] integrate sprintf pass into strlen (PR 83431)
On Thu, Jul 11, 2019 at 11:11:58AM +0200, Richard Biener wrote:
> The others all smell like they might be yours ;) (besides object-size
> maybe but that one is limited by having a cache - hopefully also
> used when not used in the compute-everything mode).
objsz doesn't really have a compute everything mode, it has a mode where the
caches are available and a mode where they aren't. If they are available,
it will compute whatever it needs to and anything needed to compute that and
If they aren't available, for optimize > 0 it will just punt on
SSA_NAMEs (defers until it is done with the caches), for -O0 it looks
through SSA_NAME_DEF_STMTs of POINTER_PLUS_EXPR with constant as second
argument, and that one indeed is inbounded, so if one has a million of
POINTER_PLUS_EXPRs stmts, each adding 1 to the previous SSA_NAME, yes, it
will be a pain if every one of those SSA_NAMEs is then passed to some
__builtin_object_size too. Guess we could add a limit there too, no reason
to look through more than a dozen or two at most.