Aaaarggh - this sort of thing does my head in. After a couple of genuinely minor changes to my code (change of location of a couple of variable declarations), and a build, and even a last resort rebuild, I was suddenly being told (three times) at link time:
WARNING - Module component SELECT_GRAPHICS_OBJECT@ has been defined differently here than previously in object file blah
I have been rebuilding this code many times a day for about three months now, and I never got this warning until today. Needless to say, none of the minor changes I made most recently involved any lines using select_graphics_object@ 😃 (although I did comment out one such line yesterday).
(I have been getting this warning - WARNING the following symbols are missing: MODULE CLRWIN - every time I do a /CHECKMATE or a /DEBUG, but not a /RELEASE, build every time, but I've given up mentioning this. Until now).
So I searched for every use of select_graphics_object@ in my code. Every single use is of the form 'call select_graphics_object@ (h)'. Nothing defined differently to anything else, as it were.
So I hit the help file - where I found that select_graphics_object@ is in fact an integer function and not a subroutine. Apparently. At this point, a faint bell started to ring, and I hit the forum, with a vague recollection of having tripped over this before. If so, it must have been a long time ago, because I can't find a forum post on the subject. There are not many posts that mention select_graphics_object@, but use as both a subroutine and an integer function is in evidence (sometimes within the same thread :roll: ).
So I changed all my 'call's to 'i ='s and lo, SLINK is happy again.
I deduce that select_graphics_object@ has probably changed its status from a subroutine to an integer function at some point.
But what I really want to know is, given that my code had no less than 11 different lines that use select_graphics_object@ as a subroutine, why have I been getting away with it several times a day for three months, and what did I do that suddenly alerted the linker to something that - to be fair - should be blatantly obvious?