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

--- Comment #4 from Stefan Schulze Frielinghaus <stefansf at gcc dot gnu.org> 
---
Breakpoint 12, gimplify_stmt (stmt_p=0x3fff76306c0, seq_p=0x3ffffff7f50) at
/devel/src/gcc/gimplify.cc:7590
7590      last = gimple_seq_last (*seq_p);
(gdb) call debug(*stmt_p)
{
  a = 1.0e+0;
  b = 0.0;
  if (__builtin_isfinite (a / b) == 0)
    {
      m2pim_M2RTS_RealValueException ((PROC *)
"/devel/src/gcc/testsuite/gm2/switches/check-all/run/fail/realrange.mod", 26,
11, (PROC *) "procedure \'_M2_realrange_init\'", (PROC *) "floating point / has
caused an overflow");
    }
  else
    {

    }
  _T28 = a / b;
  if (__builtin_isfinite (_T28) == 0)
    {
      m2pim_M2RTS_AssignmentException ((PROC *)
"/devel/src/gcc/testsuite/gm2/switches/check-all/run/fail/realrange.mod", 26,
4, (PROC *) "program module realrange", (PROC *) "assignment will cause a range
error, as the runtime instance value of \'REAL\' does not overlap with the type
\'REAL\'");
    }
  else
    {

    }
  c = _T28;
}

(gdb) call debug_tree (*stmt_p)
...
        stmt <cond_expr 0x3fff76083f0 type <void_type 0x3fff7600f18 PROC>
            side-effects
            arg:0 <eq_expr 0x3fff764b578 type <pointer_type 0x3fff7607000
ADDRESS>
                side-effects
                arg:0 <call_expr 0x3fff75f15b0 type <pointer_type 0x3fff7607000
ADDRESS>
                    side-effects
                    fn <addr_expr 0x3fff764d260 type <pointer_type
0x3fff763b690>
                        constant arg:0 <function_decl 0x3fff7614500
__builtin_isfinite>>
                    arg:0 <rdiv_expr 0x3fff764b550 type <real_type
0x3fff7607348 REAL>
                        used arg:0 <var_decl 0x3fff75fc3f0 a> arg:1 <var_decl
0x3fff75fc480 b>
                       
/devel/src/gcc/testsuite/gm2/switches/check-all/run/fail/realrange.mod:26:11
start: /devel/src/gcc/testsuite/g
m2/switches/check-all/run/fail/realrange.mod:26:9 finish:
/devel/src/gcc/testsuite/gm2/switches/check-all/run/fail/realrange.mod:26:13>
                   
/devel/src/gcc/testsuite/gm2/switches/check-all/run/fail/realrange.mod:26:11
start: /devel/src/gcc/testsuite/gm2/s
witches/check-all/run/fail/realrange.mod:26:9 finish:
/devel/src/gcc/testsuite/gm2/switches/check-all/run/fail/realrange.mod:26:13>
                arg:1 <integer_cst 0x3fff75f3cc0 constant 0>
...

(gdb) call debug_tree((tree)0x3fff7607000)
 <pointer_type 0x3fff7607000 ADDRESS
    type <void_type 0x3fff7600f18 PROC asm_written VOID
        align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x3fff7600f18
        pointer_to_this <pointer_type 0x3fff7607000 ADDRESS>>
    sizes-gimplified public unsigned DI
    size <integer_cst 0x3fff75f3930 type <integer_type 0x3fff76000a8
bitsizetype> constant 64>
    unit-size <integer_cst 0x3fff75f3948 type <integer_type 0x3fff7600000
sizetype> constant 8>
    align:64 warn_if_not_align:0 symtab:1023 alias-set 1 canonical-type
0x3fff7607000
    pointer_to_this <pointer_type 0x3fff760d498>>

So the void* type is already set prior gimplify_stmt

Reply via email to