gcc -O2 error

Jeremy Chadwick koitsu at freebsd.org
Sun Mar 23 04:58:01 PDT 2008


On Sat, Mar 22, 2008 at 07:24:33PM +0200, Mikael Ikivesi wrote:
> #include <wchar.h>
> #include <stdio.h>
> 
> #define max_word_len    64
> 
> wchar_t *wrong(wchar_t *wordlist, wchar_t *word)
> {   wchar_t     buffer[max_word_len+2];
>     buffer[max_word_len+2]=0;
> 
> 	<STRIPPED PART>
> 
>     if(wcsstr(wordlist,buffer)==0) wcscpy(wordlist,buffer);
> 
> 	<STRIPPED PART>
> 
>     return wordlist;
> }

There's an off-by-one error in your code, which is very likely tickling
a bug in gcc.

That said, gcc shouldn't crash or be generating working code depending
upon which optimisation flags you use, so as Kris said, file a bug with
the gcc team for that.

-- 
| Jeremy Chadwick                                    jdc at parodius.com |
| Parodius Networking                           http://www.parodius.com/ |
| UNIX Systems Administrator                      Mountain View, CA, USA |
| Making life hard for others since 1977.                  PGP: 4BD6C0CB |



More information about the freebsd-stable mailing list