LGTM On 24 Feb 2015 11:51, "Reid Kleckner" <[email protected]> wrote:
> Hi rsmith, > > Fixes PR22671. > > http://reviews.llvm.org/D7863 > > Files: > lib/AST/ExprClassification.cpp > lib/Sema/SemaExpr.cpp > test/SemaCXX/MicrosoftExtensions.cpp > > Index: lib/AST/ExprClassification.cpp > =================================================================== > --- lib/AST/ExprClassification.cpp > +++ lib/AST/ExprClassification.cpp > @@ -418,9 +418,10 @@ > islvalue = NTTParm->getType()->isReferenceType(); > else > islvalue = isa<VarDecl>(D) || isa<FieldDecl>(D) || > - isa<IndirectFieldDecl>(D) || > - (Ctx.getLangOpts().CPlusPlus && > - (isa<FunctionDecl>(D) || isa<FunctionTemplateDecl>(D))); > + isa<IndirectFieldDecl>(D) || > + (Ctx.getLangOpts().CPlusPlus && > + (isa<FunctionDecl>(D) || isa<MSPropertyDecl>(D) || > + isa<FunctionTemplateDecl>(D))); > > return islvalue ? Cl::CL_LValue : Cl::CL_PRValue; > } > Index: lib/Sema/SemaExpr.cpp > =================================================================== > --- lib/Sema/SemaExpr.cpp > +++ lib/Sema/SemaExpr.cpp > @@ -9352,6 +9352,8 @@ > !getLangOpts().CPlusPlus) { > AddressOfError = AO_Register_Variable; > } > + } else if (isa<MSPropertyDecl>(dcl)) { > + AddressOfError = AO_Property_Expansion; > } else if (isa<FunctionTemplateDecl>(dcl)) { > return Context.OverloadTy; > } else if (isa<FieldDecl>(dcl) || isa<IndirectFieldDecl>(dcl)) { > Index: test/SemaCXX/MicrosoftExtensions.cpp > =================================================================== > --- test/SemaCXX/MicrosoftExtensions.cpp > +++ test/SemaCXX/MicrosoftExtensions.cpp > @@ -344,6 +344,18 @@ > __declspec(property(get=GetV)) int : 10; // expected-error {{anonymous > property is not supported}} > }; > > +struct MSPropertyClass { > + int get() { return 42; } > + int __declspec(property(get = get)) n; > +}; > + > +int *f(MSPropertyClass &x) { > + return &x.n; // expected-error {{address of property expression > requested}} > +} > +int MSPropertyClass::*g() { > + return &MSPropertyClass::n; // expected-error {{address of property > expression requested}} > +} > + > namespace rdar14250378 { > class Bar {}; > > EMAIL PREFERENCES > http://reviews.llvm.org/settings/panel/emailpreferences/ >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
