rhodesii@idaho.uucp (III) (06/09/91)
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@othello.studsvik.com Studsvik of America,INC. * uunet!idaho!othello!rhodesii Nuclear Code Development * Idaho Falls,ID. USA ph 208-522-8443