[Bug c/104510] [9/10/11/12 Regression] ICE: 'verify_gimple' failed: mismatching comparison operand types in verify_gimple_in_seq()
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104510 --- Comment #5 from CVS Commits --- The master branch has been updated by Jakub Jelinek : https://gcc.gnu.org/g:6e74122f0de6748b3fd0ed9183090cd7c61fb53e commit r12-7256-g6e74122f0de6748b3fd0ed9183090cd7c61fb53e Author: Jakub Jelinek Date: Wed Feb 16 09:25:55 2022 +0100 c-family: Fix up shorten_compare for decimal vs. non-decimal float comparison [PR104510] The comment in shorten_compare says: /* If either arg is decimal float and the other is float, fail. */ but the callers of shorten_compare don't expect anything like failure as a possibility from the function, callers require that the function promotes the operands to the same type, whether the original selected *restype_ptr one or some shortened. So, if we choose not to shorten, we should still promote to the original *restype_ptr. 2022-02-16 Jakub Jelinek PR c/104510 * c-common.cc (shorten_compare): Convert original arguments to the original *restype_ptr when mixing binary and decimal float. * gcc.dg/dfp/pr104510.c: New test.
[Bug c/104510] [9/10/11/12 Regression] ICE: 'verify_gimple' failed: mismatching comparison operand types in verify_gimple_in_seq()
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104510 Jakub Jelinek changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org Status|NEW |ASSIGNED --- Comment #4 from Jakub Jelinek --- Created attachment 52439 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52439&action=edit gcc12-pr104510.patch Untested fix. Callers don't expect shorten_compare to ever fail, even when it returns NULL it still should convert arguments at least to the original *restype_ptr.
[Bug c/104510] [9/10/11/12 Regression] ICE: 'verify_gimple' failed: mismatching comparison operand types in verify_gimple_in_seq()
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104510 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #3 from Jakub Jelinek --- Started with r5-4736-g1e51d0a29dbfebe6c0df58739562644c1a50f3c3
[Bug c/104510] [9/10/11/12 Regression] ICE: 'verify_gimple' failed: mismatching comparison operand types in verify_gimple_in_seq()
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104510 Richard Biener changed: What|Removed |Added Priority|P3 |P2
[Bug c/104510] [9/10/11/12 Regression] ICE: 'verify_gimple' failed: mismatching comparison operand types in verify_gimple_in_seq()
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104510 Andrew Pinski changed: What|Removed |Added Known to fail||5.1.0 Summary|ICE: 'verify_gimple'|[9/10/11/12 Regression] |failed: mismatching |ICE: 'verify_gimple' |comparison operand types in |failed: mismatching |verify_gimple_in_seq() |comparison operand types in ||verify_gimple_in_seq() Known to work||4.9.0, 4.9.4 Target Milestone|--- |9.5 --- Comment #2 from Andrew Pinski --- This is a regression from GCC 4.9.0 which produced the correct trees even: In GCC 5+: return (_Decimal32) f < d; While in GCC 4.9.x: return (_Decimal64) f < (_Decimal64) d;