<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/138355>138355</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            automatic structure layout randomization for all-function-pointer structs misses composite structs
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          kees
      </td>
    </tr>
</table>

<pre>
    With `-frandomize-layout-seed-file=...`, this structure will correctly automatically be randomized as if it was marked with the `randomize_layout` attribute:

```c
struct inner {
  int (a*)(int);
 int (b*)(void);
};
```

However, this will not:

```c
struct compositve {
  struct inner inner;
  void (c*)(int);
};
```

The checking needs to examine composite structures as well.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx8kt2umzAMx58m3FigNHy0XHDRs6NqDzBpl1NITPFOSKrEtOuefoJ2nE37kCKI-GP7Z_uvU6KzR-xE_SLq10zPPIbYvSGmrA_23n0mHkE0Mh-i9jZM9B1zp-9h5jwh2nwgh6J8LYpCNFKoD8AjJUgcZ8NzRLiRc2BCjGjY3UHPHCbNZLRzd-gRtqwWdAIagBhuOsGk4xtauC3lecQFYfv1ywNANBI0c6R-ZhTlUcj1NPJxjJDHBweQ9xhB7F-EPAKQZxDqoIU6CtUKdSDPy6Vc5afab-o1kN1ksX99Xn6WeVT9GG54xbgNYG3bB_4vlgnTJSTiK25svwGvzycWLBgLmPkr9r-4Po0IZkTzRv4MHtEm4AD4TU_kcQPA94WlZQ03dK7IbFfatmx1ht1uXzVK1VWzy8ZuGKpBoaxqbdtKtpUyOyx7PMimsU2NQ0adkqqWtVRKlftqV-hK6mrX2rqtGtPYUlQSJ02ucO46FSGeM0ppxm5XHsq6zpzu0aXVkkp5vMGqCqUWh8ZuCcr7-ZxEJR0lTu9pmNhht5nsFx8-LLPZTTMFD0OIoJ3Lh9mb5UN-CeQZ4zMuwUQpYfpjTimbo-tG5ktaFqxOQp3OxOPcFyZMQp0WoOcrv8TwFQ0LdVrbSEKdnn1eO_UjAAD__65fHRs">