public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: optimization/8391: g++ 3.1.1 and 3.2 infinite loop on legal code
@ 2002-10-29 10:19 paolo
0 siblings, 0 replies; 2+ messages in thread
From: paolo @ 2002-10-29 10:19 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, nobody, spencer
Synopsis: g++ 3.1.1 and 3.2 infinite loop on legal code
State-Changed-From-To: open->analyzed
State-Changed-By: paolo
State-Changed-When: Tue Oct 29 10:19:04 2002
State-Changed-Why:
Confirmed on i686-pc-linux-gnu, both mainline and 3_2-branch.
Regression from 2.95.x and 3.0.x -> high priority.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8391
^ permalink raw reply [flat|nested] 2+ messages in thread
* optimization/8391: g++ 3.1.1 and 3.2 infinite loop on legal code
@ 2002-10-29 9:26 spencer
0 siblings, 0 replies; 2+ messages in thread
From: spencer @ 2002-10-29 9:26 UTC (permalink / raw)
To: gcc-gnats; +Cc: spencer
>Number: 8391
>Category: optimization
>Synopsis: g++ 3.1.1 and 3.2 infinite loop on legal code
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: ice-on-legal-code
>Submitter-Id: net
>Arrival-Date: Tue Oct 29 09:26:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator: Brad Spencer
>Release: gcc-3.2
>Organization:
>Environment:
gcc-3.1.1 sparc-sun-solaris2.8 target on i686-pc-linux-gnu
gcc-3.2 sparc-sun-solaris2.8 target on i686-pc-linux-gnu
gcc-3.2 i686-pc-linux-gnu native
>Description:
The following code causes the compiler to loop infinitely in cc1plus for the targets described above.
This compiles successfully on other (commercial) compilers.
$ /opt/gcc-3.1.1-cross/sparc-sun-solaris2.8/bin/sparc-sun-solaris2.8-g++ -v
Reading specs from /opt/gcc-3.1.1-cross/sparc-sun-solaris2.8/lib/gcc-lib/sparc-sun-solaris2.8/3.1.1/specs
Configured with: ../../gcc-3.1.1/configure --with-dwarf2 --enable-languages=c,c++ --enable-threads=single --disable-shared --prefix=/opt/gcc-3.1.1-cross/sparc-sun-solaris2.8 --target=sparc-sun-solaris2.8 -v --with-headers=/build/spencer/gcc-cross/sparc-sun-solaris2.8/target-stuff/include/ --with-lib=/build/spencer/gcc-cross/sparc-sun-solaris2.8/target-stuff/lib --with-gnu-as --with-gnu-ld --disable-multilib
Thread model: single
gcc version 3.1.1
$ /opt/gcc-3.2-cross/sparc-sun-solaris2.8/bin/sparc-sun-solaris2.8-g++ -v
Reading specs from /opt/gcc-3.2-cross/sparc-sun-solaris2.8/lib/gcc-lib/sparc-sun-solaris2.8/3.2/specs
Configured with: ../../gcc-3.2/configure --with-dwarf2 --enable-languages=c,c++ --enable-threads=single --disable-shared --prefix=/opt/gcc-3.2-cross/sparc-sun-solaris2.8 --target=sparc-sun-solaris2.8 --with-headers=/build/eng-linux1/spencer/gcc-cross/sparc-sun-solaris2.8/target-stuff/include/ --with-lib=/opt/gcc-3.2-cross/sparc-sun-solaris2.8/sparc-sun-solaris2.8/lib --with-gnu-as --with-gnu-ld --disable-multilib --enable-concept-checks --enable-clocale=ieee_1003.1-2001
Thread model: single
gcc version 3.2
$ g++ -v
Reading specs from /opt/gcc-3.2-cross/i686-pc-linux-gnu/lib/gcc-lib/i686-pc-linux-gnu/3.2/specs
Configured with: ../../gcc-3.2/configure --with-dwarf2 --enable-languages=c,c++ --enable-threads=single --disable-shared --prefix=/opt/gcc-3.2-cross/i686-pc-linux-gnu --with-gnu-as --with-gnu-ld --with-as=/opt/gcc-3.2-cross/i686-pc-linux-gnu/bin/as --with-ld=/opt/gcc-3.2-cross/i686-pc-linux-gnu/bin/ld --disable-multilib --enable-clocale=gnu
Thread model: single
gcc version 3.2
// g++ -Wall -c -O foo.o foo.cc
#include <iostream>
#include <string>
namespace Namespace
{
class Object
{
public:
Object() {}
virtual ~Object() {}
public:
struct Writer
{
virtual bool operator()(const char *data, const size_t size) = 0;
};
virtual bool write(Writer &writer) const;
};
// convenience output operator
inline std::ostream &operator<<(std::ostream &out,
const Object &obj)
{
class ContentWriter : public Object::Writer
{
std::ostream &m_out;
public:
ContentWriter(std::ostream &out)
: m_out(out)
{}
virtual bool operator()(const char *data, const size_t size) {
return m_out.write(data, size);
}
} contentWriter(out);
obj.write(contentWriter);
return out;
}
}
void
f(Namespace::Object &req)
{
std::cout << req;
}
>How-To-Repeat:
Compile the file. The compilation never completes.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2002-10-29 18:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-10-29 10:19 optimization/8391: g++ 3.1.1 and 3.2 infinite loop on legal code paolo
-- strict thread matches above, loose matches on Subject: below --
2002-10-29 9:26 spencer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).