diff options
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/AST/StmtPrinter.cpp | 9 | ||||
| -rw-r--r-- | clang/lib/Sema/SemaExpr.cpp | 4 | ||||
| -rw-r--r-- | clang/lib/Sema/SemaInit.cpp | 1 |
3 files changed, 5 insertions, 9 deletions
diff --git a/clang/lib/AST/StmtPrinter.cpp b/clang/lib/AST/StmtPrinter.cpp index 7456e8cca9e..14d30d86739 100644 --- a/clang/lib/AST/StmtPrinter.cpp +++ b/clang/lib/AST/StmtPrinter.cpp @@ -757,10 +757,11 @@ void StmtPrinter::VisitCallExpr(CallExpr *Call) { OS << ")"; } void StmtPrinter::VisitMemberExpr(MemberExpr *Node) { - if (!Node->getBase()->isImplicit()) { - PrintExpr(Node->getBase()); - OS << (Node->isArrow() ? "->" : "."); - } + // FIXME: Suppress printing implicit bases (like "this") + PrintExpr(Node->getBase()); + OS << (Node->isArrow() ? "->" : "."); + // FIXME: Suppress printing references to unnamed objects + // representing anonymous unions/structs OS << Node->getMemberDecl()->getNameAsString(); } void StmtPrinter::VisitExtVectorElementExpr(ExtVectorElementExpr *Node) { diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp index 6db6ea19afd..bf04042ef8a 100644 --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/lib/Sema/SemaExpr.cpp @@ -444,7 +444,6 @@ Sema::BuildAnonymousStructUnionMemberReference(SourceLocation Loc, BaseObjectExpr = new DeclRefExpr(BaseObject, BaseObject->getType(), SourceLocation()); - BaseObjectExpr->setImplicit(); ExtraQuals = Context.getCanonicalType(BaseObject->getType()).getCVRQualifiers(); } else if (BaseObjectExpr) { @@ -474,7 +473,6 @@ Sema::BuildAnonymousStructUnionMemberReference(SourceLocation Loc, BaseObjectExpr = new CXXThisExpr(SourceLocation(), MD->getThisType(Context)); BaseObjectIsPointer = true; - BaseObjectExpr->setImplicit(); } } else { return Diag(Loc, diag::err_invalid_member_use_in_static_method) @@ -502,7 +500,6 @@ Sema::BuildAnonymousStructUnionMemberReference(SourceLocation Loc, } Result = new MemberExpr(Result, BaseObjectIsPointer, *FI, OpLoc, MemberType); - Result->setImplicit(); BaseObjectIsPointer = false; ExtraQuals = Context.getCanonicalType(MemberType).getCVRQualifiers(); OpLoc = SourceLocation(); @@ -664,7 +661,6 @@ Sema::ExprResult Sema::ActOnDeclarationNameExpr(Scope *S, SourceLocation Loc, // Build the implicit member access expression. Expr *This = new CXXThisExpr(SourceLocation(), MD->getThisType(Context)); - This->setImplicit(); return new MemberExpr(This, true, cast<NamedDecl>(D), SourceLocation(), MemberType); } diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp index 6a9275fbe8a..031fe27ddf7 100644 --- a/clang/lib/Sema/SemaInit.cpp +++ b/clang/lib/Sema/SemaInit.cpp @@ -90,7 +90,6 @@ void InitListChecker::CheckImplicitInitList(InitListExpr *ParentIList, &InitExprs[0], InitExprs.size(), SourceLocation(), ParentIList->hadDesignators()); - ILE->setImplicit(); ILE->setType(T); // Modify the parent InitListExpr to point to the implicit InitListExpr. |

