After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 636947 - Failure to document all function overloads in cases where parameters are typedefs.
Failure to document all function overloads in cases where parameters are type...
Status: RESOLVED FIXED
Product: doxygen
Classification: Other
Component: general
1.7.1
Other Windows
: Normal minor
: ---
Assigned To: Dimitri van Heesch
Dimitri van Heesch
Depends on:
Blocks:
 
 
Reported: 2010-12-10 10:41 UTC by Matt Brown
Modified: 2011-01-03 19:01 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Matt Brown 2010-12-10 10:41:22 UTC
Doxygen version 1.7.1.

The example C code below reproduces the issue:

//START
/*! 
    \addtogroup MyGroup
    \{
*/
typedef float MyType[4];            //!< A fixed-size float array

/*!
    \brief A function.
*/
void foo(
    MyType          out,            //!< output
    const MyType    a,              //!< input param 1
    const float     b = 0.0f        //!< input param 2
    );

/*!
    \brief A function overload.
*/
void foo(
    MyType          out,            //!< output
    const MyType    c,              //!< input param 1
    const MyType    d               //!< input param 2
    );

/*!
    \brief Another function.
*/
void bar(
    float*          out,            //!< output
    const float*    a,              //!< input param 1
    const float     b = 0.0f        //!< input param 2
    );

/*!
    \brief Another function overload.
*/
void bar(
    float*          out,            //!< output
    const float*    c,              //!< input param 1
    const float*    d               //!< input param 2
    );

/*! 
    \} Close Doxygen Group 'MyGroup', do not remove
*/
//END


The expected behaviour:
There should be two entries for foo and two for bar in the generated docs - one for each of the overloads.

Actual behaviour:
There are two entries for bar, but only one for foo.
The one entry for foo contains the brief of both overloads, but not all other details.
Here's a textual representation of the (incorrect) doxygen html output for foo...

//START
void foo ( MyType        out,
           const MyType  a,
           const float 	 b = 0.0f
         )

  A function.

  A function overload.

  Parameters:
        out  output
        a    input param 1
        b    input param 2
//END


And the same (correct) for bar...

//START
void bar ( float *       out,
           const float * a,
           const float   b = 0.0f
         )

  Another function.

  Parameters:
        out  output
        a    input param 1
        b    input param 2

void bar ( float *       out,
           const float * c,
           const float * d
         )

  Another function overload.

  Parameters:
        out  output
        c    input param 1
        d    input param 2
//END
Comment 1 Matt Brown 2010-12-10 10:46:17 UTC
I set this as minor severity since it can be worked around by including additional details in the function descriptions.
It occurs to me that I've not tested this with a default doxygen config file yet. I'll do that now.
Comment 2 Matt Brown 2010-12-10 10:58:33 UTC
I've now checked, and this can be reproduced with a clean template config file.
All I set in the template config was PROJECT_NAME, OUTPUT_DIRECTORY, INPUT.
Comment 3 Dimitri van Heesch 2011-01-01 21:09:09 UTC
Confirmed. Should be fixed in the next release.
Comment 4 Dimitri van Heesch 2011-01-03 19:01:09 UTC
This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.7.3. Please verify if this is indeed the case. Reopen the
bug if you think it is not fixed and please include any additional information
that you think can be relevant.