diff options
author | albert-github <albert.tests@gmail.com> | 2020-11-09 17:40:58 (GMT) |
---|---|---|
committer | albert-github <albert.tests@gmail.com> | 2020-11-09 17:40:58 (GMT) |
commit | 7171bbba9259bc7d22e09454ca9d7381d13c94e2 (patch) | |
tree | 4fe3bfae4f2f837163d39526ad6cbf85fc927ad7 | |
parent | 6922d5d63d77c8f640c58e9c68a9955f9f0aa9a7 (diff) | |
download | Doxygen-7171bbba9259bc7d22e09454ca9d7381d13c94e2.zip Doxygen-7171bbba9259bc7d22e09454ca9d7381d13c94e2.tar.gz Doxygen-7171bbba9259bc7d22e09454ca9d7381d13c94e2.tar.bz2 |
Doxygen crashes on Fortran
When having a Fortran file like:
```
!> module docu
MODULE test_mod
INTERFACE
!> @brief iets
SUBROUTINE subr_i(this)
INTEGER this
END SUBROUTINE subr_i
END INTERFACE
!< @brief type brief
TYPE, PUBLIC :: test_type
!> docu
integer i
END TYPE test_type
END MODULE test_mod
```
this is due to the fact that a incorrect start of comment `!<` is used for the `TYPE` and that initiated because the last `SUBROUTINE` argument does not have any documentation.
The actual cause is that at the end of a subroutine the `vtype` is not properly reset.
-rw-r--r-- | src/fortranscanner.l | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/fortranscanner.l b/src/fortranscanner.l index dfca1f8..6b581d2 100644 --- a/src/fortranscanner.l +++ b/src/fortranscanner.l @@ -774,6 +774,7 @@ private { yyterminate(); } yyextra->subrCurrent.pop_back(); + yyextra->vtype = V_IGNORE; yy_pop_state(yyscanner) ; } <BlockData>{ |