http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60144
--- Comment #2 from Sergio Losilla <loximann at gmail dot com> --- (In reply to kargl from comment #1) > How is the compiler suppose to know that the programmer may have > meant > > program ifelif > if (.TRUE.) i = 42 > if (.FALSE.) then > j = 42 > end if > end program As far as I know, there are two possible statements starting with if: if (<expr>) then if (<expr>) <statement> The compiler should recognize that *something* is missing, be it either a then or a statement. > As for the message that you think makes no sense, I suspect > the parse has identified (.TRUE.) as a malformed expression. Well, the message objectively makes no sense because there is no assignment whatsoever. At the very least, the message is confusing.