This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/13836] New: Illegal instruction calling function pointer
- From: "sdowning at fame dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 23 Jan 2004 18:43:39 -0000
- Subject: [Bug c++/13836] New: Illegal instruction calling function pointer
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
A coredump resulting from an illegal instruction occurs when calling a function
pointer corresponding to a function in a separate module that contains a static,
statically initialized (with non-zero values) array of characters.
The module driver.cc contains a static array of characters. The macro
EXHIBIT_SYMPTOM can be set to 0 to cause the symptom to go away.
The symptom can also be suppressed by
1) Initializing the array to zero values
2) Moving the array before the driver function
3) Declaring the array global rather than static
The symptom in the test case only occurs in the debug build (see build_run.sh)
but in the larger program that precipitated the test case, the symptom occurs in
non-debug builds as well. I have been able to workaround this issue by making
sure any functions pointed to are defined at the end of the module.
--
Summary: Illegal instruction calling function pointer
Product: gcc
Version: 3.3.2
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sdowning at fame dot com
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: powerpc-ibm-aix5.1.0.0
GCC host triplet: powerpc-ibm-aix5.1.0.0
GCC target triplet: powerpc-ibm-aix5.1.0.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13836