This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Diego Novillo wrote:
On Sat, 29 Jun 2002, Graham Stott wrote:I get the same segv compiling crtstuff.c with the stage2 compiler just built by stage1 and that is with and without rtl checking enabled.It's possible that I'm not getting a segv because of the older binutils I'm running. I still have not had time to look into it any more than this.
Interestingly I can get both the segv and rtl checking failure :-) It depends very much on your stack layout which part of the stack gets trampled. The segv occurs when the recog () return address gets trampled and the rtl checking failure occurs when the INSN parameter to recog_memozied_1 () gets trampled. I found this out when adding some debuging code to recog_memozied_1 () resulted in the rtl checking failure rather than segv. In both cases the trample occurs during the same call to recog () from recog_memoized_1 (). I think it's a problem with SIMPLE but I'm having difficulty pinpointing exactly what although I do suspect SIMPLE is doing something wrong when processing the "operands[N] = x" assigments where operands is declared as rtx * const operands = &recog_data.operand[0]; The evidence comes from two experiments which both resulted in a working insn-recog.o A) replacing all occurences of operands[N] with recog_data.operand[N] B) compiling insn-recog.c with -fdisable-simple -fno-ssa-tree
Diego.
Cheers Graham
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |