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

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2016-02-08
                 CC|                            |trippels at gcc dot gnu.org
          Component|c++                         |middle-end
     Ever confirmed|0                           |1
           Severity|blocker                     |normal

--- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
All supported gcc versions ICE.

markus@x4 tmp % cat cra.ii
namespace streflop {
template <int> struct A { operator long double() const; };
namespace SoftFloat {
typedef struct {
  long long low;
  int high;
} floatx80;
floatx80 fn1(int);
}
using namespace SoftFloat;
template <> A<32>::operator long double() const {
  long double a;
  *reinterpret_cast<floatx80 *>(&a) = fn1(0);
  return a;
}
}

markus@x4 tmp % /var/tmp/gcc_test/usr/local/bin/g++ -c -m32 -O3 cra.ii

cra.ii: In member function ‘streflop::A<<anonymous> >::operator long double()
const [with int <anonymous> = 32]’:
cra.ii:13:45: internal compiler error: in store_bit_field_1, at expmed.c:839
   *reinterpret_cast<floatx80 *>(&a) = fn1(0);
                                             ^
0x9d7d8e store_bit_field_1
        ../../gcc/gcc/expmed.c:839
0x9d7e8c store_bit_field(rtx_def*, unsigned long, unsigned long, unsigned long,
unsigned long, machine_mode, rtx_def*, bool)
        ../../gcc/gcc/expmed.c:1111
0x9f906c store_field
        ../../gcc/gcc/expr.c:6769
0x9f4b41 expand_assignment(tree_node*, tree_node*, bool)
        ../../gcc/gcc/expr.c:5021
0x8e7a2a expand_call_stmt
        ../../gcc/gcc/cfgexpand.c:2646
0x8e7a2a expand_gimple_stmt_1
        ../../gcc/gcc/cfgexpand.c:3536
0x8e7a2a expand_gimple_stmt
        ../../gcc/gcc/cfgexpand.c:3702
0x8eaa96 expand_gimple_basic_block
        ../../gcc/gcc/cfgexpand.c:5708
0x8ef8d6 execute
        ../../gcc/gcc/cfgexpand.c:6323

Reply via email to