I upgraded to 6.6B and I was pleasantly surprised how it caught few errors that were left unnoticed in 6.6A (misordered names in USE,ONLY lists and a few assumed-shape/assumed-array/scalar argument mismatches). However, apparently parsing of !DEC$IF parsing was changed as well. The following program:
!DEC$DEFINE _ENGLISH PROGRAM Test !DEC$IF DEFINED (_ENGLISH) WRITE(*,*) !DEC$ELSE CALL ErrHandler('a' // & STRING(isiftse(i),9)'b' STRING(isifrasab,9),2) !DEC$ENDIF END PROGRAM Test
D:UsersDujaCodeTestTest.f90(9) : Error: Unbalanced parentheses
Not all syntax errors in a code that is supposedly not compiled will trigger such errors -- mostly, it is sensitive to some combinations with line continuations. Now, I recall Steve said once that !DEC$IF is not semantically identical to #ifdef...#endif. Should I file a bug report or is this as it should be? (But if it is, I can't figure out the rules?).