[Bug middle-end/61207] [4.9 Regression] Win64 gcc 4.9.0: ICE in in expand_expr_addr_expr_1 at -Os compiling some C++ code
doko at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Mar 6 17:39:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61207
Matthias Klose <doko at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |ice-on-valid-code
CC| |doko at gcc dot gnu.org
Known to work| |4.8.4, 5.0
Version|4.9.0 |4.9.2
Summary|Win64 gcc 4.9.0: ICE at -Os |[4.9 Regression] Win64 gcc
|compiling some C++ code |4.9.0: ICE in in
| |expand_expr_addr_expr_1 at
| |-Os compiling some C++ code
Known to fail| |4.9.2
--- Comment #6 from Matthias Klose <doko at gcc dot gnu.org> ---
at least on arm-linux-gnueabihf, this is a regression in 4.9 (seen with -Os and
-O3), works on the trunk.
$ g++ -c -O3 moc_workplane.ii
moc_workplane.ii: In member function 'virtual A
C<int>::_ZTv0_n12_NK1CIiE5m_fn1Ev() const':
moc_workplane.ii:8:45: internal compiler error: in expand_expr_addr_expr_1, at
expr.c:7634
template <typename> class C : virtual B { A m_fn1() const; };
^
Please submit a full bug report,
with preprocessed source if appropriate.
$ cat moc_workplane.ii
class A {
float xp;
float yp;
};
class B {
virtual A m_fn1() const;
};
template <typename> class C : virtual B { A m_fn1() const; };
class D : C<int> {
virtual const int *m_fn2() const;
};
template <typename T> A C<T>::m_fn1() const { return A(); }
const int *D::m_fn2() const {}
More information about the Gcc-bugs
mailing list