SIGSEGV with inline functions on Alpha - many version of egcs

Michal Jaegermann michal@ellpspace.math.ualberta.ca
Wed Oct 7 03:12:00 GMT 1998


This report describes a problem which I filed already twice but this
time there are more precise details.

Current versions of egcs, for quite a while and including the latest
release and the latest snapshot but not the previous release, have
problems on Linux/Alpha when inline functions and -O2 optimization
is present.

System - Linux/Alpha on EB64+ board, current kernel 2.0.36(pre).  

An included file slhc5.i is a result of trimming down to two functions
only, inline __ntohs and slhc_uncompress, of an intermediate file
created during a compilation of Linux kernel (original source from
drivers/net/slhc.c).

The following command:

  ./cc1 slhc5.i -O2 -version -o slhc2.s

results in SIGSEGV from a compiler.  When optimization is reduced
to -O1, or when __ntohs is removed, then there are no compilation
problems.  Results from gdb seem to point out to a possibility that
if_then_else_cond() from combine.c goes into an infinite recursion
eventually running out of a stack space but I am not really sure
if I understand that properly.

I include a code file slhc5.i, results from a compilation when only
-O1 was used (slhcO1.s),  results from a compilation with -O2 but
with __ntohs deleted (slhcO2.s), and a sample trace from gdb session.
"Real" code contains, obviously, many other functions including
inline __ntohl which curiously enough does not seem be doing any harm.

  Hope this helps,
  Michal Jaegermann
  michal@harddata.com
  michal@ellpspace.math.ualberta.ca

-------------- next part --------------
A non-text attachment was scrubbed...
Name: inline_bug.tar.gz
Type: application/x-gzip
Size: 28599 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-bugs/attachments/19981007/a50fed92/attachment.bin>


More information about the Gcc-bugs mailing list