<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">