GNOME Bugzilla – Bug 666085
[PATCH] Preprocessing of INCLUDE FILE not reflecting the contents
Last modified: 2012-02-25 15:37:08 UTC
Hello Dimitri, In 1.7.6 release you have added the a define manager to handle #define of files. The problem that I am facing is that a class declared inside include file within guarded regions is not detected. Check the attachment. The problem is that if a file is included before it being preprocessed the defines get associated with the file when it was process as include file. When you start preprocess the contextdefines dictionary includes the define for the same file from Define Manager. Which caused guard directive to fail and class declaration get missed from doxygen. Following, can be one of the solution 119a120,131 > void addFile(const char *fileName) > { > if (fileName==0) return; > //printf("DefineManager::addFile(%s)\n",fileName); > DefinesPerFile *dpf = m_fileMap.find(fileName); > if (dpf==0) > { > //printf("New file!\n"); > dpf = new DefinesPerFile; > m_fileMap.insert(fileName,dpf); > } > } 2779c2791 < DefineManager::instance().addFileToContext(g_yyFileName); --- > DefineManager::instance().addFile(g_yyFileName); Thanks & Regards, Harpreet Singh
Created attachment 203338 [details] tar ball containing doxyfile and dummy source file
Hi Harpreet, This seems to be related with the comment block you put before the include guard. If you use: #ifndef _VE_EVAL_CACHE_H #define _VE_EVAL_CACHE_H all seems to be fine. Can you check and let me know why you would want to document the #define of an include guard?
I think your fix is correct though, so I'll include it, just in case you or anyone else wants to document the include guard.
This bug was previously marked ASSIGNED, which means it should be fixed in doxygen version 1.8.0. 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.