This is the mail archive of the
ecos-patches@sourceware.org
mailing list for the eCos project.
Re: eCos uSTL 1.3 port for review
On Thu, Aug 06, 2009 at 04:25:11PM +0300, Sergei Gavrikov wrote:
> On Thu, Aug 06, 2009 at 03:44:16PM +0300, Sergei Gavrikov wrote:
> > Uwe Kindler wrote:
> > > It would be really great, If you could investigate a little bit more,
> > > what causes the SIGSEG for synthetic target. Would you be so kind to run
> > > the new snprintf_c99.c test on synthetic target when C99 compliance
> > > activated to check if my vfnprintf() patch is working properly?
> >
> > Uwe,
> >
> > snprintf_c99 test passed successfully on synth. It seems that I should
> > grep all #if linux in ustl and look on that. I will try to rebuild ustl
> > with assertions and will try to re-run the tests. I'll let you know what
> > I will get then.
>
> Hm, Uwe, SIGSEG occured on a call of a destructor in vsnprintf.cxx (it's
> not your source). The uSTL test run on synthetic target with this dirty
> tweak. Do you have any thoughts?
With this patch both set of tests libc/stdio and cxx/ustl passed
successfully on synthetic target.
Sergei
Index: vsnprintf.cxx
===================================================================
RCS file: /cvs/ecos/ecos/packages/language/c/libc/stdio/current/src/common/vsnprintf.cxx,v
retrieving revision 1.6
diff -u -r1.6 vsnprintf.cxx
--- vsnprintf.cxx 29 Jan 2009 17:49:53 -0000 1.6
+++ vsnprintf.cxx 6 Aug 2009 13:49:24 -0000
@@ -71,7 +71,7 @@
public:
Cyg_VsnprintfStream(char* s): s_(s) {}
- virtual ~Cyg_VsnprintfStream() { *s_ = '\0'; }
+ virtual ~Cyg_VsnprintfStream() { if (s_) *s_ = '\0'; }
virtual Cyg_ErrNo write( const cyg_uint8 *buffer,
cyg_ucount32 buffer_length, cyg_ucount32 *bytes_written );