Article View: gnu.gcc.bug
Article #866integrate.c
From: Michael Tiemann
Date: Tue, 12 Dec 1989 19:24
Date: Tue, 12 Dec 1989 19:24
58 lines
1777 bytes
1777 bytes
arkesden% diff -c2 integrate.c~ integrate.c
*** integrate.c~ Wed Dec 6 19:30:47 1989
--- integrate.c Tue Dec 12 11:16:16 1989
***************
*** 1162,1166 ****
be ignored since we are changing (REG n) into
inline_target. */
! if (REG_FUNCTION_VALUE_P (XEXP (pattern, 0)))
break;
/* Don't emit a (USE (REG n)) of something which
--- 1162,1166 ----
be ignored since we are changing (REG n) into
inline_target. */
! if (! ignore && REG_FUNCTION_VALUE_P (XEXP (pattern, 0)))
break;
/* Don't emit a (USE (REG n)) of something which
arkesden%
This fixes a problem which can be repeated by compiling the following
file with GCC version 1.36:
typedef struct RegInfo
{
char val;
char fake;
} RegInfo;
typedef struct Field
{
RegInfo* rip;
} Field;
inline char get_val(register Field *t)
{
return t->rip->fake;
}
Field *F ( register Field *t, RegInfo* ri )
{
t->rip = ri;
get_val(t);
ri->val = get_val(t);
return t;
}
main()
{
RegInfo ri;
Field f;
F (&f, &ri);
}
In this manner:
!gc
gcc l21.c -dr
arkesden% a.out
Segmentation fault
arkesden%
Michael
Technical Details
Message-ID:
<8912121924.AA19447@arkesden.sun.com>Path:
arc1-ca.pugleaf.net!utzoo!telly!attcan!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!tut.cis.ohio-state.edu!arkesden.eng.sun.com!tiemannShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!telly!attcan!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!tut.cis.ohio-state.edu!arkesden.eng.sun.com!tiemann From: tiemann@arkesden.eng.sun.com (Michael Tiemann) Newsgroups: gnu.gcc.bug Subject: integrate.c Message-ID: <8912121924.AA19447@arkesden.sun.com> Date: 12 Dec 89 19:24:05 GMT Sender: daemon@tut.cis.ohio-state.edu Reply-To: tiemann@sun.com Distribution: gnu Organization: GNUs Not Usenet Lines: 58