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

             Bug #: 53520
           Summary: ICE in timevar_start with -ftime-report and constexpr
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: pins...@gcc.gnu.org


Short testcase:
     template<typename _Alloc> class allocator;
     template<typename _Alloc, typename _Tp> struct __alloctr_rebind_helper {
    template<typename, typename> static constexpr bool _S_chk(...) { return 0; 
 }
static const bool __value = _S_chk<_Alloc, _Tp>(nullptr);
    };
     template<typename _Alloc, typename _Tp, bool =
__alloctr_rebind_helper<_Alloc, _Tp>::__value> struct __alloctr_rebind;
     template<typename _Alloc> struct allocator_traits {
    template<typename _Tp> using rebind_alloc = typename
__alloctr_rebind<_Alloc, _Tp>::__type;
    };
     template<typename _Tp, typename _Alloc = allocator<_Tp> > class vector 
 {
    typedef typename allocator_traits<_Alloc> ::template
rebind_alloc<_Tp>::other _Tp_alloc_type;
    };
      template <typename type> struct Data {
     static const vector <type >& values1 () {    }
     };
  void f() {
    typedef Data <int> value_data;
range_begin (value_data::values1 ());
}

--- CUT ---
This was a valid program to begin with

Reply via email to