C standard page 81 footnote 85:[QUOTE]\nA cast does not yield an lvalue.[/QUOTE]\nOf course I would prefer if the standard would state that rule normatively\ninstead of advisorily, but the committee's intention is clear.\n\nPage 91 section 6.5.16 applies to all kinds of assignment operators:[QUOTE]\nConstraints\nAn assignment operator shall have a modifiable lvalue as its left operand.[/QUOTE]\n\nConforming C implementations are required to issue at least one diagnostic\nwhen given a translation unit containing the following:\nULONG x = 8; // OK\n(ULONG)x |= 3; // violation of a constraint\n\nOK, sure the DDK's C compiler isn't a real C compiler. But why ignore\nsomething like this? For example suppose the declaration of x were actually\na ULONG_PTR and just happened by accident to map onto a ULONG, while the\ncast is still a ULONG? As a matter of fact that's exactly the situation\nwhere I saw it. Why not issue a warning?