Allow taking the address of data members, resulting in a member pointer.
Pointers to functions don't work yet, and pointers to overloaded functions even less. Also, far too much illegal code is accepted.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63655 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h
index 0969cd0..6360dcc 100644
--- a/lib/Sema/Sema.h
+++ b/lib/Sema/Sema.h
@@ -1030,17 +1030,20 @@
virtual OwningExprResult ActOnIdentifierExpr(Scope *S, SourceLocation Loc,
IdentifierInfo &II,
bool HasTrailingLParen,
- const CXXScopeSpec *SS = 0);
+ const CXXScopeSpec *SS = 0,
+ bool isAddressOfOperand = false);
virtual OwningExprResult ActOnCXXOperatorFunctionIdExpr(Scope *S,
SourceLocation OperatorLoc,
OverloadedOperatorKind Op,
bool HasTrailingLParen,
- const CXXScopeSpec &SS);
+ const CXXScopeSpec &SS,
+ bool isAddressOfOperand);
virtual OwningExprResult ActOnCXXConversionFunctionExpr(Scope *S,
SourceLocation OperatorLoc,
TypeTy *Ty,
bool HasTrailingLParen,
- const CXXScopeSpec &SS);
+ const CXXScopeSpec &SS,
+ bool isAddressOfOperand);
DeclRefExpr *BuildDeclRefExpr(NamedDecl *D, QualType Ty, SourceLocation Loc,
bool TypeDependent, bool ValueDependent,
const CXXScopeSpec *SS = 0);
@@ -1053,7 +1056,8 @@
DeclarationName Name,
bool HasTrailingLParen,
const CXXScopeSpec *SS,
- bool ForceResolution = false);
+ bool ForceResolution = false,
+ bool isAddressOfOperand = false);
virtual OwningExprResult ActOnPredefinedExpr(SourceLocation Loc,
tok::TokenKind Kind);