<decompilertest>
  <!--
     Functions manipulating explicit pointer-to-array data-types.
  -->
<binaryimage arch="x86:LE:64:default:gcc">
<bytechunk space="ram" offset="0x10123e" readonly="true">
                            f30f
1efa554889e54883ec1048897df88975
f4488b45f84883c0404889c7e846ffff
ff488b45f84883e8804889c7e87dffff
ff837df40a7508488145f80002000048
8b45f84889c7e81cffffff488b45f848
89c7e857ffffff488b45f8c9c3
</bytechunk>
<bytechunk space="ram" offset="0x10129d" readonly="true">
                          f30f1e
fa554889e54883ec70897d9c64488b04
2528000000488945f831c0488d45b048
8905522d0000488d45a44889c7e8b7fe
ffff488d45a84883c0044889c7e8b6fe
ffff488d3d372d0000e89bfeffff9048
8b45f86448330425280000007405e86d
fdffffc9c3
</bytechunk>
<symbol space="ram" offset="0x10123e" name="ptrToArray"/>
<symbol space="ram" offset="0x10129d" name="passPtrToArray"/>
</binaryimage>
<script>
  <com>map addr r0x104018 int4 (*paiGlob)[16]</com>
  <com>map addr r0x104020 float4 globarray[1]</com>
  <com>map fun r0x101189 floatarray</com>
  <com>map fun r0x101198 intarray</com>
  <com>map fun r0x1011a7 display</com>
  <com>map fun r0x1011ee displayLow</com>
  <com>parse line extern void floatarray(float4 (*a)[1]);</com>
  <com>parse line extern void intarray(int4 (*a)[1]);</com>
  <com>parse line extern void display(int4 (*ptr)[16]);</com>
  <com>parse line extern void displayLow(int4 *ptr);</com>
  <com>parse line struct mystruct { int4 a; int4 b[1]; };</com>
  <com>lo fu ptrToArray</com>
  <com>dec</com>
  <com>print C</com>
  <com>lo fu passPtrToArray</com>
  <com>map addr s0xffffffffffffff9c float4 a[1]</com>
  <com>map addr s0xffffffffffffffa0 mystruct myval</com> 
  <com>map addr s0xffffffffffffffa8 int4 c[16]</com>
  <com>dec</com>
  <com>print C</com>
  <com>quit</com>
</script>
<stringmatch name="Pointer to array #1" min="1" max="1">display\(param_1 \+ 1\);</stringmatch>
<stringmatch name="Pointer to array #2" min="1" max="1">displayLow\(param_1\[2\]\);</stringmatch>
<stringmatch name="Pointer to array #3" min="1" max="1">paiStack_10 = param_1 \+ 8;</stringmatch>
<stringmatch name="Pointer to array #4" min="1" max="1">display\(paiStack_10\);</stringmatch>
<stringmatch name="Pointer to array #5" min="1" max="1">displayLow\(\*paiStack_10\);</stringmatch>
<stringmatch name="Pointer to array #6" min="1" max="1">return paiStack_10;</stringmatch>
<stringmatch name="Pointer to array #7" min="1" max="1">paiGlob = &amp;c;</stringmatch>
<stringmatch name="Pointer to array #8" min="1" max="1">floatarray\(&amp;a\);</stringmatch>
<stringmatch name="Pointer to array #9" min="1" max="1">intarray\(&amp;myval\.b\);</stringmatch>
<stringmatch name="Pointer to array #10" min="1" max="1">floatarray\(&amp;globarray\);</stringmatch>
</decompilertest>
