Bug 718179 - internal compiler error: in build_call_a, at cp/call.c:332
Summary: internal compiler error: in build_call_a, at cp/call.c:332
Status: RESOLVED NORESPONSE
Alias: None
Product: openSUSE 11.4
Classification: openSUSE
Component: Development (show other bugs)
Version: Final
Hardware: x86-64 openSUSE 11.4
: P5 - None : Major with 1 vote (vote)
Target Milestone: ---
Assignee: Richard Biener
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-15 17:58 UTC by Christopher Yeleighton
Modified: 2013-02-12 14:52 UTC (History)
1 user (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christopher Yeleighton 2011-09-15 17:58:42 UTC
User-Agent:       Mozilla/5.0 (X11; Linux x86_64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2

g++ fails with an internal compiler error

Reproducible: Always

Steps to Reproduce:
  1.
{ cat <<'/* EOF */' >ICE.cpp && g++ -g ICE.cpp; }
#include <string>
#include <vector>
#include <algorithm>
#include <boost/iterator/transform_iterator.hpp>
#include <boost/ref.hpp>

namespace ls {
template 
< 
class P_C, 
class P_T = typename std:: basic_string < P_C >:: traits_type, 
class P_A = typename std:: basic_string < P_C, P_T >:: allocator_type > 
class file_rec 
{ 
public: typedef file_rec self, &ref; typedef self const &cref;
public: typedef P_C char_type; 
public: typedef P_T traits_type; public: typedef P_A allocator_type; 
public: typedef std:: basic_string < self:: char_type, self:: traits_type, self:: allocator_type > string_type; 
private: self:: string_type m_name; 
public: self:: string_type const &name (void) const { return this -> m_name; } 
public: 
class get_char_at: 
public 
::std:: unary_function <typename ::std:: vector < self >:: const_reference, typename self:: string_type:: const_reference >
{ 
public: 
typedef 
::std:: unary_function 
<typename ::std:: vector < self >:: const_reference, typename self:: string_type:: const_reference > inherited;
private: typename self:: string_type:: size_type m_pos; public: get_char_at (void): m_pos () { } 
public: 
typename inherited:: result_type 
operator () (typename inherited:: argument_type p_r) const { return p_r. name () [+this -> m_pos]; }
}; /* #ls. get_char_at X */
class as_char_at: public ::boost:: transform_iterator < self:: get_char_at, typename ::std:: vector < self >:: const_iterator >
{ 
public: 
typedef ::boost:: transform_iterator < self:: get_char_at, typename ::std:: vector < self >:: const_iterator > inherited;
public: as_char_at (typename std:: vector < self >:: const_iterator const &p_it): inherited (p_it, self:: get_char_at ()) {}
};
};
} /* $ls X */

int main (int, char const *const []) 
{ 
typedef ls:: file_rec < std:: istream:: char_type > file_rec; std:: vector < file_rec > lv_fr; ::std:: string a_n;
(&::std:: equal_range < file_rec:: as_char_at, char >) 
(::boost:: cref (lv_fr). get (). begin (), ::boost:: cref (lv_fr). get (). end (), a_n [0]);
 return +EXIT_FAILURE; } /* !main X */
/* EOF */


Actual Results:  
  1.
ICE.cpp: In function ‘int main(int, const char* const*)’:
ICE.cpp:47:91: internal compiler error: in build_call_a, at cp/call.c:332
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugs.opensuse.org/> for instructions.


Expected Results:  
  1.
Successful compilation or ill-formed source message.
Comment 1 Richard Biener 2011-09-26 09:12:40 UTC
Please provide preprocessed source.  Note that we are unlikely to fix anything
for openSUSE 11.4.
Comment 2 Richard Biener 2013-02-12 14:52:04 UTC
No response from reporter.