Hum, perhaps. However, it does seem like we ought be
be able to do *something* in the extremely common case of
a plain "int" variable.
No, it's the "plain 'int' variable" that is the source of the problem!
Consider:
void
sub1 (int n)
{
int arr[n];
n = 10;
.... sizeof (arr) ...
You want the sizeof to use the value of N on entry, so you need the
SAVE_EXPR.