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