Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Mar 2008 19:24:33 +0200
From:      Mikael Ikivesi <mikael.ikivesi@pp.inet.fi>
To:        freebsd-stable@freebsd.org
Subject:   gcc -O2 error
Message-ID:  <20080322192433.3719eb44@pp.inet.fi>

next in thread | raw e-mail | index | archive | help
Hi

I am running uptodate RELENG_7. It has gcc (GCC) 4.2.1 20070719
[FreeBSD].

I tried to track down segfaults from my code and I accidentaly found a
optimization error. Code did not segfault when compiled without
optimization but crashed when -O2 was used.

I tried to track it I could make the gcc give me following error by
simply stripping few lines:

-----------------------
wrong.c: In function 'wrong':
wrong.c:11: error: Attempt to delete prologue/epilogue insn:
(insn/f 47 46 48 2 (set (mem:SI (plus:SI (reg/f:SI 6 bp)
                (const_int -8 [0xfffffffffffffff8])) [0 S4 A8])
        (reg:SI 3 bx)) -1 (nil)
    (nil))
wrong.c:11: internal compiler error: in propagate_one_insn, at
flow.c:1735 Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html>; for instructions.

------------------


And this is what triggers it:


#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;
}





-Mikael




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080322192433.3719eb44>