From: Francois Pichet Date: Fri, 17 Dec 2010 02:00:06 +0000 (+0000) Subject: Microsoft's __uuidof operator returns a lvalue. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ecea19f00a911c50dc20fe94e548f488ded47adb;p=clang Microsoft's __uuidof operator returns a lvalue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122021 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/AST/ExprClassification.cpp b/lib/AST/ExprClassification.cpp index 05d175c135..4cf393d788 100644 --- a/lib/AST/ExprClassification.cpp +++ b/lib/AST/ExprClassification.cpp @@ -303,7 +303,7 @@ static Cl::Kinds ClassifyInternal(ASTContext &Ctx, const Expr *E) { } case Expr::CXXUuidofExprClass: - return Cl::CL_PRValue; + return Cl::CL_LValue; } llvm_unreachable("unhandled expression kind in classification"); diff --git a/test/Parser/MicrosoftExtensions.c b/test/Parser/MicrosoftExtensions.c index d903781368..6c14742278 100644 --- a/test/Parser/MicrosoftExtensions.c +++ b/test/Parser/MicrosoftExtensions.c @@ -77,6 +77,8 @@ void uuidof_test2() C c; // FIXME, this must not compile _uuidof(c); + + &_uuidof(0); } /* Microsoft attribute tests */