getting help from RESOLVE info?

III rhodesii at idaho.uucp
Sun Jun 9 07:52:45 AEST 1991


After finally decyphering what to do with the message
"see errors under RESOLVE"  (or something to that effect)
I know I can use the loadmap to figure out what routines 
have Arg. type mismatches, what I want to know is, 
"Is there any way to tell from the info. in the loadmap 
which arguments are actually causing the grief?"
I usually am already suspicious that I have Arg.
type mismatches before turning one the -qextchk option
in the first place. Additionally, I am usually already
suspicious of what routines aren't interfacing correctly
(it always seems to be the one with 200+ arguments. :-)

For example:

      program foo
      integer i1,i2,i3
      real x1,x2,x3
      call sub1 (i1,x1,i2,x2,i3,x3)
      stop
      end

      subroutine sub1(x1,i1,x2,i2,x3,i3)
      integer i1,i2,i3
      real x1,x2,x3
      retur
      end

% xlf -g -qextchk  -qattr=full -qxref=full -bloadmap:loadmap foo.f

** foo   === End of Compilation 1 ===
** sub1   === End of Compilation 2 ===
1501-510  Compilation successful for file foo.f.
0706-316 Error: Type mismatches detected. References dumped to load map.

produces a loadmap that looks like:
*** foo.f ***

(ld):
halt 4
(ld):
setopt noexecut 
(ld):
insert /tmp/F8Q6sLeF0 
(ld):
insert /tmp/F8Q6sLeF1 
(ld):
resolve
0706-189 Type mismatches were detected while resolving symbols.
	 Check source files for inconsistent declarations.
	 The following symbols will be in error if they remain unresolved:
	 Symbol                           Source File #1    Source File #2
.sub1                            foo.f        from /tmp/F8Q6sLeF0           foo.f        from /tmp/F8Q6sLeF1          
0706-196 RESOLVE:  Kept 18 of 20 symbols.
(ld):
comprld
0706-180 COMPRLD: Kept 14 of 14 relocation entries.
(ld):
mismatch
0706-316 Error: Type mismatches detected. References dumped to load map.

0706-293 Name			Address  Type Stg Information Filename     Hash Value	 Imp/Exp/Ent

      [2].sub1          00000000  ER  PR              foo.f        from /tmp/F8Q6sLeF0            

          [4]<.main>            0000002C  AL.26(      [2].sub1)                 foo.f        from /tmp/F8Q6sLeF0          
     [15].sub1          000000B8  LD           [14]<.sub1> foo.f        from /tmp/F8Q6sLeF1            

         [17]sub1               0000010C  AL4(     [15].sub1)                   foo.f        from /tmp/F8Q6sLeF1          
0706-120 The return code is 8

So is there any way to tell from this what's going on other than the fact
that main and sub1 have an argument type mismatch? If this is all that
it can tell me then it is only semi-helpful. What do the number in the [] mean?
Is there some reason it just can't come out and tell me exactly 
which arguments don't agree? I don't have to know their symbolic dummy 
or actual names -just a relative position in the calling sequence would suffice. 
Is there perhaps an IBM publication that discusses this in detail?

tnx
-joel
-- 
-----------
Joel Rhodes                 *   rhodesii at othello.studsvik.com
Studsvik of America,INC.    *   uunet!idaho!othello!rhodesii
Nuclear Code Development    *   Idaho Falls,ID. USA  ph 208-522-8443



More information about the Comp.unix.aix mailing list