GNOME Bugzilla – Bug 567346
commented class inside of conditional statement (PHP)
Last modified: 2009-12-30 13:38:32 UTC
Please describe the problem: When documented class is defined inside of conditional statement, doxygen freezes when parsing this source file. This bug is probably related to bug #549674. Steps to reproduce: 1. svn co https://svn.cakephp.org/repo/branches/1.2.x.x 2. try to generate documentation with doxygen 1.5.8 Actual results: Following files are causing doxygen freeze (no coredump) when parsing them (links points to line numbers with conditional statements - when these if() conditions are removed, docs are generated properly): https://trac.cakephp.org/browser/branches/1.2.x.x/cake/libs/model/behaviors/translate.php#L499 https://trac.cakephp.org/browser/branches/1.2.x.x/cake/tests/cases/libs/error.test.php#L99 https://trac.cakephp.org/browser/branches/1.2.x.x/cake/tests/cases/libs/model/datasources/dbo/dbo_adodb.test.php#L156 https://trac.cakephp.org/browser/branches/1.2.x.x/cake/tests/cases/libs/controller/component.test.php#L29 https://trac.cakephp.org/browser/branches/1.2.x.x/cake/tests/cases/libs/controller/controller.test.php#L36 Expected results: Does this happen every time? Happens every time. Other information:
I forgot to mention environment: FreeBSD 6.2-RELEASE
I tried to downgrade doxygen port and this bug exists also in versions 1.5.7.1, 1.5.7, 1.5.6_1 and 1.5.6. Doxygen version 1.5.5 works ok.
Confirmed. You can work around the issue by putting // stop parsing if we don't make progress if (parseMore && position==inputPosition) parseMore=FALSE; before if (parseMore) position=inputPosition; else position=0; in function parseCommentBlock() in commentscan.l The exact reason why the comment parser gets stuck is not yet clear to me.
*** Bug 600635 has been marked as a duplicate of this bug. ***
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).