diff options
Diffstat (limited to 'lib/Sema/SemaType.cpp')
-rw-r--r-- | lib/Sema/SemaType.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/Sema/SemaType.cpp b/lib/Sema/SemaType.cpp index ceec5f226f..7911e76d44 100644 --- a/lib/Sema/SemaType.cpp +++ b/lib/Sema/SemaType.cpp @@ -930,7 +930,10 @@ QualType Sema::GetTypeForDeclarator(Declarator &D, Scope *S, if (!D.isInvalidType() && D.getDeclSpec().isTypeSpecOwned()) { TagDecl* Owned = cast<TagDecl>((Decl *)D.getDeclSpec().getTypeRep()); - Owned->setDefinedInDeclarator(Owned->isDefinition()); + // Owned is embedded if it was defined here, or if it is the + // very first (i.e., canonical) declaration of this tag type. + Owned->setEmbeddedInDeclarator(Owned->isDefinition() || + Owned->isCanonicalDecl()); if (OwnedDecl) *OwnedDecl = Owned; } break; |