Re: wctob function overwrites caller-owned register

2010-05-02 Thread Corinna Vinschen
On May 2 13:28, Corinna Vinschen wrote: > Thanks for the report. This is actually a newlib bug. I'm going to > replace the above function with: > [...] No, hang on. This function is a single big bug. Here's the replacement I'll check in: int wctob (wint_t wc) { mbstate_t mbs; unsigned ch

Re: wctob function overwrites caller-owned register

2010-05-02 Thread Corinna Vinschen
On May 2 12:43, Bruno Haible wrote: > In Cygwin 1.7.2, the wctob() function clobbers the %ebx register, which > belongs to the caller. The effects are random behaviour and crashes in > the caller. > [...] > int > wctob (wint_t c) > { > mbstate_t mbs; > int retval = 0; > unsigned char pwc; >

wctob function overwrites caller-owned register

2010-05-02 Thread Bruno Haible
In Cygwin 1.7.2, the wctob() function clobbers the %ebx register, which belongs to the caller. The effects are random behaviour and crashes in the caller. How to reproduce: = Compile this program, consisting of 2 parts, without optimization. It works fine. ===