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]

optimization/9324: gcc-3.4 segfaults combination of O2/functionptr/return val/argument/inline


>Number:         9324
>Category:       optimization
>Synopsis:       gcc-3.4 segfaults combination of O2/functionptr/return val/argument/inline
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Wed Jan 15 03:16:01 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Rasmus Hahn
>Release:        gcc-3.4 cvs
>Organization:
>Environment:
Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.4/specs
Configured with:  : (reconfigured)  : (reconfigured) 
Thread model: posix
gcc version 3.4 20030115 (experimental)
>Description:
gcc-3.4 segfaults on how-to-repeat-program.
compiler-3.4-failureb.c: In function `callfunc':
compiler-3.4-failureb.c:11: internal compiler error: Segmentation fault
Please submit a full bug report,...
The bug occurs also if
- the function pointer is embedded in a structure
- values have some useful values. This scenario comes from linux-kernel 2.4.19-pre8,
  kernel/signal.c where the function names are/were different.
It does not crash if
- the parameter of callfunc is removed, though not used
- no inline is used
- callfunc does not return a value

This bug is new in gcc-3.4, maybe has something to do with PR9298, maybe not

>How-To-Repeat:
typedef void (*func)();
inline func getfunc()
{
  return (func) 3;
}
int callfunc(int foo) /* works without parameter */
{
  getfunc () ();
  return 0; /* works without return */
}
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]