http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56719



--- Comment #5 from felix-gcc at fefe dot de 2013-03-25 15:06:02 UTC ---

Yes.  However I'd hope that fixing this case would mean that gcc also catches

the case where it is split to multiple if statements.



I think this statement came about because they had a range check and someone

pointed out that checking foo*4>0xffff could be circumvented via an integer

overflow if foo is untrusted and very large.



There are smarter ways to do this but it's not completely mind-bogglingly

incomprehensible why this code would come about.



I have in fact been advocating for a while that programmers should rather spell

out their security checks as plainly as possible and let the compiler optimize

them and remove superfluous checks.  See



  http://www.fefe.de/source-code-optimization.pdf



if you are interested.

Reply via email to