rui314 / 8cc

A Small C Compiler

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Missing errors

rdebath opened this issue · comments

Minor one for now, this should generate a "duplicate case label" or similar error.

int
func(int n)
{
    switch (n) {
    case 2 + 2:
        return 1;
    case 4:
        return 2;
    }
    return 0;
}

Yup. Case labels are actually ranges because of GNU extension https://gcc.gnu.org/onlinedocs/gcc/Case-Ranges.html, we need to also warn on something like 3 ... 7 and 5 ... 10.

Fixed in 1a4f625.