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

    <tr>
        <th>Summary</th>
        <td>
            const arrays are not ending up in zerofill causing bloat on disk
        </td>
    </tr>

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

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

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

<pre>
    ```
main.c

static int a[5000000];
int b[16384];

int main()
{
        return a[0] + b[0];
}
```

`clang -arch x86_64 main.c -o main`

```
size -m -l main
Segment __PAGEZERO: 4294967296 (zero fill)  (vmaddr 0x0 fileoff 0)
Segment __TEXT: 16384 (vmaddr 0x100000000 fileoff 0)
        Section __text: 28 (addr 0x100003f90 offset 16272)
        Section __unwind_info: 72 (addr 0x100003fac offset 16300)
        total 100
Segment __DATA: 20070400 (vmaddr 0x100004000 fileoff 0)
        Section __bss: 20000000 (addr 0x100004000 zerofill)
        Section __common: 65536 (addr 0x101316d00 zerofill)
        total 20065536
Segment __LINKEDIT: 16384 (vmaddr 0x101328000 fileoff 16384)
total 4315070464
```

```
ls -al main
-rwxrwxr-x@ 1 dmaclach  primarygroup  16584 Aug 23 16:08 main
```

vs

```
main.c

const static int a[5000000];
const int b[16384];

int main()
{
        return a[0] + b[0];
}
```

`clang -arch x86_64 main.c -o main`

```
size -m -l main
Segment __PAGEZERO: 4294967296 (zero fill)  (vmaddr 0x0 fileoff 0)
Segment __TEXT: 20004864 (vmaddr 0x100000000 fileoff 0)
        Section __text: 28 (addr 0x100001290 offset 4752)
        Section __const: 20000000 (addr 0x1000012b0 offset 4784)
        Section __unwind_info: 72 (addr 0x101313fb0 offset 20004784)
        total 20000100
Segment __DATA: 65536 (vmaddr 0x101314000 fileoff 0)
        Section __common: 65536 (addr 0x101314000 zerofill)
        total 65536
Segment __LINKEDIT: 16384 (vmaddr 0x101324000 fileoff 20004864)
total 4315054080
```

```
ls -al main
-rwxrwxr-x@ 1 dmaclach  primarygroup  20005064 Aug 23 16:10 main
```

So by adding the "const" decls my binary now takes up 20MB on disk.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztVV1zmzoQ_TXwsmOPkEDAAw_OOL3Tuf2aJg-dvmQECFstoAwSid1f3xX4Ayd20vb28TIaI7TS2bPa3eNcl9vM42Q3yNIji0aodl6M8_HXWGFVAaq1ILzoKiLD40VLj12NO5wpR1PAWRJODUezg_Vo4tF0Z4kPW9JO2r5rB3AHCx69GuBOfHjxcjc55XtYLGrRrmAmumINm4Tf8RDGWGCmR_fPjkxxjPohYdbArB43D4s3ctVIZH9392nxz_XX688fPbaAkKZhymOacqSa_JCdhkrVNcYGbuGhEWXZAdkQtyx1VQE5xH1EvL3-cuvQhks7OReQ3XPmPF7XjSys0i1CWLmxDoIm7vz0NKtSAnjSSIsOaEzPA_Tto2rLO9VW2uHE9DmOKI44jJwQsdqKGnDf09CWi9vFwIuQmIQYx7Powl-ILjdmBzJexhNqA4S7_N3dn0EodNPo1oHwKGL8BCFgAS8vIIyBoePh2NPo3r398O_18u3F5AWMJtPwxq7Yw4_YIQsidzc8fLmop4u1weqeVuese9y4Mdt4IYEAykZgE2D5w32nGtFtV53u7wEJREhy0a-AMvxA3iSZwJz1_WBeYPJcIwrdGguvK8W473-9-A964fohTPhfl4yAHiUjjKMLijEk8KW2DGg-gZkU_m8ID_Ymq44wQ8RPoA4tih4vC9Ch7U_aM_gV9XlFOy6qz0jsT4XjhNk-0-e0IwpJQl4u8L-iHY5DRPipfATkNfm40ZBvASNT2GN2LTFSOpYOpVDKAvk0W8hVi56g1Y9gxXdpAD1S8v4KMAOlMt_nvswCzrEyeRikfpmxMmWp8K2ytcxGLRFdJ7YGXxJxLMh2cIlAqj3kBwrRG7ec11rYPbrfd3W2tvbe_c149A2OlbLrPp9j7vGjrh_2r9l9p79haeCnMqaXBidRzGjkr7OExmkUEZkQWoZJXvCCxHFUsDCpEspl6dcil7XJUKAw-FY-wgCBc5QrX2WUUEoSyigWPUvnVVJISdOyDANSVmmB6ZF42fXc8ZjrbuV32UAp71cGjbUy1hyNwhi1aqUc3CG-6O1ad9k-vf7gOxu4_wSGnr8l">