Correct source position and factorise common code of -Wempty-body.
Correct source position.
Add mssing '' in diagnostic messages.
Improve error message.
Move type error check into error path.
Remove unnecessary variable shadowing.
Remove pointless assert().

Sponsered by: The Department of Redundancy Department