> why has a CommaExp containing an ErrorExp not been reduced to an ErrorExp?

Of course it has been. `while (e->op == TOKcomma)` is necessary just for the latter `STCtemp` check.

> Why does a STCtemp variable not return 1 from isLvalue? Can those be fixed instead, I assume they'll show up in other places.

STCtemp is a hack for inlining and lvalue-ness check in glue layer. Maybe we could remove the hack, but I have currently no time to do it.