I reckon I've been doing this for long enough, at over 30 years, but forgive me if I've got something terribly wrong!
For conditional compilation "#if %equate = 0" is meant to work the same as "#if not %equate", isn't it? According to the manual it does, and according to what one would expect from other languages.
Well, it may be that you get the correct logic blocks executing, so the program runs correctly, but the output sure as anything is different! For example, I have some DLLs which I can compile with a %testing equate set so they can be stand-alone executables for debugging. That's been fine, for years. But just now I was surprised to see a load of string literals in the output binary code of the release DLL version which occur ONLY in the stand-alone debug sections of the source. Sure enough, if I recompiled with "#if %testing = 0" rather than "#if not %testing", I got the correct output, and the executable was over 2k smaller in a 94k program.
Now that shouldn't be happening, should it?
The terrible thing about this is that I have circulated what should be "clean" release versions which contain visible data strings of security keys from the other sections ...
It's the same whether in PBWin8 or PBWin9. I haven't checked PBCC yet, but I bet it's the same as PBWin.
Any comments?
Andrew Parker.
For conditional compilation "#if %equate = 0" is meant to work the same as "#if not %equate", isn't it? According to the manual it does, and according to what one would expect from other languages.
Well, it may be that you get the correct logic blocks executing, so the program runs correctly, but the output sure as anything is different! For example, I have some DLLs which I can compile with a %testing equate set so they can be stand-alone executables for debugging. That's been fine, for years. But just now I was surprised to see a load of string literals in the output binary code of the release DLL version which occur ONLY in the stand-alone debug sections of the source. Sure enough, if I recompiled with "#if %testing = 0" rather than "#if not %testing", I got the correct output, and the executable was over 2k smaller in a 94k program.
Now that shouldn't be happening, should it?
The terrible thing about this is that I have circulated what should be "clean" release versions which contain visible data strings of security keys from the other sections ...
It's the same whether in PBWin8 or PBWin9. I haven't checked PBCC yet, but I bet it's the same as PBWin.
Any comments?
Andrew Parker.
Comment