we just reject now but it is
valid code as far as I can tell:
template< class other>
  struct bin_search_tree_data_ 
{
  typedef typename other::node node;
  typedef node *node_pointer;
  ~bin_search_tree_data_()
  {
    m_p_head->~node();
  }
  node_pointer m_p_head;
};
struct blowup
{
  typedef int node;
};
bin_search_tree_data_< blowup >  r;

------------------------------ Here is one that ICEs also and closer to
the original code:
template< class other>
  struct bin_search_tree_data_
{
  typedef typename other::node node;
  typedef node *node_pointer;
  ~bin_search_tree_data_()
  {
    m_p_head->~node();
  }
  node_pointer m_p_head;
};
struct blowup2{};
struct blowup
{
  typedef blowup2 node;
};
bin_search_tree_data_< blowup >  r;
------
I am creating this after 15 hours of no activity on fixing the problem.


-- 
           Summary: [4.2 Regression] Dependent deconstrcutors
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code, rejects-valid
          Severity: blocker
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: pinskia at gcc dot gnu dot org
OtherBugsDependingO 23287
             nThis:


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28942

Reply via email to