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]

[Bug c++/13836] New: Illegal instruction calling function pointer


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


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