New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New include handling policy issues warnings (Origin: bugzilla #595935) #3528

Closed
doxygen opened this Issue Jul 2, 2018 · 0 comments

Comments

Projects
None yet
1 participant
@doxygen
Owner

doxygen commented Jul 2, 2018

status RESOLVED severity minor in component general for ---
Reported in version 1.6.1 on platform Other
Assigned to: Dimitri van Heesch

Original attachment names and IDs:

On 2009-09-22 11:00:44 +0000, Luca Ottaviano wrote:

Created attachment 143683
Minimal project that shows the problem

The attached sample project issues some warnings about undefined macros. The
full project is BeRTOS documentation, which can be downloaded from
http://download.bertos.org/release/bertos.tar.bz2

Possibly a regression from 1.5.8.

In the full project the following compilation warnings are issued:
src/bertos/bertos/cfg/macros.h:225: Warning: documentation for unknown
define BIT_CHANGE found.

src/bertos/bertos/cfg/macros.h:264: Warning: documentation for unknown
define BIT_CHANGE_BV found.

src/bertos/bertos/cfg/macros.h:327: Warning: documentation for unknown
define ROTR found.

src/bertos/bertos/cfg/macros.h:339: Warning: documentation for unknown
define MAKE_ID found.

While the first two are inside a #if/#endif block and I'm looking for a
workaround (like PREDEFINES or such), the latter 2 are plain macros
defined like this:

/**

  • ROTR documentation here
    */
    #define ROTR [something]

The problem is, version 1.5.8 on Ubuntu 9.10 doesn't complain at all and
correctly generates documentation for the last 2 macros; also, if I
rename the file cfg/macros.h to cfg/asdf.h, no warning is issued and
documentation is generated as expected even with version 1.6.1.

The original project has empty INPUT field. Changing it to:
INPUT = bertos/cfg/macros.h bertos/
fixes the problem.

Tested on Linux and Windows.

On 2009-09-22 12:36:36 +0000, Luca Ottaviano wrote:

Created attachment 143690
Another test case with a PREDEFINED added

On 2009-09-22 12:38:07 +0000, Luca Ottaviano wrote:

When adding to PREDEFINED the macro COMPILER_VARIADIC_MACROS to generate documentation for BIT_CHANGE and BIT_CHANGE_BV the warnings appear again and the INPUT trick doesn't work.

On 2009-09-27 10:15:07 +0000, Dimitri van Heesch wrote:

Turns out this had nothing to do with the new include handling policy, but with a macro containing an empty C style comment, e.g.:

#define BIT_MASK_SINGLE__(use_bv, index, max, arg)
((index < max) ? (PP_CAT(BIT_EXTRACT_FLAG_, use_bv) arg) : 0)
/**/

If you remove the /*/ or replace it by /* / it should work again. Doxygen was treating / as the start of a special comment and then looked for the */ which might never come.

I'll fix the preprocessor's matching rules for this case.

On 2009-09-28 07:30:49 +0000, Luca Ottaviano wrote:

Thanks, it works.

Feel free to close the bug when proper rules are implemented.

On 2009-12-30 13:38:52 +0000, Dimitri van Heesch wrote:

This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.6.2. Please verify if this is indeed the case and reopen the
bug if you think it is not fixed (include any additional information that you
think can be relevant).

@doxygen doxygen closed this Jul 2, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment