<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/106917>106917</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[HLSL] inout/out ABI for array parameters
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
llvm-beanz
</td>
</tr>
</table>
<pre>
Basic `inout` and `out` parameter support is landed, however it doesn't currently work with `ArrayParameterType` arguments.
The following code should compile successfully:
```hlsl
void increment(inout int Arr[10]) {
for (int I = 0; I < 10; I++)
Arr[0] += 2;
}
export int call() {
int A[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
increment(A);
return A[0];
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxUUsuO4yAQ_Jr2pTURj_h18MGeKNqR5rDSzg8QuxOzS8ACnGz261eQRDMjoTJgqKpuSoWgT5aog3KAcleoNc7Od8Zczi8HUvZfcXDTrRtU0CNCxbR1a4SKobJTWj9Wi_LqTJE8hnVZnI-oAxplJ5pAvOLsrnQhjzri5ChYEHXEcfWebDQ3vDr_B686zomx917dfj75Pm4LZTl_Ws9kY9gA64H1HzPh0RnjrtqecHQTYZjdaiYc3XnRhjCs40ghHFdjbiDTHajYfcwmGGD9xekJtR09JWYQTS4OtY3Yew_lwBmUOxAtQj0A6xGPzmM-F_ENQe6QgRzy9BX5fQ5iyKPNF_DBlIgw7csdCpCJDerdvRT6e2-YjTgqY0A0XyWzm6eXrAn1gCx1lScQCWSCbYIyQZWgTtAkSGS7uyh-q7dPNh_7nuLqbZbKVX_1-OxbMXVyamWrCup4LUrBZVWVxdwdquogqJJlQyNjjI1H1vBmW_KWSHIxFroTTGxZyzhvGGflZsuVbGqaeHmshKwlbBmdlTablLyN86dCh7BSx1nV8row6kAm5JAKYemK-S8IkTL7jOt6CrBlRocYPmmijian-8f7r_fUwnuCxT49dT-85TdVKXOfIQ7F6k03x7iElByxB7E_6Tivh83oziD2if3xeVm8-01jYsyeAoj9w_SlE_8DAAD__4Xw_Zk">