<div dir="ltr">I am getting:<div>$ cat t1.cpp#include <iostream></div>int main() {<br>  int *a[1024];<br><br>#pragma omp target enter data map(alloc: a[0:1024])<br>for (int i=0;i<1024;i++)<br>     #pragma omp target enter data map(to: a[i][0:1])<br><br>#pragma omp target map(alloc: a)<br>{<br><br>}<br><br><br><div><div>}</div><div>t1.cpp:8:27: error: '#pragma omp target enter data' cannot be an immediate substatement<br>        #pragma omp target enter data map(to: a[i][0:1])<br>                                 ^<br>1 error generated.<br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Nov 8, 2019 at 7:56 PM Rokos, Georgios <<a href="mailto:georgios.rokos@intel.com">georgios.rokos@intel.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US">
<div class="gmail-m_-5527099983875198372WordSection1">
<p class="MsoNormal">You have to “enter data” for each element of the array. Something like:<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">#pragma omp target enter data map(alloc: a[0:1024])<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">for(int i=0; i<1024; i++)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">  #pragma omp target enter data map(to: a[i][0:1])<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">#pragma omp target map(alloc: a)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">{<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">...<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">}<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">for(int i=0; i<1024; i++)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">  #pragma omp target exit data map(from: a[i][0:1])<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">#pragma omp target exit data map(alloc: a[0:1024])<u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">George<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><a name="m_-5527099983875198372______replyseparator"></a><b>From:</b> Openmp-dev <<a href="mailto:openmp-dev-bounces@lists.llvm.org" target="_blank">openmp-dev-bounces@lists.llvm.org</a>>
<b>On Behalf Of </b>Itaru Kitayama via Openmp-dev<br>
<b>Sent:</b> Thursday, 7 November, 2019 21:01<br>
<b>To:</b> openmp-dev <<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>><br>
<b>Subject:</b> [Openmp-dev] How do I map an array of pointers using array notation<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">Hi,<u></u><u></u></p>
<div>
<p class="MsoNormal">As this<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">int *a[1024];<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">#pragma omp target parallel for map(tofrom: a[0:1024][0:1])<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">does not compile. How do I move data to the device properly?<u></u><u></u></p>
</div>
</div>
</div>
</div>

</blockquote></div>