[Bug c++/93048] ICE in verify_gimple
pilarlatiesa at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Dec 23 09:56:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93048
--- Comment #1 from Pilar Latiesa <pilarlatiesa at gmail dot com> ---
Reduced:
#include <valarray>
template<typename T>
class valarray {};
template<int d, int r1>
struct TTensor
{};
template<int d, int r>
struct TCoefs
{
double aP;
std::valarray<double> aF;
TTensor<d, r> b;
};
template<int d, int r>
class TCampo {};
template<int d, int r>
class TExprDiv
{
private:
TCampo<d, r> const &U;
TCampo<d, r> const &fi;
public:
TExprDiv(TCampo<d, r> const &U_, TCampo<d, r> const &fi_):
U(U_), fi(fi_) {}
TCoefs<d, r>
CalcCoefs(int) const;
};
template<int d, int r>
TCoefs<d, r>
TExprDiv<d, r>::CalcCoefs(int) const
{
double aP = 0.0;
std::valarray<double> aF;
TTensor<d, r> b = {};
return {aP, aF, b};
}
int main()
{
TCampo<2u, 1u> U;
auto bar = TExprDiv<2u, 1u>(U, U).CalcCoefs(0);
return 0;
}
I could not remove the dependency on the valarray header. It seems that TCoefs
needs to have this members for the ICE to happen.
More information about the Gcc-bugs
mailing list