[Bug c/71601] ICE on conditional expression between DFP / non-DFP float

2016-06-20 Thread jsm28 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71601

Joseph S. Myers  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |7.0

--- Comment #2 from Joseph S. Myers  ---
Fixed for GCC 7.

[Bug c/71601] ICE on conditional expression between DFP / non-DFP float

2016-06-20 Thread jsm28 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71601

--- Comment #1 from Joseph S. Myers  ---
Author: jsm28
Date: Mon Jun 20 22:58:20 2016
New Revision: 237622

URL: https://gcc.gnu.org/viewcvs?rev=237622=gcc=rev
Log:
Fix ICE on conditional expression between DFP and non-DFP float (PR c/71601).

A conditional expression between DFP and non-DFP floating-point
produces an ICE.  This patch fixes this by making
build_conditional_expr return early when c_common_type produces an
error.

Bootstrapped with no regressions on x86_64-pc-linux-gnu.

PR c/71601
gcc/c:
* c-typeck.c (build_conditional_expr): Return error_mark_node if
c_common_type returns error_mark_node.

gcc/testsuite:
* gcc.dg/dfp/usual-arith-conv-bad-3.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/dfp/usual-arith-conv-bad-3.c
Modified:
trunk/gcc/c/ChangeLog
trunk/gcc/c/c-typeck.c
trunk/gcc/testsuite/ChangeLog