------- Additional Comments From mark_l_hansen at yahoo dot com 2005-06-29 02:08 ------- I did some more research on the bug and found the following:
1) in fortran .TRUE. is 0x1 in hex 2) if(item) statements evaluate to true when the item value is non zero 3) .NOT., .AND., etc either perform bitwise or logical operations depending on what they are operating on. The problem occurs when doing bitwise operations and then doing a logical if check with the -fugly-logint flag. For example: 0xFF .AND. 0x02 = 0x02 i.e. True, but .NOT.(0xFF .AND. 0x02) = 0xFD i.e. also true when the desired result is false. I know the above might all be already understood, but I thought it might help if others are looking into the problems. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21931