[Bug c++/65992] Internal compiler error: in gimple_expand_cfg, at cfgexpand.c:5658

2017-10-06 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65992

Paolo Carlini  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |6.0

--- Comment #3 from Paolo Carlini  ---
Fixed long ago, in 6.1.0.

[Bug c++/65992] Internal compiler error: in gimple_expand_cfg, at cfgexpand.c:5658

2015-05-04 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65992

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mpolacek at gcc dot gnu.org

--- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org ---
Started with r202605.  Before:
/opt/notnfs/polacek/x.ii: In lambda function:
/opt/notnfs/polacek/x.ii:37:30: error: ‘const’ qualifiers cannot be applied to
‘const gen::CMembers’
   [=] { [] { auto dummy = {(bs, 0)...}; }; };
  ^
/opt/notnfs/polacek/x.ii:37:36: error: expansion pattern ‘(bs, 0)’ contains no
argument packs
   [=] { [] { auto dummy = {(bs, 0)...}; }; };
^
/opt/notnfs/polacek/x.ii: In instantiation of ‘struct gen::build(GenT, const
gen::CMembers ...) [with T = Foobarint; Members = {void
(Foobarint::*)(), void (Foobarint::*)(), int Foobarint::*}]::lambda()’:
/opt/notnfs/polacek/x.ii:37:3:   required from ‘void gen::build(GenT, const
gen::CMembers ...) [with T = Foobarint; Members = {void
(Foobarint::*)(), void (Foobarint::*)(), int Foobarint::*}]’
/opt/notnfs/polacek/x.ii:48:37:   required from here
/opt/notnfs/polacek/x.ii:37:30: sorry, unimplemented: use of
‘type_pack_expansion’ in template
   [=] { [] { auto dummy = {(bs, 0)...}; }; };
  ^
/opt/notnfs/polacek/x.ii:37:30: error: using invalid field ‘gen::build(GenT,
const gen::CMembers ...)::lambda()::bs capture’

[Bug c++/65992] Internal compiler error: in gimple_expand_cfg, at cfgexpand.c:5658

2015-05-03 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65992

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-05-03
 CC||trippels at gcc dot gnu.org
 Ever confirmed|0   |1
   Severity|major   |normal

--- Comment #1 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
markus@x4 tmp % cat BuildTests.pp.ii
namespace std {
template typename _Tp, _Tp struct integral_constant {
  static constexpr _Tp value = 0;
};
template typename struct is_same : integral_constantbool, false {};
template bool struct enable_if;
template class class initializer_list {
  int *_M_array;
  unsigned long _M_len;
};
class A {
  int _M_t;
};
}
template typename class Gen {
public:
  template typename Impl = std::enable_ifstd::is_sameint::value
Gen(Impl);
  std::A m_impl;
};
namespace gen {
void tuple();
template typename class B;
template typename Type, typename T class BT(Type::*) {
public:
  typedef T ValueType;
};
template typename Member struct C {
  using LensT = BMember;
  using ValueType = typename LensT::ValueType;
  using GenT = GenValueType;
  GenT gen;
};
template typename T GenT construct();
template typename Member CMember set(Member, typename CMember::GenT);
template typename T, typename... Members
void build(GenT, const CMembers ... bs) {
  [=] { [] { auto dummy = {(bs, 0)...}; }; };
}
}
template typename struct Foobar {
  void setB();
  void setCD();
  int e;
};
void C_A_T_C_HT_E_S_T185() {
  build(gen::constructFoobarint(), gen::set(Foobarint::setB, 0),
gen::set(Foobarint::setCD, gen::tuple),
gen::set(Foobarint::e, 0));
}

markus@x4 tmp % g++ -std=c++11 -c BuildTests.pp.ii
BuildTests.pp.ii: In function ‘void gen::build(GenT, const gen::CMembers
...) [with T = Foobarint; Members = {void (Foobarint::*)(), void
(Foobarint::*)(), int Foobarint::*}]’:
BuildTests.pp.ii:36:6: internal compiler error: in execute, at cfgexpand.c:6044
 void build(GenT, const CMembers ... bs) {
  ^
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.