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 686983 - Undocumented struct/class when defined inside a macro call
Undocumented struct/class when defined inside a macro call
Status: RESOLVED FIXED
Product: doxygen
Classification: Other
Component: build
1.8.2
Other Linux
: Normal normal
: ---
Assigned To: Dimitri van Heesch
Dimitri van Heesch
Depends on:
Blocks:
 
 
Reported: 2012-10-27 14:26 UTC by Márcio Faustino
Modified: 2012-12-26 16:09 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Márcio Faustino 2012-10-27 14:26:30 UTC
A struct/class defined inside a call to a macro won't have its documentation picked up. For example:

/** ... */
PACKED(
struct A {
    /** ... */
    int x;
});

Or even:

PACKED(
/** ... */
struct A {
    /** ... */
    int x;
});

The following configuration I tried didn't help either:
ENABLE_PREPROCESSING = YES
PREDEFINED = PACKED(type)=type
MACRO_EXPANSION = YES

One workaround is to manually mark the documentation comments themselves, i.e. via @class, etc, but this is too tedious and error-prone.

The concrete source code I'm trying to document is this:
- macro: https://github.com/marciof/Eon/blob/master/library/util.h#L207
- struct: https://github.com/marciof/Eon/blob/master/core/architecture/x86/multiboot/Boot_Device.h#L21

This occurs on both Windows 7 64-bit and Kubuntu 10.10 32/64-bit.
Comment 1 Dimitri van Heesch 2012-10-28 12:30:16 UTC
Confirmed. Should be fixed in the next subversion update.
Comment 2 Dimitri van Heesch 2012-12-26 16:09:20 UTC
This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.8.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.