Hello,

I have two detailed questions regarding to the SDCC.y,

1. At line 468 - 470
> assignment_expr
>   : conditional_expr
>   | cast_expr assignment_operator assignment_expr
The above rule allows the following code is accepted:
> long mul2(long a, long b)
> {
>        ++a = b;
>        return a * b;
> }
Which is illegal in GCC

2. the selection_statement at line 1825 - 1857, make the following code legal,
> int main(void)
> {
>        int a = 2, b = 4;
>        printf("%d %d\n", a, b);
>        switch (a)
>                b = 2;
>        printf("%d %d\n", a, b);
>        return 0;
> }
but this is also accepted by gcc while b = 2 is always executed.

Are the above two forms of C code reasonable?

Ben