<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/131358>131358</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Cleanup GCCAsmStmt children iterations
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang:frontend,
code-cleanup
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
cor3ntin
</td>
</tr>
</table>
<pre>
`GCCAsmStmt` stores its arguments in separately allocated array
https://github.com/llvm/llvm-project/blob/b936ef18559aac8d982229040158c65843d43eb2/clang/include/clang/AST/Stmt.h#L3305-L3311
And is not considered to have any children.
Instead, we should store all these statements (contiguously) within the `Exprs` of `ASmStmt` and make sure that's returned from `children()`
https://github.com/llvm/llvm-project/blob/b936ef18559aac8d982229040158c65843d43eb2/clang/include/clang/AST/Stmt.h#L3160
However, we should also make sure that the order of the children - and therefore the order of elements
in Expr makes sense,
ie `Template, OutputConstraint0, OutputExpr0, ... OutputConstraintN, OutputExprN, InputConstraint0, InputExpr0, ... InputConstraintN, InputExprN, Label0, ...`
Constructors, Getter, Setters, etc of GCCAsmStmt needs to be adapted to understand this order
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMlM2SozYQx59GXFRDCQkwHDgQb7zZqqnkMPsCArWNElmi1K2Z-O1TgnjGs3vKLSe5W__--rmFRrQXDzCw5hfWfCl0oiXEYQ5RebK-mIK5DawVX4_HEa8vdCXWCo4UIiC3hFzHS7qCJ-TWc4RVR03gblw7F2ZNYLiOUd-YGJkYF6IVmRqZPDF5ulha0lTO4crkybnX-_G0xvAnzMTkaXJhykevWjhXXdP0Ws-d6TspZS9qUTXd3DZdrUytYJJMnman_YXJk_WzSwYePOPLdyZPeYRyYVI9KyWap2elqmpvbvSGW-Q-EJ-DR2sgguEU-KJfgWt_4_NinYngyz3gm0cCbZg88jfguITkzI4mT89pAQSOpAl2QEx2c_BkLykkdDcme_5mabE-Szlrxa9_rxEz33DO5vjyDlx7w6_6L-CYInBaNDF5QB6BUvRg-DmGaw65d8hkx2TPWvF_5F7d22Ji_C28wSvEzwy1w_DDuBuiEA3EDCcb91H500aHFohwDpv8QQluh8_EaD3PgLfEyBE8Qi6792G3P-A7XFenafP_kWhNdAweKWrrSXw4c5rNLMvyJ93vn3Wb-c3_nGrzfcr0o2wL_dBt5rOewN0j2APIPSzNFCLm669AtHN92X5tTqA5Q_l4zNwDGMxLPgHXRq-0r3zyBiLSDtbizvO9FhNjYQZletXrAobqUFf9QXSHuliGqj6DlPO5mw6NrmUtunNVtdPUVn1T15Mp7CCFbISq6qqtD01d9h3UyoBuOqXkPElWC7hq68q8k2WIl8IiJhgqVammK1wmgNv3Ssp9x9R4jsETeMOkZPKYL4KBp9mB9mnNzuZLEYdtyad0QVYLZ5HwowRZcjAc94BHQO9rZgmiJhs8Fim64T8_qW0IZPL07xyvg_wnAAD__5n-xSA">