Closed edwardhartnett closed 1 year ago
It's set within wrdlen.F, so if you had used '*.[fF]'
instead of '*.f'
then it would have showed up.
I think its complaining about the call to iupm in wrdlen IA = IUPM('A',8) Arg1 is defined as char*8 in iupm.
@edwardhartnett @jbathegit see previous comment
I'm taking a look now. I'm able to run under GNU with the address sanitizer turned (on per Ed's instructions in #244), so I can reproduce the error.
@jbathegit By using IA = IUPM('A ',8) in wrdlen fixes all but 19 of the problems. However, most of the remaining problems are also in iupm.
I'm confused. IA = IUPM('A ',8)
is what the wrdlen code contains already, so how does using that "fix" anything?
FWIW, I just defined a new character*8 variable ca8, set ca8(1:1) to 'A', then passed ca8(1:1) into iupm and that fixed the problem. But I do see other address sanitizer errors now popping up in test_3_IN, test_5_IN, test_IN_7, test_OUT_4, test_OUT_5, test_debufr_1, test_debufr_2, test_sinv, and test_readmp. So will need to look at those one at a time...
github truncated what i sent before. it was A followed by 7 blanks. that also works.
the remaining problems are gnarlier.
Yeah, I'm looking at the test_3_IN one now, which is crapping out for some reason at the SUBSET = TAG(INODE(LUN))
line in readns...
inode(lun)=0 !
yeah, I saw that too, and I think it's because there's never been a prior call to readmg, and therefore never a prior call to cktaba. The test_IN_3 code calls openbf and then does an immediate call to ireadns.
The idea behind ireadns was that it automatically combines the functionality of readmg and readsb, but if readmg hasn't already been called somewhere then we end up with inode(lun) = 0 on that line. So seems like a logic bug.
probably want to set it to blank
yeah, I guess, but only if inode(lun) = 0. I don't have a better idea off the top of my head. I'll give that a try.
OK, it got past that point, but test_3_IN is still failing now at line 89 of icbfms. Another iupm issue, so I'll try fixing that the same way I fixed wrdlen previously.
bin there done that. next one's a head scratcher.
Going forward, how about we divide and conquer here, and also let's switch this conversation over to #244 since we've apparently resolved this particular memory problem in iupm?
ok i'll work from the bottom up
When I run intest1.F90 with address santizer I get errors, for all three versions of the test:
So, what is happening here?
The problem code is here:
So looks like this is being caused by the common block.
How come I can't find any place where NBITW is set?