Register enumconstantdecls in their appropriate scope and check for conflicts.
This emits these diagnostics:

t.c:4:14: error: redefinition of 'a'
enum foo22 { a, b };
             ^
t.c:3:5: error: previous definition is here
int a;
    ^
t.c:8:17: error: redefinition of enumerator 'b'
enum foo23 { c, b };
                ^
t.c:4:17: error: previous definition is here
enum foo22 { a, b };
                ^
4 diagnostics generated.


for:

int a;
enum foo22 { a, b };
enum foo23 { c, b };

llvm-svn: 39302
4 files changed
tree: c762fb6d2abfb6ed3df00173c0ff99765302b896
  1. clang/
  2. llvm/
  3. stacker/