[Bug plugins/105171] gcc/toplev.c: `local_tick` can overflow and become -1
jason at zx2c4 dot com
gcc-bugzilla@gcc.gnu.org
Tue Apr 5 23:06:14 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105171
--- Comment #4 from Jason A. Donenfeld <jason at zx2c4 dot com> ---
(In reply to Andrew Pinski from comment #2)
> > local_tick = (unsigned) tv.tv_sec * 1000 + tv.tv_usec / 1000;
>
> The only place where local_tick is used is inside coverage.cc:
> if (!flag_branch_probabilities && flag_test_coverage
> && (!local_tick || local_tick == (unsigned)-1))
> /* Only remove the da file, if we're emitting coverage code and
> cannot uniquely stamp it. If we can stamp it, libgcov will DTRT. */
> unlink (da_file_name);
>
>
> This does not make a difference really here.
Really? Looks to me like the behavior changes. If it doesn't make a difference,
then remove that part of the condition clause? If you object to doing that,
then the overflow seems like an issue.
> Plus inside a plugin, I don't see why you care about if -frandom-seed was
> supplied or not.
So that I can decide whether I am allowed to do things totally randomly or if I
must follow some sort of seeded determinism.
The broader answer is of course, "because plugins can do many things."
> You mean toplev.cc right?
I guess I'm reading gcc 11 source code, but yea, sure, same difference.
More information about the Gcc-bugs
mailing list