[PATCH] D72811: [WIP][OPENMP5.0] allow lvalue for motion clause

Chi Chun Chen via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 24 13:04:35 PST 2020


cchen marked an inline comment as done.
cchen added a comment.

In D72811#1837392 <https://reviews.llvm.org/D72811#1837392>, @jdoerfert wrote:

> Thanks for working on this! While you are at it, `*this` is probably one of the most important ones to test and support.


Can anyone tell me how to get `ValueDecl` from `CXXThisExpr`? I cannot find any method return decl in https://clang.llvm.org/doxygen/classclang_1_1CXXThisExpr.html#details.
Thanks!



================
Comment at: clang/lib/Sema/SemaOpenMP.cpp:15235
+  bool VisitUnaryOperator(UnaryOperator *UO) {
+    DerefCnt++;
+    CurComponents.emplace_back(UO, nullptr);
----------------
ABataev wrote:
> Need a check that this is a dereference op. Also, maybe allow using an addr_of operation?
is addr_of operation allowed in lvalue?

In this code:
```
int arr[50];

#pragma omp target map(&arr)
  {}
```
We now reject `&arr` since `RE->IgnoreParenImpCasts()->isLValue()` return false. (RE is the expr of `&arr`)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D72811/new/

https://reviews.llvm.org/D72811





More information about the cfe-commits mailing list