diff options
author | Francois Pichet <pichet2000@gmail.com> | 2010-11-21 06:08:52 +0000 |
---|---|---|
committer | Francois Pichet <pichet2000@gmail.com> | 2010-11-21 06:08:52 +0000 |
commit | 87c2e121cf0522fc266efe2922b58091cd2e0182 (patch) | |
tree | 0def875d14aa76bd01d54b4ebb9a41db1007c6a7 /lib/AST/ExprClassification.cpp | |
parent | a4c2475961184a4bad6f6f087eeb1038bb784cad (diff) |
Major anonymous union/struct redesign.
A new AST node is introduced:
def IndirectField : DDecl<Value>;
IndirectFields are injected into the anonymous's parent scope and chain back to
the original field. Name lookup for anonymous entities now result in an
IndirectFieldDecl instead of a FieldDecl.
There is no functionality change, the code generated should be the same.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119919 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/ExprClassification.cpp')
-rw-r--r-- | lib/AST/ExprClassification.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/AST/ExprClassification.cpp b/lib/AST/ExprClassification.cpp index ba5970038d..bf26bd1f93 100644 --- a/lib/AST/ExprClassification.cpp +++ b/lib/AST/ExprClassification.cpp @@ -333,6 +333,7 @@ static Cl::Kinds ClassifyDecl(ASTContext &Ctx, const Decl *D) { islvalue = NTTParm->getType()->isReferenceType(); else islvalue = isa<VarDecl>(D) || isa<FieldDecl>(D) || + isa<IndirectFieldDecl>(D) || (Ctx.getLangOptions().CPlusPlus && (isa<FunctionDecl>(D) || isa<FunctionTemplateDecl>(D))); |