In reply to MICRO_91:
As you have quoted, the code you have written is illegal, but tools do not always catch this kind of error in order to make debugging easier. But the LRM certainly does not prescribe the ordering in this case. Any code you could write should not depend on the order of execution. It is going to be implementation dependent, and could change in any version.