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 737172 - C++ static_assert() halts doxygen parser
C++ static_assert() halts doxygen parser
Status: RESOLVED FIXED
Product: doxygen
Classification: Other
Component: build
1.8.8
Other Linux
: Normal normal
: ---
Assigned To: Dimitri van Heesch
Dimitri van Heesch
Depends on:
Blocks:
 
 
Reported: 2014-09-23 12:59 UTC by Gereon Kremer
Modified: 2014-12-25 16:02 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Gereon Kremer 2014-09-23 12:59:50 UTC
When static_assert() is used in a C++ class, doxygen seems to stop parsing the file at that position.

All entities that are documented above the static_assert appear just fine in the documentation, all entities below don't.
If the static_assert is removed (or put in a comment), everything works fine.

The output (QUIET = NO, WARNINGS = YES) show no errors about this.

In my case, the static assert looks like this (where RESERVED and BITSIZE are constexpr defined above, so nothing fancy here):

static_assert(RESERVED < BITSIZE, "Too many bits reserved for special use.");
Comment 1 Dimitri van Heesch 2014-09-23 18:01:56 UTC
Hi Gereon,

This fix should address the issue:
https://github.com/doxygen/doxygen/commit/e5b3dbe7a5f41c221bf2745379972d67b408f09b
Comment 2 Gereon Kremer 2014-09-24 08:59:07 UTC
Hi Dimitri,

I checked and this patch indeed resolves the issue (at least for me).
I guess you'll put this patch in the next release?

Thanks!
Comment 3 Dimitri van Heesch 2014-12-25 16:02:59 UTC
This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.8.9. 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 (preferrably in the form of a self-contained example).