Bug 6742 - Generation of C++ Prototype for FORTRAN and extern "C"
Summary: Generation of C++ Prototype for FORTRAN and extern "C"
Alias: None
Product: gcc
Classification: Unclassified
Component: fortran (show other bugs)
Version: unknown
: P3 normal
Target Milestone: ---
Assignee: Toon Moene
Depends on:
Reported: 2002-05-20 08:16 UTC by donald.a.pellegrino
Modified: 2003-09-23 22:14 UTC (History)
1 user (show)

See Also:
Known to work:
Known to fail:
Last reconfirmed:


Note You need to log in before you can comment on or make changes to this bug.
Description donald.a.pellegrino 2002-05-20 08:16:01 UTC
The online documentation at: http://gcc.gnu.org/onlinedocs/g77/C---Considerations.html#C++%20Considerations

Reads "C++ Considerations
f2c can be used to generate suitable code for compilation with a C++ system using the -C++ option. The important thing about linking g77-compiled code with C++ is that the prototypes for the g77 routines must specify C linkage to avoid name mangling. So, use an extern "C" declaration. f2c's -C++ option will take care of this when generating skeletons or prototype files as above, and also avoid clashes with C++ reserved words in addition to those in C."

When using f2c with -C++ and -P the .P prototype files that are generated contain only extern declarations rather than extern "C" declarations.  When I link I get undefinied references unless I manually edit the .P and add the "C".  I would prefer the behavior described in the documentation where the -C++ flag generates prototypes containing extern "C" instead of simply extern.  Is a particular version of f2c being referenced to get the behavior specified in the g77 documentation?


f2c 20000510-5

f2c -C++ -P file.F
Comment 1 Toon Moene 2002-11-02 03:15:41 UTC
Responsible-Changed-From-To: unassigned->toon
Responsible-Changed-Why: Fortran Maintainer.
Comment 2 Toon Moene 2002-11-02 03:15:41 UTC
State-Changed-From-To: open->closed
State-Changed-Why: This is a documentation error of g77, which will be fixed
    in 3.3.