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

jsm28 at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Jun 20 21:28:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71601

            Bug ID: 71601
           Summary: ICE on conditional expression between DFP / non-DFP
                    float
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jsm28 at gcc dot gnu.org
  Target Milestone: ---

A conditional expression between DFP and non-DFP floating-point produces an
ICE:

_Decimal32 a;
float b;
int i;
void
f (void)
{
  (void) (i ? a : b);
}

(on x86_64-pc-linux-gnu):

t.c: In function 'f':
t.c:7:3: error: can't mix operands of decimal float and other float types
   (void) (i ? a : b);
   ^
t.c:7:3: internal compiler error: tree check: expected class 'type', have
'exceptional' (error_mark) in get_qualified_type, at tree.c:6604
0xdbe161 tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
        /scratch/jmyers/fsf/gcc-mainline/gcc/tree.c:9803
0xdd4161 tree_class_check(tree_node*, tree_code_class, char const*, int, char
const*)
        /scratch/jmyers/fsf/gcc-mainline/gcc/tree.h:3153
0xdd4161 get_qualified_type(tree_node*, int)
        /scratch/jmyers/fsf/gcc-mainline/gcc/tree.c:6604
0xddb0ed build_qualified_type(tree_node*, int)
        /scratch/jmyers/fsf/gcc-mainline/gcc/tree.c:6626
0x5ffe7a build_conditional_expr(unsigned int, tree_node*, bool, tree_node*,
tree_node*, tree_node*, tree_node*)
        /scratch/jmyers/fsf/gcc-mainline/gcc/c/c-typeck.c:5028
0x629514 c_parser_conditional_expression
        /scratch/jmyers/fsf/gcc-mainline/gcc/c/c-parser.c:6411
0x629970 c_parser_expr_no_commas
        /scratch/jmyers/fsf/gcc-mainline/gcc/c/c-parser.c:6268
0x62a0d2 c_parser_expression
        /scratch/jmyers/fsf/gcc-mainline/gcc/c/c-parser.c:8464
0x624942 c_parser_postfix_expression
        /scratch/jmyers/fsf/gcc-mainline/gcc/c/c-parser.c:7595
0x62760a c_parser_unary_expression
        /scratch/jmyers/fsf/gcc-mainline/gcc/c/c-parser.c:6939
0x6283b7 c_parser_cast_expression
        /scratch/jmyers/fsf/gcc-mainline/gcc/c/c-parser.c:6771
0x62845f c_parser_cast_expression
        /scratch/jmyers/fsf/gcc-mainline/gcc/c/c-parser.c:6760
0x6285d2 c_parser_binary_expression
        /scratch/jmyers/fsf/gcc-mainline/gcc/c/c-parser.c:6580
0x6292b5 c_parser_conditional_expression
        /scratch/jmyers/fsf/gcc-mainline/gcc/c/c-parser.c:6351
0x629970 c_parser_expr_no_commas
        /scratch/jmyers/fsf/gcc-mainline/gcc/c/c-parser.c:6268
0x62a0d2 c_parser_expression
        /scratch/jmyers/fsf/gcc-mainline/gcc/c/c-parser.c:8464
0x62ab19 c_parser_expression_conv
        /scratch/jmyers/fsf/gcc-mainline/gcc/c/c-parser.c:8497
0x64382c c_parser_statement_after_labels
        /scratch/jmyers/fsf/gcc-mainline/gcc/c/c-parser.c:5287
0x645968 c_parser_compound_statement_nostart
        /scratch/jmyers/fsf/gcc-mainline/gcc/c/c-parser.c:4861
0x645cde c_parser_compound_statement
        /scratch/jmyers/fsf/gcc-mainline/gcc/c/c-parser.c:4696
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.

I don't know if there was any version where this did not produce an ICE. 
Testing a patch.


More information about the Gcc-bugs mailing list