[Bug middle-end/39447] ICE in create_data_ref with -O1 -floop-interchange
il dot basso dot buffo at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Mar 16 22:24:00 GMT 2009
------- Comment #4 from il dot basso dot buffo at gmail dot com 2009-03-16 22:24 -------
Bah, here's an even smaller example:
struct Point
{
int line, col;
Point( int l = -1, int c = 0 ) throw() : line( l ), col( c ) {}
bool operator==( const Point & p ) const throw()
{ return ( line == p.line && col == p.col ); }
bool operator<( const Point & p ) const throw()
{ return ( line < p.line || ( line == p.line && col < p.col ) ); }
};
class Buffer
{
public:
int characters( const int line ) const throw();
int pgetc( Point & p ) const throw();
Point eof() const throw() { return Point( 0, 0 ); }
bool pisvalid( const Point & p ) const throw()
{ return ( ( p.col >= 0 && p.col < characters( p.line ) ) || p == eof() );
}
bool save( Point p1 = Point(), Point p2 = Point() ) const;
};
bool Buffer::save( Point p1, Point p2 ) const
{
if( !this->pisvalid( p1 ) ) p1 = eof();
if( !this->pisvalid( p2 ) ) p2 = eof();
for( Point p = p1; p < p2; ) { pgetc( p ); }
return true;
}
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39447
More information about the Gcc-bugs
mailing list