aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancois Pichet <pichet2000@gmail.com>2010-12-17 02:00:06 +0000
committerFrancois Pichet <pichet2000@gmail.com>2010-12-17 02:00:06 +0000
commitecea19f00a911c50dc20fe94e548f488ded47adb (patch)
tree4ef0f78a9f42254e63a1241f8bccbe6264cd42e5
parent0de57863819294d338cf5e81d8e1d67f315feb94 (diff)
Microsoft's __uuidof operator returns a lvalue.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122021 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/AST/ExprClassification.cpp2
-rw-r--r--test/Parser/MicrosoftExtensions.c2
2 files changed, 3 insertions, 1 deletions
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 */