https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79244
Bug ID: 79244 Summary: ice in replace_uses_by, at tree-cfg.c:1866 Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: dcb314 at hotmail dot com Target Milestone: --- Created attachment 40590 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40590&action=edit C source code The attached code, when compiled by gcc trunk and flag -O2, does this: $ ../results/bin/gcc -c -O2 bug331.c source/pdf/pdf-repair.c: In function ‘pdf_repair_obj’: source/pdf/pdf-repair.c:31:1: internal compiler error: in replace_uses_by, at tree-cfg.c:1866 0xcdcbbe replace_uses_by(tree_node*, tree_node*) ../../trunk/gcc/tree-cfg.c:1866 0xf4e82e remove_range_assertions ../../trunk/gcc/tree-vrp.c:6978 0xf4e82e execute_vrp ../../trunk/gcc/tree-vrp.c:11299 0xf4e82e execute ../../trunk/gcc/tree-vrp.c:11377 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. $ This bug seems to have existed since sometime before revision 241433, dated 20161115. Reduced code seems to be typedef enum { PDF_TOK_EOF, PDF_TOK_OPEN_DICT, PDF_TOK_INT, PDF_TOK_STREAM } pdf_token; pdf_repair_obj() { pdf_token a; __sigsetjmp(); while (a != PDF_TOK_STREAM && a && a && a != PDF_TOK_INT) a = pdf_lex(); }