egcs 1.1.1 bug

H.J. Lu hjl@lucon.org
Sat Dec 12 11:24:00 GMT 1998


> 
> Hi,
>   ORBacus itself seems to compile fine with egcs 1.1.1, but unfortunately
>   one of our other packages does not. This package is called
>   JThreads/C++, and can be obtained from our ftp server.
> 
>   ftp://ftp.ooc.com/pub/JTC/1.0/JTC-1.0.4.tar.gz
> 
> It doesn't compile under Linux with libc6.
> 
> make[2]: Entering directory `/xw/us/JTC-1.0.4/jtc/src'
> c++ -c -I. -I../include  --no-implicit-templates -Wall -Wno-return-type
> Cond.cpp
> c++ -c -I. -I../include  --no-implicit-templates -Wall -Wno-return-type
> Mutex.cpp
> function.c:3272: Internal compiler error in function instantiate_virtual_regs_1
> make[2]: *** [Mutex.o] Error 1
> 
> Under Solaris it compiles and the test suite works.
> 

Thanks for your bug report. Here is a simple testcase.

# uname -a
Linux ocean.lucon.org 2.1.131 #101 SMP Sat Dec 12 08:26:21 PST 1998 i686 unknown
# gcc -S foo.cc 
/home/work/misc/gnu/src/egcs-1.1.1/gcc/function.c:3272: Internal compiler error in function instantiate_virtual_regs_1

BTW, egcs 1.0.3 is ok.


-- 
H.J. Lu (hjl@gnu.org)
---foo.cc-
typedef unsigned long int pthread_t;
class JTCThreadId
{
    pthread_t id_;  
    bool nullId_;  
public:
    JTCThreadId()
    	: nullId_(true)
    {
    }
    JTCThreadId(pthread_t id)
	: id_(id), nullId_(false)
    {
    }
    operator pthread_t() const
    {
	return id_;
    }
};
class JTCRecursiveMutex
{
    int count_;  
    JTCThreadId owner_;  
public:
    JTCThreadId _JTC_getId() const;
};
JTCThreadId
JTCRecursiveMutex::_JTC_getId() const
{
    JTCThreadId id = (count_ > 0) ? owner_ : JTCThreadId();
    return id;
}



More information about the Gcc-bugs mailing list