diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-11-05 01:30:19 +0000 | 
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-11-05 01:30:19 +0000 | 
| commit | edcc92a4c10ad69317d80f432905260fefd386a0 (patch) | |
| tree | 25b6a7d80bf63145b7676a23884874b5e9ec0187 /clang/lib | |
| parent | ad6b54983d1387583b4c9c7f740a9c371a134ca0 (diff) | |
| download | bcm5719-llvm-edcc92a4c10ad69317d80f432905260fefd386a0.tar.gz bcm5719-llvm-edcc92a4c10ad69317d80f432905260fefd386a0.zip  | |
[modules] Don't merge an anonymous enum definition into a named enum definition.
llvm-svn: 252125
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 8 | 
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index b14109a6d79..6297efb73a2 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -13900,10 +13900,12 @@ Sema::SkipBodyInfo Sema::shouldSkipAnonEnumBody(Scope *S, IdentifierInfo *II,    NamedDecl *PrevDecl = LookupSingleName(S, II, IILoc, LookupOrdinaryName,                                           ForRedeclaration);    auto *PrevECD = dyn_cast_or_null<EnumConstantDecl>(PrevDecl); +  if (!PrevECD) +    return SkipBodyInfo(); + +  EnumDecl *PrevED = cast<EnumDecl>(PrevECD->getDeclContext());    NamedDecl *Hidden; -  if (PrevECD && -      !hasVisibleDefinition(cast<NamedDecl>(PrevECD->getDeclContext()), -                            &Hidden)) { +  if (!PrevED->getDeclName() && !hasVisibleDefinition(PrevED, &Hidden)) {      SkipBodyInfo Skip;      Skip.Previous = Hidden;      return Skip;  | 

