You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by Martin Sebor <se...@roguewave.com> on 2005/09/29 22:14:50 UTC

Re: source/stdlib/time_put.cpp change

Kostas Pagratis wrote:
> I just wanted to clear a change through you before I submit.
> time_put.cpp was causing the compiler (CC) to segfault:
> Signal: Segmentation faultError: Signal Segmentation fault in phase
> Scope Setup -- processing aborted
> CC ERROR:  /usr/lib32/cmplrs/fecc died due to signal 4
> CC ERROR:  core dumped
> *** Error code 32

Yes, this is a known problem documented here:
http://issues.apache.org/jira/browse/STDCXX-22.

>  
> I traced the problem down to the implementation of char* __rw_put_time
> and wchar_t* __rw_put_time.  After running the pre-processor, I found
> that they were being declared as:
> Template< > 
> char* __rw_time_put(.....) etc.
>  
> So what I did was, if __sgi and __host_mips are defined, change
> template< > to template<char*> and template<wchar_t*> and now it
> compiles.  What do you think.

It does? I've never seen this syntax. It's certainly not valid C++,
unless what you meant was __rw_time_put<char*>(...).

I fixed it a little differently this week with this change:
http://svn.apache.org/viewcvs.cgi?rev=292337&view=rev

But I've noticed some unsats in my tests that I haven't investigated
yet. Unless they are a fluke I might either have to make the functions
extern and adjust their declarations in one of our headers, or use the
explicit template argument list.

Martin