Skip to content
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

Fortran Prefix of routines gets stripped (Origin: bugzilla #523156) #2891

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

Comments

Projects
None yet
1 participant
@doxygen
Copy link
Owner

doxygen commented Jul 2, 2018

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

Original attachment names and IDs:

On 2008-03-18 13:06:46 +0000, Alin M Elena wrote:

Please describe the problem:
The prefix of the routines gets stripped.
This makes impossible to say by inspecting the functions/subroutines list or the detailed description what is the prefix. The only place where the prefix is still present is the source code.

Steps to reproduce:
here is some code that will reproduce the problem

module test
implicit none

private
public :: DeleteList
contains
!> \brief recursive function that deallocates all the nodes starting with root
!> \details
!> \author Alin M Elena
!> \date 14th of January 2006
!> \param root type(names), pointer the starting node
recursive subroutine DeleteList(root)
character(len=*), parameter :: myname = 'DeleteList'
type(names), pointer :: root
type(names), pointer :: current

current=>root%next
if (associated(current)) then
  call DeleteList(current)
else
  deallocate(root)
endif 

end subroutine DeleteList
end module test

Actual results:
prefix gets stripped

Expected results:
prefix should remain

Does this happen every time?
Yes

Other information:

On 2008-03-18 13:10:51 +0000, Alin M Elena wrote:

Created attachment 107529
solves the problem

On 2008-03-18 14:33:47 +0000, Alin M Elena wrote:

the patch contains the patch for the bug 521453 also

On 2010-11-08 20:35:57 +0000, albert wrote:

Created attachment 174096
Patch based on current source code

This patch is the same patch as the patch from Alin M Elena from 2008 but now based on the newest svn source code. (I came independently to the same conclusion as Alin before I found this bug report)

On 2010-11-08 20:40:38 +0000, albert wrote:

*** Bug 625517 has been marked as a duplicate of this bug. ***

On 2010-11-08 20:45:14 +0000, Dimitri van Heesch wrote:

Thanks, I'll include the patch in the next subversion update.

On 2011-01-03 19:01:25 +0000, Dimitri van Heesch wrote:

This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.7.3. 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.

On 2011-03-14 08:19:41 +0000, steindaube@googlemail.com wrote:

The problem is not fixed completely in version 1.7.3.

Please describe the problem:
Functions with the recursive keyword in Fortran are still not included correctly in the documentation. This may lead to the wrong comment shown for a subroutine that is defined after the recursive function.

Steps to reproduce:
here is some code that will reproduce the problem

MODULE test_module

implicit none

contains

!> Comment for routine1
subroutine routine1()
end subroutine routine1

!> Comment for function1
integer recursive function function1()
function1 = 42
end function function1

!> Comment for routine2
subroutine routine2()
end subroutine routine2

!> Comment for routine3
recursive subroutine routine3()
end subroutine routine3

!> Comment for routine4
subroutine routine4()
end subroutine routine4

end module test_module

Actual results:
The following list of routines is generated in the documentation which is of course incorrect (note the wrong comment for routine2 and the missing function1!):

Functions/Subroutines
subroutine routine1 ()
Comment for routine1.
subroutine routine2 ()
Comment for function1.
recursive subroutine routine3 ()
Comment for routine3.
subroutine routine4 ()
Comment for routine4.

Expected results:
The function1 should be recognized and routine2 should have the correct comment.

Does this happen every time?
Yes

Other information:
Recursive subroutines seem to be recognized correctly since version 1.7.3.

On 2012-05-13 17:32:37 +0000, albert wrote:

Created attachment 213963
PATCH: fixing order "recursive integer" for function definitions

Not all combinations in the order of type definition and prefix (recursive, elemental, pure) were handled in the fortranscanner.l. In fortrancode.l these prefixes were not handled as well, resulting in not "green" words in the code for these prefixes.

On 2012-05-13 18:00:06 +0000, Dimitri van Heesch wrote:

Thanks, I'll include the patch in the next subversion update.

On 2012-05-19 12:26:39 +0000, Dimitri van Heesch wrote:

This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.8.1. 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.

@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
You can’t perform that action at this time.