forums.silverfrost.com Forum Index forums.silverfrost.com
Welcome to the Silverfrost forums
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Internal compiler error (only with /64 option)

 
Post new topic   Reply to topic    forums.silverfrost.com Forum Index -> 64-bit
View previous topic :: View next topic  
Author Message
Thomas



Joined: 18 Feb 2005
Posts: 34
Location: Gummersbach, Germany

PostPosted: Tue Feb 09, 2021 11:29 am    Post subject: Internal compiler error (only with /64 option) Reply with quote

The following simplified source code creates an "Internal compiler error" when compiled with /64 and /check

Subroutine DRGD2Z (PSZL)
Character(len=*) :: PSZL(*)
Character(Len=10), External :: DRUTBQ
PSZL(1)(52:61) = DRUTBQ(1)
END

Without /64 no error appears.

The error can be avoided with an additional assignmnet:

Subroutine DRGD2Z (PSZL)
Character(len=*) :: PSZL(*)
Character(Len=10), External :: DRUTBQ
Character(Len=10) :: xxx
xxx = DRUTBQ(1)
PSZL(1)(52:61) = xxx
END
_________________
Thomas
Back to top
View user's profile Send private message
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 6752
Location: Salford, UK

PostPosted: Tue Feb 09, 2021 12:36 pm    Post subject: Reply with quote

Thomas

Thank you for this bug report. I have made a note that it needs fixing.
Back to top
View user's profile Send private message AIM Address
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 6752
Location: Salford, UK

PostPosted: Wed Feb 10, 2021 5:07 pm    Post subject: Reply with quote

This failure has now been fixed for the next release of FTN95.
Back to top
View user's profile Send private message AIM Address
JohnCampbell



Joined: 16 Feb 2006
Posts: 2257
Location: Sydney

PostPosted: Thu Feb 11, 2021 4:02 am    Post subject: Reply with quote

Does Subroutine DRGD2Z (PSZL) need an interface for using PSZL ?
Character(len=*) :: PSZL(*)

Perhaps (len=*) is always provided, so PSZL(*) is an array of unknown size.
So, len(PSZL(1)) is available, but size(PSZL) is not.

I would be interested if the following works.
Code:
  Subroutine DRGD2Z (PSZL)
  Character(len=*) :: PSZL(*)
  Character(Len=10), External :: DRUTBQ
  if (len(PSZL(1)) >= 61) then
    PSZL(1)(52:61) = DRUTBQ(1)
  else
    write (*,*) 'len(PSZL) =',len(PSZL(1)),' too small'
  end if
  END
Back to top
View user's profile Send private message
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 6752
Location: Salford, UK

PostPosted: Thu Feb 11, 2021 8:06 am    Post subject: Reply with quote

The original code provided by Thomas compiles in 32 bits and in 64 bits without /CHECK so FTN95 can be used to investigate any limitations.
Back to top
View user's profile Send private message AIM Address
John-Silver



Joined: 30 Jul 2013
Posts: 1472
Location: Aerospace Valley

PostPosted: Sat Feb 13, 2021 2:04 am    Post subject: Reply with quote

Paul, what was the reason for the failure ?
_________________
''Computers (HAL and MARVIN excepted) are incredibly rigid. They question nothing. Especially input data.Human beings are incredibly trusting of computers and don't check input data. Together cocking up even the simplest calculation ... Smile "
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    forums.silverfrost.com Forum Index -> 64-bit All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group