This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PR 47086] ICE: verify flow info failed


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


This is a case where we have a loop in which the counter is totally
unused, except to count.  Exit from the loop is triggered on an overflow
trap when the counter is incremented (yes, compiled with -ftrapv
- -fexceptions -fno-call-exceptions).

GCC issues a checking failure after IV optimizations because we have a
block with an EH edge, but IV opts have removed the IV increment which
was the only statement which could trap.

The fix is relatively simple, but a bit of a big hammer -- we just fail
to recognize a statement that map trap as creating a IV.

Thus the IV code won't delete the unused IV which keeps the CFG verifier
happy and also keep the loop from running infinitely.

Bootstrapped and regression tested on x86_64-pc-linux-gnu.

OK for the trunk?


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJNK26UAAoJEBRtltQi2kC7+UkH/0YR38TJoS5+SjIkegmC4QvV
gadkce4g0hRz7rO5kyH+yO1miCgo6ojFp9AMhz03gFUkvCmbdfSyJv04RXT3NcPG
qwQS76XbEC3nSiXHI1OJGYF1lyFYAgysI34WTHvSAocxkWjdK3iswTp6p3xKRppV
gOYSMD2IBaIupdlvJzKt3cCDUmmLrbHTJVQnvyixM/O4qumG6kbyJhX1YVER5aKi
C516z2PbVrBQZpgmtk45b/sDzHzxuUzF1MuMqD6Ij8CxJZWpfR9WykjRPPMsCi0U
uOjZXFf8UkGGa/r35NyfXVnBKu8LkKG3HN2W9yHIaJcP2qJBVfnD4y9JoWtoY00=
=NQTg
-----END PGP SIGNATURE-----

Attachment: patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]