Skip to content

Instantly share code, notes, and snippets.

@lenary
Created August 16, 2019 09:50
Show Gist options
  • Save lenary/2e977a8af33876ba8e0605e98c4e1b0d to your computer and use it in GitHub Desktop.
Save lenary/2e977a8af33876ba8e0605e98c4e1b0d to your computer and use it in GitHub Desktop.
Comparing GCC and Clang's Atomic Alignments for RISC-V ABIs (see diffs). Clang alignment generated after applying https://reviews.llvm.org/D57450
_Complex float size: 8 align: 4 atomic-size: 8 atomic-align: 4
_Complex double size: 16 align: 8 atomic-size: 16 atomic-align: 8
struct { char buf[0]; } size: 0 align: 1 atomic-size: 1 atomic-align: 1
struct { char buf[1]; } size: 1 align: 1 atomic-size: 1 atomic-align: 1
struct { char buf[2]; } size: 2 align: 1 atomic-size: 2 atomic-align: 2
struct { char buf[3]; } size: 3 align: 1 atomic-size: 4 atomic-align: 4
struct { char buf[4]; } size: 4 align: 1 atomic-size: 4 atomic-align: 4
struct { char buf[5]; } size: 5 align: 1 atomic-size: 5 atomic-align: 1
struct { char buf[6]; } size: 6 align: 1 atomic-size: 6 atomic-align: 1
struct { char buf[7]; } size: 7 align: 1 atomic-size: 7 atomic-align: 1
struct { char buf[8]; } size: 8 align: 1 atomic-size: 8 atomic-align: 1
struct { char buf[9]; } size: 9 align: 1 atomic-size: 9 atomic-align: 1
struct { char buf[10]; } size: 10 align: 1 atomic-size: 10 atomic-align: 1
struct { char buf[11]; } size: 11 align: 1 atomic-size: 11 atomic-align: 1
struct { char buf[12]; } size: 12 align: 1 atomic-size: 12 atomic-align: 1
struct { char buf[13]; } size: 13 align: 1 atomic-size: 13 atomic-align: 1
struct { char buf[14]; } size: 14 align: 1 atomic-size: 14 atomic-align: 1
struct { char buf[15]; } size: 15 align: 1 atomic-size: 15 atomic-align: 1
struct { char buf[16]; } size: 16 align: 1 atomic-size: 16 atomic-align: 1
struct { char buf[17]; } size: 17 align: 1 atomic-size: 17 atomic-align: 1
struct { char buf[18]; } size: 18 align: 1 atomic-size: 18 atomic-align: 1
struct { char buf[19]; } size: 19 align: 1 atomic-size: 19 atomic-align: 1
struct { char buf[20]; } size: 20 align: 1 atomic-size: 20 atomic-align: 1
struct { char buf[21]; } size: 21 align: 1 atomic-size: 21 atomic-align: 1
struct { char buf[22]; } size: 22 align: 1 atomic-size: 22 atomic-align: 1
struct { char buf[23]; } size: 23 align: 1 atomic-size: 23 atomic-align: 1
struct { char buf[24]; } size: 24 align: 1 atomic-size: 24 atomic-align: 1
struct { char buf[25]; } size: 25 align: 1 atomic-size: 25 atomic-align: 1
struct { char buf[26]; } size: 26 align: 1 atomic-size: 26 atomic-align: 1
struct { char buf[27]; } size: 27 align: 1 atomic-size: 27 atomic-align: 1
struct { char buf[28]; } size: 28 align: 1 atomic-size: 28 atomic-align: 1
struct { char buf[29]; } size: 29 align: 1 atomic-size: 29 atomic-align: 1
struct { char buf[30]; } size: 30 align: 1 atomic-size: 30 atomic-align: 1
struct { char buf[31]; } size: 31 align: 1 atomic-size: 31 atomic-align: 1
struct { char buf[32]; } size: 32 align: 1 atomic-size: 32 atomic-align: 1
struct { char buf[33]; } size: 33 align: 1 atomic-size: 33 atomic-align: 1
struct { char buf[34]; } size: 34 align: 1 atomic-size: 34 atomic-align: 1
struct { char buf[35]; } size: 35 align: 1 atomic-size: 35 atomic-align: 1
struct { char buf[36]; } size: 36 align: 1 atomic-size: 36 atomic-align: 1
struct { char buf[37]; } size: 37 align: 1 atomic-size: 37 atomic-align: 1
struct { char buf[38]; } size: 38 align: 1 atomic-size: 38 atomic-align: 1
struct { char buf[39]; } size: 39 align: 1 atomic-size: 39 atomic-align: 1
struct { char buf[40]; } size: 40 align: 1 atomic-size: 40 atomic-align: 1
struct { char buf[41]; } size: 41 align: 1 atomic-size: 41 atomic-align: 1
struct { char buf[42]; } size: 42 align: 1 atomic-size: 42 atomic-align: 1
struct { char buf[43]; } size: 43 align: 1 atomic-size: 43 atomic-align: 1
struct { char buf[44]; } size: 44 align: 1 atomic-size: 44 atomic-align: 1
struct { char buf[45]; } size: 45 align: 1 atomic-size: 45 atomic-align: 1
struct { char buf[46]; } size: 46 align: 1 atomic-size: 46 atomic-align: 1
struct { char buf[47]; } size: 47 align: 1 atomic-size: 47 atomic-align: 1
struct { char buf[48]; } size: 48 align: 1 atomic-size: 48 atomic-align: 1
struct { char buf[49]; } size: 49 align: 1 atomic-size: 49 atomic-align: 1
struct { char buf[50]; } size: 50 align: 1 atomic-size: 50 atomic-align: 1
struct { char buf[51]; } size: 51 align: 1 atomic-size: 51 atomic-align: 1
struct { char buf[52]; } size: 52 align: 1 atomic-size: 52 atomic-align: 1
struct { char buf[53]; } size: 53 align: 1 atomic-size: 53 atomic-align: 1
struct { char buf[54]; } size: 54 align: 1 atomic-size: 54 atomic-align: 1
struct { char buf[55]; } size: 55 align: 1 atomic-size: 55 atomic-align: 1
struct { char buf[56]; } size: 56 align: 1 atomic-size: 56 atomic-align: 1
struct { char buf[57]; } size: 57 align: 1 atomic-size: 57 atomic-align: 1
struct { char buf[58]; } size: 58 align: 1 atomic-size: 58 atomic-align: 1
struct { char buf[59]; } size: 59 align: 1 atomic-size: 59 atomic-align: 1
struct { char buf[60]; } size: 60 align: 1 atomic-size: 60 atomic-align: 1
struct { char buf[61]; } size: 61 align: 1 atomic-size: 61 atomic-align: 1
struct { char buf[62]; } size: 62 align: 1 atomic-size: 62 atomic-align: 1
struct { char buf[63]; } size: 63 align: 1 atomic-size: 63 atomic-align: 1
struct { char buf[64]; } size: 64 align: 1 atomic-size: 64 atomic-align: 1
_Complex float size: 8 align: 4 atomic-size: 8 atomic-align: 4
_Complex double size: 16 align: 8 atomic-size: 16 atomic-align: 8
struct { char buf[0]; } size: 0 align: 1 atomic-size: 1 atomic-align: 1
struct { char buf[1]; } size: 1 align: 1 atomic-size: 1 atomic-align: 1
struct { char buf[2]; } size: 2 align: 1 atomic-size: 2 atomic-align: 2
struct { char buf[3]; } size: 3 align: 1 atomic-size: 4 atomic-align: 4
struct { char buf[4]; } size: 4 align: 1 atomic-size: 4 atomic-align: 4
struct { char buf[5]; } size: 5 align: 1 atomic-size: 5 atomic-align: 1
struct { char buf[6]; } size: 6 align: 1 atomic-size: 6 atomic-align: 1
struct { char buf[7]; } size: 7 align: 1 atomic-size: 7 atomic-align: 1
struct { char buf[8]; } size: 8 align: 1 atomic-size: 8 atomic-align: 1
struct { char buf[9]; } size: 9 align: 1 atomic-size: 9 atomic-align: 1
struct { char buf[10]; } size: 10 align: 1 atomic-size: 10 atomic-align: 1
struct { char buf[11]; } size: 11 align: 1 atomic-size: 11 atomic-align: 1
struct { char buf[12]; } size: 12 align: 1 atomic-size: 12 atomic-align: 1
struct { char buf[13]; } size: 13 align: 1 atomic-size: 13 atomic-align: 1
struct { char buf[14]; } size: 14 align: 1 atomic-size: 14 atomic-align: 1
struct { char buf[15]; } size: 15 align: 1 atomic-size: 15 atomic-align: 1
struct { char buf[16]; } size: 16 align: 1 atomic-size: 16 atomic-align: 1
struct { char buf[17]; } size: 17 align: 1 atomic-size: 17 atomic-align: 1
struct { char buf[18]; } size: 18 align: 1 atomic-size: 18 atomic-align: 1
struct { char buf[19]; } size: 19 align: 1 atomic-size: 19 atomic-align: 1
struct { char buf[20]; } size: 20 align: 1 atomic-size: 20 atomic-align: 1
struct { char buf[21]; } size: 21 align: 1 atomic-size: 21 atomic-align: 1
struct { char buf[22]; } size: 22 align: 1 atomic-size: 22 atomic-align: 1
struct { char buf[23]; } size: 23 align: 1 atomic-size: 23 atomic-align: 1
struct { char buf[24]; } size: 24 align: 1 atomic-size: 24 atomic-align: 1
struct { char buf[25]; } size: 25 align: 1 atomic-size: 25 atomic-align: 1
struct { char buf[26]; } size: 26 align: 1 atomic-size: 26 atomic-align: 1
struct { char buf[27]; } size: 27 align: 1 atomic-size: 27 atomic-align: 1
struct { char buf[28]; } size: 28 align: 1 atomic-size: 28 atomic-align: 1
struct { char buf[29]; } size: 29 align: 1 atomic-size: 29 atomic-align: 1
struct { char buf[30]; } size: 30 align: 1 atomic-size: 30 atomic-align: 1
struct { char buf[31]; } size: 31 align: 1 atomic-size: 31 atomic-align: 1
struct { char buf[32]; } size: 32 align: 1 atomic-size: 32 atomic-align: 1
struct { char buf[33]; } size: 33 align: 1 atomic-size: 33 atomic-align: 1
struct { char buf[34]; } size: 34 align: 1 atomic-size: 34 atomic-align: 1
struct { char buf[35]; } size: 35 align: 1 atomic-size: 35 atomic-align: 1
struct { char buf[36]; } size: 36 align: 1 atomic-size: 36 atomic-align: 1
struct { char buf[37]; } size: 37 align: 1 atomic-size: 37 atomic-align: 1
struct { char buf[38]; } size: 38 align: 1 atomic-size: 38 atomic-align: 1
struct { char buf[39]; } size: 39 align: 1 atomic-size: 39 atomic-align: 1
struct { char buf[40]; } size: 40 align: 1 atomic-size: 40 atomic-align: 1
struct { char buf[41]; } size: 41 align: 1 atomic-size: 41 atomic-align: 1
struct { char buf[42]; } size: 42 align: 1 atomic-size: 42 atomic-align: 1
struct { char buf[43]; } size: 43 align: 1 atomic-size: 43 atomic-align: 1
struct { char buf[44]; } size: 44 align: 1 atomic-size: 44 atomic-align: 1
struct { char buf[45]; } size: 45 align: 1 atomic-size: 45 atomic-align: 1
struct { char buf[46]; } size: 46 align: 1 atomic-size: 46 atomic-align: 1
struct { char buf[47]; } size: 47 align: 1 atomic-size: 47 atomic-align: 1
struct { char buf[48]; } size: 48 align: 1 atomic-size: 48 atomic-align: 1
struct { char buf[49]; } size: 49 align: 1 atomic-size: 49 atomic-align: 1
struct { char buf[50]; } size: 50 align: 1 atomic-size: 50 atomic-align: 1
struct { char buf[51]; } size: 51 align: 1 atomic-size: 51 atomic-align: 1
struct { char buf[52]; } size: 52 align: 1 atomic-size: 52 atomic-align: 1
struct { char buf[53]; } size: 53 align: 1 atomic-size: 53 atomic-align: 1
struct { char buf[54]; } size: 54 align: 1 atomic-size: 54 atomic-align: 1
struct { char buf[55]; } size: 55 align: 1 atomic-size: 55 atomic-align: 1
struct { char buf[56]; } size: 56 align: 1 atomic-size: 56 atomic-align: 1
struct { char buf[57]; } size: 57 align: 1 atomic-size: 57 atomic-align: 1
struct { char buf[58]; } size: 58 align: 1 atomic-size: 58 atomic-align: 1
struct { char buf[59]; } size: 59 align: 1 atomic-size: 59 atomic-align: 1
struct { char buf[60]; } size: 60 align: 1 atomic-size: 60 atomic-align: 1
struct { char buf[61]; } size: 61 align: 1 atomic-size: 61 atomic-align: 1
struct { char buf[62]; } size: 62 align: 1 atomic-size: 62 atomic-align: 1
struct { char buf[63]; } size: 63 align: 1 atomic-size: 63 atomic-align: 1
struct { char buf[64]; } size: 64 align: 1 atomic-size: 64 atomic-align: 1
_Complex float size: 8 align: 4 atomic-size: 8 atomic-align: 8
_Complex double size: 16 align: 8 atomic-size: 16 atomic-align: 8
struct { char buf[0]; } size: 0 align: 1 atomic-size: 1 atomic-align: 1
struct { char buf[1]; } size: 1 align: 1 atomic-size: 1 atomic-align: 1
struct { char buf[2]; } size: 2 align: 1 atomic-size: 2 atomic-align: 2
struct { char buf[3]; } size: 3 align: 1 atomic-size: 4 atomic-align: 4
struct { char buf[4]; } size: 4 align: 1 atomic-size: 4 atomic-align: 4
struct { char buf[5]; } size: 5 align: 1 atomic-size: 8 atomic-align: 8
struct { char buf[6]; } size: 6 align: 1 atomic-size: 8 atomic-align: 8
struct { char buf[7]; } size: 7 align: 1 atomic-size: 8 atomic-align: 8
struct { char buf[8]; } size: 8 align: 1 atomic-size: 8 atomic-align: 8
struct { char buf[9]; } size: 9 align: 1 atomic-size: 9 atomic-align: 1
struct { char buf[10]; } size: 10 align: 1 atomic-size: 10 atomic-align: 1
struct { char buf[11]; } size: 11 align: 1 atomic-size: 11 atomic-align: 1
struct { char buf[12]; } size: 12 align: 1 atomic-size: 12 atomic-align: 1
struct { char buf[13]; } size: 13 align: 1 atomic-size: 13 atomic-align: 1
struct { char buf[14]; } size: 14 align: 1 atomic-size: 14 atomic-align: 1
struct { char buf[15]; } size: 15 align: 1 atomic-size: 15 atomic-align: 1
struct { char buf[16]; } size: 16 align: 1 atomic-size: 16 atomic-align: 1
struct { char buf[17]; } size: 17 align: 1 atomic-size: 17 atomic-align: 1
struct { char buf[18]; } size: 18 align: 1 atomic-size: 18 atomic-align: 1
struct { char buf[19]; } size: 19 align: 1 atomic-size: 19 atomic-align: 1
struct { char buf[20]; } size: 20 align: 1 atomic-size: 20 atomic-align: 1
struct { char buf[21]; } size: 21 align: 1 atomic-size: 21 atomic-align: 1
struct { char buf[22]; } size: 22 align: 1 atomic-size: 22 atomic-align: 1
struct { char buf[23]; } size: 23 align: 1 atomic-size: 23 atomic-align: 1
struct { char buf[24]; } size: 24 align: 1 atomic-size: 24 atomic-align: 1
struct { char buf[25]; } size: 25 align: 1 atomic-size: 25 atomic-align: 1
struct { char buf[26]; } size: 26 align: 1 atomic-size: 26 atomic-align: 1
struct { char buf[27]; } size: 27 align: 1 atomic-size: 27 atomic-align: 1
struct { char buf[28]; } size: 28 align: 1 atomic-size: 28 atomic-align: 1
struct { char buf[29]; } size: 29 align: 1 atomic-size: 29 atomic-align: 1
struct { char buf[30]; } size: 30 align: 1 atomic-size: 30 atomic-align: 1
struct { char buf[31]; } size: 31 align: 1 atomic-size: 31 atomic-align: 1
struct { char buf[32]; } size: 32 align: 1 atomic-size: 32 atomic-align: 1
struct { char buf[33]; } size: 33 align: 1 atomic-size: 33 atomic-align: 1
struct { char buf[34]; } size: 34 align: 1 atomic-size: 34 atomic-align: 1
struct { char buf[35]; } size: 35 align: 1 atomic-size: 35 atomic-align: 1
struct { char buf[36]; } size: 36 align: 1 atomic-size: 36 atomic-align: 1
struct { char buf[37]; } size: 37 align: 1 atomic-size: 37 atomic-align: 1
struct { char buf[38]; } size: 38 align: 1 atomic-size: 38 atomic-align: 1
struct { char buf[39]; } size: 39 align: 1 atomic-size: 39 atomic-align: 1
struct { char buf[40]; } size: 40 align: 1 atomic-size: 40 atomic-align: 1
struct { char buf[41]; } size: 41 align: 1 atomic-size: 41 atomic-align: 1
struct { char buf[42]; } size: 42 align: 1 atomic-size: 42 atomic-align: 1
struct { char buf[43]; } size: 43 align: 1 atomic-size: 43 atomic-align: 1
struct { char buf[44]; } size: 44 align: 1 atomic-size: 44 atomic-align: 1
struct { char buf[45]; } size: 45 align: 1 atomic-size: 45 atomic-align: 1
struct { char buf[46]; } size: 46 align: 1 atomic-size: 46 atomic-align: 1
struct { char buf[47]; } size: 47 align: 1 atomic-size: 47 atomic-align: 1
struct { char buf[48]; } size: 48 align: 1 atomic-size: 48 atomic-align: 1
struct { char buf[49]; } size: 49 align: 1 atomic-size: 49 atomic-align: 1
struct { char buf[50]; } size: 50 align: 1 atomic-size: 50 atomic-align: 1
struct { char buf[51]; } size: 51 align: 1 atomic-size: 51 atomic-align: 1
struct { char buf[52]; } size: 52 align: 1 atomic-size: 52 atomic-align: 1
struct { char buf[53]; } size: 53 align: 1 atomic-size: 53 atomic-align: 1
struct { char buf[54]; } size: 54 align: 1 atomic-size: 54 atomic-align: 1
struct { char buf[55]; } size: 55 align: 1 atomic-size: 55 atomic-align: 1
struct { char buf[56]; } size: 56 align: 1 atomic-size: 56 atomic-align: 1
struct { char buf[57]; } size: 57 align: 1 atomic-size: 57 atomic-align: 1
struct { char buf[58]; } size: 58 align: 1 atomic-size: 58 atomic-align: 1
struct { char buf[59]; } size: 59 align: 1 atomic-size: 59 atomic-align: 1
struct { char buf[60]; } size: 60 align: 1 atomic-size: 60 atomic-align: 1
struct { char buf[61]; } size: 61 align: 1 atomic-size: 61 atomic-align: 1
struct { char buf[62]; } size: 62 align: 1 atomic-size: 62 atomic-align: 1
struct { char buf[63]; } size: 63 align: 1 atomic-size: 63 atomic-align: 1
struct { char buf[64]; } size: 64 align: 1 atomic-size: 64 atomic-align: 1
_Complex float size: 8 align: 4 atomic-size: 8 atomic-align: 8
_Complex double size: 16 align: 8 atomic-size: 16 atomic-align: 8
struct { char buf[0]; } size: 0 align: 1 atomic-size: 1 atomic-align: 1
struct { char buf[1]; } size: 1 align: 1 atomic-size: 1 atomic-align: 1
struct { char buf[2]; } size: 2 align: 1 atomic-size: 2 atomic-align: 2
struct { char buf[3]; } size: 3 align: 1 atomic-size: 4 atomic-align: 4
struct { char buf[4]; } size: 4 align: 1 atomic-size: 4 atomic-align: 4
struct { char buf[5]; } size: 5 align: 1 atomic-size: 8 atomic-align: 8
struct { char buf[6]; } size: 6 align: 1 atomic-size: 8 atomic-align: 8
struct { char buf[7]; } size: 7 align: 1 atomic-size: 8 atomic-align: 8
struct { char buf[8]; } size: 8 align: 1 atomic-size: 8 atomic-align: 8
struct { char buf[9]; } size: 9 align: 1 atomic-size: 9 atomic-align: 1
struct { char buf[10]; } size: 10 align: 1 atomic-size: 10 atomic-align: 1
struct { char buf[11]; } size: 11 align: 1 atomic-size: 11 atomic-align: 1
struct { char buf[12]; } size: 12 align: 1 atomic-size: 12 atomic-align: 1
struct { char buf[13]; } size: 13 align: 1 atomic-size: 13 atomic-align: 1
struct { char buf[14]; } size: 14 align: 1 atomic-size: 14 atomic-align: 1
struct { char buf[15]; } size: 15 align: 1 atomic-size: 15 atomic-align: 1
struct { char buf[16]; } size: 16 align: 1 atomic-size: 16 atomic-align: 1
struct { char buf[17]; } size: 17 align: 1 atomic-size: 17 atomic-align: 1
struct { char buf[18]; } size: 18 align: 1 atomic-size: 18 atomic-align: 1
struct { char buf[19]; } size: 19 align: 1 atomic-size: 19 atomic-align: 1
struct { char buf[20]; } size: 20 align: 1 atomic-size: 20 atomic-align: 1
struct { char buf[21]; } size: 21 align: 1 atomic-size: 21 atomic-align: 1
struct { char buf[22]; } size: 22 align: 1 atomic-size: 22 atomic-align: 1
struct { char buf[23]; } size: 23 align: 1 atomic-size: 23 atomic-align: 1
struct { char buf[24]; } size: 24 align: 1 atomic-size: 24 atomic-align: 1
struct { char buf[25]; } size: 25 align: 1 atomic-size: 25 atomic-align: 1
struct { char buf[26]; } size: 26 align: 1 atomic-size: 26 atomic-align: 1
struct { char buf[27]; } size: 27 align: 1 atomic-size: 27 atomic-align: 1
struct { char buf[28]; } size: 28 align: 1 atomic-size: 28 atomic-align: 1
struct { char buf[29]; } size: 29 align: 1 atomic-size: 29 atomic-align: 1
struct { char buf[30]; } size: 30 align: 1 atomic-size: 30 atomic-align: 1
struct { char buf[31]; } size: 31 align: 1 atomic-size: 31 atomic-align: 1
struct { char buf[32]; } size: 32 align: 1 atomic-size: 32 atomic-align: 1
struct { char buf[33]; } size: 33 align: 1 atomic-size: 33 atomic-align: 1
struct { char buf[34]; } size: 34 align: 1 atomic-size: 34 atomic-align: 1
struct { char buf[35]; } size: 35 align: 1 atomic-size: 35 atomic-align: 1
struct { char buf[36]; } size: 36 align: 1 atomic-size: 36 atomic-align: 1
struct { char buf[37]; } size: 37 align: 1 atomic-size: 37 atomic-align: 1
struct { char buf[38]; } size: 38 align: 1 atomic-size: 38 atomic-align: 1
struct { char buf[39]; } size: 39 align: 1 atomic-size: 39 atomic-align: 1
struct { char buf[40]; } size: 40 align: 1 atomic-size: 40 atomic-align: 1
struct { char buf[41]; } size: 41 align: 1 atomic-size: 41 atomic-align: 1
struct { char buf[42]; } size: 42 align: 1 atomic-size: 42 atomic-align: 1
struct { char buf[43]; } size: 43 align: 1 atomic-size: 43 atomic-align: 1
struct { char buf[44]; } size: 44 align: 1 atomic-size: 44 atomic-align: 1
struct { char buf[45]; } size: 45 align: 1 atomic-size: 45 atomic-align: 1
struct { char buf[46]; } size: 46 align: 1 atomic-size: 46 atomic-align: 1
struct { char buf[47]; } size: 47 align: 1 atomic-size: 47 atomic-align: 1
struct { char buf[48]; } size: 48 align: 1 atomic-size: 48 atomic-align: 1
struct { char buf[49]; } size: 49 align: 1 atomic-size: 49 atomic-align: 1
struct { char buf[50]; } size: 50 align: 1 atomic-size: 50 atomic-align: 1
struct { char buf[51]; } size: 51 align: 1 atomic-size: 51 atomic-align: 1
struct { char buf[52]; } size: 52 align: 1 atomic-size: 52 atomic-align: 1
struct { char buf[53]; } size: 53 align: 1 atomic-size: 53 atomic-align: 1
struct { char buf[54]; } size: 54 align: 1 atomic-size: 54 atomic-align: 1
struct { char buf[55]; } size: 55 align: 1 atomic-size: 55 atomic-align: 1
struct { char buf[56]; } size: 56 align: 1 atomic-size: 56 atomic-align: 1
struct { char buf[57]; } size: 57 align: 1 atomic-size: 57 atomic-align: 1
struct { char buf[58]; } size: 58 align: 1 atomic-size: 58 atomic-align: 1
struct { char buf[59]; } size: 59 align: 1 atomic-size: 59 atomic-align: 1
struct { char buf[60]; } size: 60 align: 1 atomic-size: 60 atomic-align: 1
struct { char buf[61]; } size: 61 align: 1 atomic-size: 61 atomic-align: 1
struct { char buf[62]; } size: 62 align: 1 atomic-size: 62 atomic-align: 1
struct { char buf[63]; } size: 63 align: 1 atomic-size: 63 atomic-align: 1
struct { char buf[64]; } size: 64 align: 1 atomic-size: 64 atomic-align: 1
_Complex float size: 8 align: 4 atomic-size: 8 atomic-align: 8
_Complex double size: 16 align: 8 atomic-size: 16 atomic-align: 16
struct { char buf[0]; } size: 0 align: 1 atomic-size: 0 atomic-align: 1
struct { char buf[1]; } size: 1 align: 1 atomic-size: 1 atomic-align: 1
struct { char buf[2]; } size: 2 align: 1 atomic-size: 2 atomic-align: 2
struct { char buf[3]; } size: 3 align: 1 atomic-size: 3 atomic-align: 1
struct { char buf[4]; } size: 4 align: 1 atomic-size: 4 atomic-align: 4
struct { char buf[5]; } size: 5 align: 1 atomic-size: 5 atomic-align: 1
struct { char buf[6]; } size: 6 align: 1 atomic-size: 6 atomic-align: 1
struct { char buf[7]; } size: 7 align: 1 atomic-size: 7 atomic-align: 1
struct { char buf[8]; } size: 8 align: 1 atomic-size: 8 atomic-align: 8
struct { char buf[9]; } size: 9 align: 1 atomic-size: 9 atomic-align: 1
struct { char buf[10]; } size: 10 align: 1 atomic-size: 10 atomic-align: 1
struct { char buf[11]; } size: 11 align: 1 atomic-size: 11 atomic-align: 1
struct { char buf[12]; } size: 12 align: 1 atomic-size: 12 atomic-align: 1
struct { char buf[13]; } size: 13 align: 1 atomic-size: 13 atomic-align: 1
struct { char buf[14]; } size: 14 align: 1 atomic-size: 14 atomic-align: 1
struct { char buf[15]; } size: 15 align: 1 atomic-size: 15 atomic-align: 1
struct { char buf[16]; } size: 16 align: 1 atomic-size: 16 atomic-align: 16
struct { char buf[17]; } size: 17 align: 1 atomic-size: 17 atomic-align: 1
struct { char buf[18]; } size: 18 align: 1 atomic-size: 18 atomic-align: 1
struct { char buf[19]; } size: 19 align: 1 atomic-size: 19 atomic-align: 1
struct { char buf[20]; } size: 20 align: 1 atomic-size: 20 atomic-align: 1
struct { char buf[21]; } size: 21 align: 1 atomic-size: 21 atomic-align: 1
struct { char buf[22]; } size: 22 align: 1 atomic-size: 22 atomic-align: 1
struct { char buf[23]; } size: 23 align: 1 atomic-size: 23 atomic-align: 1
struct { char buf[24]; } size: 24 align: 1 atomic-size: 24 atomic-align: 1
struct { char buf[25]; } size: 25 align: 1 atomic-size: 25 atomic-align: 1
struct { char buf[26]; } size: 26 align: 1 atomic-size: 26 atomic-align: 1
struct { char buf[27]; } size: 27 align: 1 atomic-size: 27 atomic-align: 1
struct { char buf[28]; } size: 28 align: 1 atomic-size: 28 atomic-align: 1
struct { char buf[29]; } size: 29 align: 1 atomic-size: 29 atomic-align: 1
struct { char buf[30]; } size: 30 align: 1 atomic-size: 30 atomic-align: 1
struct { char buf[31]; } size: 31 align: 1 atomic-size: 31 atomic-align: 1
struct { char buf[32]; } size: 32 align: 1 atomic-size: 32 atomic-align: 1
struct { char buf[33]; } size: 33 align: 1 atomic-size: 33 atomic-align: 1
struct { char buf[34]; } size: 34 align: 1 atomic-size: 34 atomic-align: 1
struct { char buf[35]; } size: 35 align: 1 atomic-size: 35 atomic-align: 1
struct { char buf[36]; } size: 36 align: 1 atomic-size: 36 atomic-align: 1
struct { char buf[37]; } size: 37 align: 1 atomic-size: 37 atomic-align: 1
struct { char buf[38]; } size: 38 align: 1 atomic-size: 38 atomic-align: 1
struct { char buf[39]; } size: 39 align: 1 atomic-size: 39 atomic-align: 1
struct { char buf[40]; } size: 40 align: 1 atomic-size: 40 atomic-align: 1
struct { char buf[41]; } size: 41 align: 1 atomic-size: 41 atomic-align: 1
struct { char buf[42]; } size: 42 align: 1 atomic-size: 42 atomic-align: 1
struct { char buf[43]; } size: 43 align: 1 atomic-size: 43 atomic-align: 1
struct { char buf[44]; } size: 44 align: 1 atomic-size: 44 atomic-align: 1
struct { char buf[45]; } size: 45 align: 1 atomic-size: 45 atomic-align: 1
struct { char buf[46]; } size: 46 align: 1 atomic-size: 46 atomic-align: 1
struct { char buf[47]; } size: 47 align: 1 atomic-size: 47 atomic-align: 1
struct { char buf[48]; } size: 48 align: 1 atomic-size: 48 atomic-align: 1
struct { char buf[49]; } size: 49 align: 1 atomic-size: 49 atomic-align: 1
struct { char buf[50]; } size: 50 align: 1 atomic-size: 50 atomic-align: 1
struct { char buf[51]; } size: 51 align: 1 atomic-size: 51 atomic-align: 1
struct { char buf[52]; } size: 52 align: 1 atomic-size: 52 atomic-align: 1
struct { char buf[53]; } size: 53 align: 1 atomic-size: 53 atomic-align: 1
struct { char buf[54]; } size: 54 align: 1 atomic-size: 54 atomic-align: 1
struct { char buf[55]; } size: 55 align: 1 atomic-size: 55 atomic-align: 1
struct { char buf[56]; } size: 56 align: 1 atomic-size: 56 atomic-align: 1
struct { char buf[57]; } size: 57 align: 1 atomic-size: 57 atomic-align: 1
struct { char buf[58]; } size: 58 align: 1 atomic-size: 58 atomic-align: 1
struct { char buf[59]; } size: 59 align: 1 atomic-size: 59 atomic-align: 1
struct { char buf[60]; } size: 60 align: 1 atomic-size: 60 atomic-align: 1
struct { char buf[61]; } size: 61 align: 1 atomic-size: 61 atomic-align: 1
struct { char buf[62]; } size: 62 align: 1 atomic-size: 62 atomic-align: 1
struct { char buf[63]; } size: 63 align: 1 atomic-size: 63 atomic-align: 1
struct { char buf[64]; } size: 64 align: 1 atomic-size: 64 atomic-align: 1
_Complex float size: 8 align: 4 atomic-size: 8 atomic-align: 8
_Complex double size: 16 align: 8 atomic-size: 16 atomic-align: 16
struct { char buf[0]; } size: 0 align: 1 atomic-size: 0 atomic-align: 1
struct { char buf[1]; } size: 1 align: 1 atomic-size: 1 atomic-align: 1
struct { char buf[2]; } size: 2 align: 1 atomic-size: 2 atomic-align: 2
struct { char buf[3]; } size: 3 align: 1 atomic-size: 3 atomic-align: 1
struct { char buf[4]; } size: 4 align: 1 atomic-size: 4 atomic-align: 4
struct { char buf[5]; } size: 5 align: 1 atomic-size: 5 atomic-align: 1
struct { char buf[6]; } size: 6 align: 1 atomic-size: 6 atomic-align: 1
struct { char buf[7]; } size: 7 align: 1 atomic-size: 7 atomic-align: 1
struct { char buf[8]; } size: 8 align: 1 atomic-size: 8 atomic-align: 8
struct { char buf[9]; } size: 9 align: 1 atomic-size: 9 atomic-align: 1
struct { char buf[10]; } size: 10 align: 1 atomic-size: 10 atomic-align: 1
struct { char buf[11]; } size: 11 align: 1 atomic-size: 11 atomic-align: 1
struct { char buf[12]; } size: 12 align: 1 atomic-size: 12 atomic-align: 1
struct { char buf[13]; } size: 13 align: 1 atomic-size: 13 atomic-align: 1
struct { char buf[14]; } size: 14 align: 1 atomic-size: 14 atomic-align: 1
struct { char buf[15]; } size: 15 align: 1 atomic-size: 15 atomic-align: 1
struct { char buf[16]; } size: 16 align: 1 atomic-size: 16 atomic-align: 16
struct { char buf[17]; } size: 17 align: 1 atomic-size: 17 atomic-align: 1
struct { char buf[18]; } size: 18 align: 1 atomic-size: 18 atomic-align: 1
struct { char buf[19]; } size: 19 align: 1 atomic-size: 19 atomic-align: 1
struct { char buf[20]; } size: 20 align: 1 atomic-size: 20 atomic-align: 1
struct { char buf[21]; } size: 21 align: 1 atomic-size: 21 atomic-align: 1
struct { char buf[22]; } size: 22 align: 1 atomic-size: 22 atomic-align: 1
struct { char buf[23]; } size: 23 align: 1 atomic-size: 23 atomic-align: 1
struct { char buf[24]; } size: 24 align: 1 atomic-size: 24 atomic-align: 1
struct { char buf[25]; } size: 25 align: 1 atomic-size: 25 atomic-align: 1
struct { char buf[26]; } size: 26 align: 1 atomic-size: 26 atomic-align: 1
struct { char buf[27]; } size: 27 align: 1 atomic-size: 27 atomic-align: 1
struct { char buf[28]; } size: 28 align: 1 atomic-size: 28 atomic-align: 1
struct { char buf[29]; } size: 29 align: 1 atomic-size: 29 atomic-align: 1
struct { char buf[30]; } size: 30 align: 1 atomic-size: 30 atomic-align: 1
struct { char buf[31]; } size: 31 align: 1 atomic-size: 31 atomic-align: 1
struct { char buf[32]; } size: 32 align: 1 atomic-size: 32 atomic-align: 1
struct { char buf[33]; } size: 33 align: 1 atomic-size: 33 atomic-align: 1
struct { char buf[34]; } size: 34 align: 1 atomic-size: 34 atomic-align: 1
struct { char buf[35]; } size: 35 align: 1 atomic-size: 35 atomic-align: 1
struct { char buf[36]; } size: 36 align: 1 atomic-size: 36 atomic-align: 1
struct { char buf[37]; } size: 37 align: 1 atomic-size: 37 atomic-align: 1
struct { char buf[38]; } size: 38 align: 1 atomic-size: 38 atomic-align: 1
struct { char buf[39]; } size: 39 align: 1 atomic-size: 39 atomic-align: 1
struct { char buf[40]; } size: 40 align: 1 atomic-size: 40 atomic-align: 1
struct { char buf[41]; } size: 41 align: 1 atomic-size: 41 atomic-align: 1
struct { char buf[42]; } size: 42 align: 1 atomic-size: 42 atomic-align: 1
struct { char buf[43]; } size: 43 align: 1 atomic-size: 43 atomic-align: 1
struct { char buf[44]; } size: 44 align: 1 atomic-size: 44 atomic-align: 1
struct { char buf[45]; } size: 45 align: 1 atomic-size: 45 atomic-align: 1
struct { char buf[46]; } size: 46 align: 1 atomic-size: 46 atomic-align: 1
struct { char buf[47]; } size: 47 align: 1 atomic-size: 47 atomic-align: 1
struct { char buf[48]; } size: 48 align: 1 atomic-size: 48 atomic-align: 1
struct { char buf[49]; } size: 49 align: 1 atomic-size: 49 atomic-align: 1
struct { char buf[50]; } size: 50 align: 1 atomic-size: 50 atomic-align: 1
struct { char buf[51]; } size: 51 align: 1 atomic-size: 51 atomic-align: 1
struct { char buf[52]; } size: 52 align: 1 atomic-size: 52 atomic-align: 1
struct { char buf[53]; } size: 53 align: 1 atomic-size: 53 atomic-align: 1
struct { char buf[54]; } size: 54 align: 1 atomic-size: 54 atomic-align: 1
struct { char buf[55]; } size: 55 align: 1 atomic-size: 55 atomic-align: 1
struct { char buf[56]; } size: 56 align: 1 atomic-size: 56 atomic-align: 1
struct { char buf[57]; } size: 57 align: 1 atomic-size: 57 atomic-align: 1
struct { char buf[58]; } size: 58 align: 1 atomic-size: 58 atomic-align: 1
struct { char buf[59]; } size: 59 align: 1 atomic-size: 59 atomic-align: 1
struct { char buf[60]; } size: 60 align: 1 atomic-size: 60 atomic-align: 1
struct { char buf[61]; } size: 61 align: 1 atomic-size: 61 atomic-align: 1
struct { char buf[62]; } size: 62 align: 1 atomic-size: 62 atomic-align: 1
struct { char buf[63]; } size: 63 align: 1 atomic-size: 63 atomic-align: 1
struct { char buf[64]; } size: 64 align: 1 atomic-size: 64 atomic-align: 1
_Complex float size: 8 align: 4 atomic-size: 8 atomic-align: 8
_Complex double size: 16 align: 8 atomic-size: 16 atomic-align: 16
struct { char buf[0]; } size: 0 align: 1 atomic-size: 0 atomic-align: 1
struct { char buf[1]; } size: 1 align: 1 atomic-size: 1 atomic-align: 1
struct { char buf[2]; } size: 2 align: 1 atomic-size: 2 atomic-align: 2
struct { char buf[3]; } size: 3 align: 1 atomic-size: 3 atomic-align: 1
struct { char buf[4]; } size: 4 align: 1 atomic-size: 4 atomic-align: 4
struct { char buf[5]; } size: 5 align: 1 atomic-size: 5 atomic-align: 1
struct { char buf[6]; } size: 6 align: 1 atomic-size: 6 atomic-align: 1
struct { char buf[7]; } size: 7 align: 1 atomic-size: 7 atomic-align: 1
struct { char buf[8]; } size: 8 align: 1 atomic-size: 8 atomic-align: 8
struct { char buf[9]; } size: 9 align: 1 atomic-size: 9 atomic-align: 1
struct { char buf[10]; } size: 10 align: 1 atomic-size: 10 atomic-align: 1
struct { char buf[11]; } size: 11 align: 1 atomic-size: 11 atomic-align: 1
struct { char buf[12]; } size: 12 align: 1 atomic-size: 12 atomic-align: 1
struct { char buf[13]; } size: 13 align: 1 atomic-size: 13 atomic-align: 1
struct { char buf[14]; } size: 14 align: 1 atomic-size: 14 atomic-align: 1
struct { char buf[15]; } size: 15 align: 1 atomic-size: 15 atomic-align: 1
struct { char buf[16]; } size: 16 align: 1 atomic-size: 16 atomic-align: 16
struct { char buf[17]; } size: 17 align: 1 atomic-size: 17 atomic-align: 1
struct { char buf[18]; } size: 18 align: 1 atomic-size: 18 atomic-align: 1
struct { char buf[19]; } size: 19 align: 1 atomic-size: 19 atomic-align: 1
struct { char buf[20]; } size: 20 align: 1 atomic-size: 20 atomic-align: 1
struct { char buf[21]; } size: 21 align: 1 atomic-size: 21 atomic-align: 1
struct { char buf[22]; } size: 22 align: 1 atomic-size: 22 atomic-align: 1
struct { char buf[23]; } size: 23 align: 1 atomic-size: 23 atomic-align: 1
struct { char buf[24]; } size: 24 align: 1 atomic-size: 24 atomic-align: 1
struct { char buf[25]; } size: 25 align: 1 atomic-size: 25 atomic-align: 1
struct { char buf[26]; } size: 26 align: 1 atomic-size: 26 atomic-align: 1
struct { char buf[27]; } size: 27 align: 1 atomic-size: 27 atomic-align: 1
struct { char buf[28]; } size: 28 align: 1 atomic-size: 28 atomic-align: 1
struct { char buf[29]; } size: 29 align: 1 atomic-size: 29 atomic-align: 1
struct { char buf[30]; } size: 30 align: 1 atomic-size: 30 atomic-align: 1
struct { char buf[31]; } size: 31 align: 1 atomic-size: 31 atomic-align: 1
struct { char buf[32]; } size: 32 align: 1 atomic-size: 32 atomic-align: 1
struct { char buf[33]; } size: 33 align: 1 atomic-size: 33 atomic-align: 1
struct { char buf[34]; } size: 34 align: 1 atomic-size: 34 atomic-align: 1
struct { char buf[35]; } size: 35 align: 1 atomic-size: 35 atomic-align: 1
struct { char buf[36]; } size: 36 align: 1 atomic-size: 36 atomic-align: 1
struct { char buf[37]; } size: 37 align: 1 atomic-size: 37 atomic-align: 1
struct { char buf[38]; } size: 38 align: 1 atomic-size: 38 atomic-align: 1
struct { char buf[39]; } size: 39 align: 1 atomic-size: 39 atomic-align: 1
struct { char buf[40]; } size: 40 align: 1 atomic-size: 40 atomic-align: 1
struct { char buf[41]; } size: 41 align: 1 atomic-size: 41 atomic-align: 1
struct { char buf[42]; } size: 42 align: 1 atomic-size: 42 atomic-align: 1
struct { char buf[43]; } size: 43 align: 1 atomic-size: 43 atomic-align: 1
struct { char buf[44]; } size: 44 align: 1 atomic-size: 44 atomic-align: 1
struct { char buf[45]; } size: 45 align: 1 atomic-size: 45 atomic-align: 1
struct { char buf[46]; } size: 46 align: 1 atomic-size: 46 atomic-align: 1
struct { char buf[47]; } size: 47 align: 1 atomic-size: 47 atomic-align: 1
struct { char buf[48]; } size: 48 align: 1 atomic-size: 48 atomic-align: 1
struct { char buf[49]; } size: 49 align: 1 atomic-size: 49 atomic-align: 1
struct { char buf[50]; } size: 50 align: 1 atomic-size: 50 atomic-align: 1
struct { char buf[51]; } size: 51 align: 1 atomic-size: 51 atomic-align: 1
struct { char buf[52]; } size: 52 align: 1 atomic-size: 52 atomic-align: 1
struct { char buf[53]; } size: 53 align: 1 atomic-size: 53 atomic-align: 1
struct { char buf[54]; } size: 54 align: 1 atomic-size: 54 atomic-align: 1
struct { char buf[55]; } size: 55 align: 1 atomic-size: 55 atomic-align: 1
struct { char buf[56]; } size: 56 align: 1 atomic-size: 56 atomic-align: 1
struct { char buf[57]; } size: 57 align: 1 atomic-size: 57 atomic-align: 1
struct { char buf[58]; } size: 58 align: 1 atomic-size: 58 atomic-align: 1
struct { char buf[59]; } size: 59 align: 1 atomic-size: 59 atomic-align: 1
struct { char buf[60]; } size: 60 align: 1 atomic-size: 60 atomic-align: 1
struct { char buf[61]; } size: 61 align: 1 atomic-size: 61 atomic-align: 1
struct { char buf[62]; } size: 62 align: 1 atomic-size: 62 atomic-align: 1
struct { char buf[63]; } size: 63 align: 1 atomic-size: 63 atomic-align: 1
struct { char buf[64]; } size: 64 align: 1 atomic-size: 64 atomic-align: 1
_Complex float size: 8 align: 4 atomic-size: 8 atomic-align: 8
_Complex double size: 16 align: 8 atomic-size: 16 atomic-align: 16
struct { char buf[0]; } size: 0 align: 1 atomic-size: 0 atomic-align: 1
struct { char buf[1]; } size: 1 align: 1 atomic-size: 1 atomic-align: 1
struct { char buf[2]; } size: 2 align: 1 atomic-size: 2 atomic-align: 2
struct { char buf[3]; } size: 3 align: 1 atomic-size: 3 atomic-align: 1
struct { char buf[4]; } size: 4 align: 1 atomic-size: 4 atomic-align: 4
struct { char buf[5]; } size: 5 align: 1 atomic-size: 5 atomic-align: 1
struct { char buf[6]; } size: 6 align: 1 atomic-size: 6 atomic-align: 1
struct { char buf[7]; } size: 7 align: 1 atomic-size: 7 atomic-align: 1
struct { char buf[8]; } size: 8 align: 1 atomic-size: 8 atomic-align: 8
struct { char buf[9]; } size: 9 align: 1 atomic-size: 9 atomic-align: 1
struct { char buf[10]; } size: 10 align: 1 atomic-size: 10 atomic-align: 1
struct { char buf[11]; } size: 11 align: 1 atomic-size: 11 atomic-align: 1
struct { char buf[12]; } size: 12 align: 1 atomic-size: 12 atomic-align: 1
struct { char buf[13]; } size: 13 align: 1 atomic-size: 13 atomic-align: 1
struct { char buf[14]; } size: 14 align: 1 atomic-size: 14 atomic-align: 1
struct { char buf[15]; } size: 15 align: 1 atomic-size: 15 atomic-align: 1
struct { char buf[16]; } size: 16 align: 1 atomic-size: 16 atomic-align: 16
struct { char buf[17]; } size: 17 align: 1 atomic-size: 17 atomic-align: 1
struct { char buf[18]; } size: 18 align: 1 atomic-size: 18 atomic-align: 1
struct { char buf[19]; } size: 19 align: 1 atomic-size: 19 atomic-align: 1
struct { char buf[20]; } size: 20 align: 1 atomic-size: 20 atomic-align: 1
struct { char buf[21]; } size: 21 align: 1 atomic-size: 21 atomic-align: 1
struct { char buf[22]; } size: 22 align: 1 atomic-size: 22 atomic-align: 1
struct { char buf[23]; } size: 23 align: 1 atomic-size: 23 atomic-align: 1
struct { char buf[24]; } size: 24 align: 1 atomic-size: 24 atomic-align: 1
struct { char buf[25]; } size: 25 align: 1 atomic-size: 25 atomic-align: 1
struct { char buf[26]; } size: 26 align: 1 atomic-size: 26 atomic-align: 1
struct { char buf[27]; } size: 27 align: 1 atomic-size: 27 atomic-align: 1
struct { char buf[28]; } size: 28 align: 1 atomic-size: 28 atomic-align: 1
struct { char buf[29]; } size: 29 align: 1 atomic-size: 29 atomic-align: 1
struct { char buf[30]; } size: 30 align: 1 atomic-size: 30 atomic-align: 1
struct { char buf[31]; } size: 31 align: 1 atomic-size: 31 atomic-align: 1
struct { char buf[32]; } size: 32 align: 1 atomic-size: 32 atomic-align: 1
struct { char buf[33]; } size: 33 align: 1 atomic-size: 33 atomic-align: 1
struct { char buf[34]; } size: 34 align: 1 atomic-size: 34 atomic-align: 1
struct { char buf[35]; } size: 35 align: 1 atomic-size: 35 atomic-align: 1
struct { char buf[36]; } size: 36 align: 1 atomic-size: 36 atomic-align: 1
struct { char buf[37]; } size: 37 align: 1 atomic-size: 37 atomic-align: 1
struct { char buf[38]; } size: 38 align: 1 atomic-size: 38 atomic-align: 1
struct { char buf[39]; } size: 39 align: 1 atomic-size: 39 atomic-align: 1
struct { char buf[40]; } size: 40 align: 1 atomic-size: 40 atomic-align: 1
struct { char buf[41]; } size: 41 align: 1 atomic-size: 41 atomic-align: 1
struct { char buf[42]; } size: 42 align: 1 atomic-size: 42 atomic-align: 1
struct { char buf[43]; } size: 43 align: 1 atomic-size: 43 atomic-align: 1
struct { char buf[44]; } size: 44 align: 1 atomic-size: 44 atomic-align: 1
struct { char buf[45]; } size: 45 align: 1 atomic-size: 45 atomic-align: 1
struct { char buf[46]; } size: 46 align: 1 atomic-size: 46 atomic-align: 1
struct { char buf[47]; } size: 47 align: 1 atomic-size: 47 atomic-align: 1
struct { char buf[48]; } size: 48 align: 1 atomic-size: 48 atomic-align: 1
struct { char buf[49]; } size: 49 align: 1 atomic-size: 49 atomic-align: 1
struct { char buf[50]; } size: 50 align: 1 atomic-size: 50 atomic-align: 1
struct { char buf[51]; } size: 51 align: 1 atomic-size: 51 atomic-align: 1
struct { char buf[52]; } size: 52 align: 1 atomic-size: 52 atomic-align: 1
struct { char buf[53]; } size: 53 align: 1 atomic-size: 53 atomic-align: 1
struct { char buf[54]; } size: 54 align: 1 atomic-size: 54 atomic-align: 1
struct { char buf[55]; } size: 55 align: 1 atomic-size: 55 atomic-align: 1
struct { char buf[56]; } size: 56 align: 1 atomic-size: 56 atomic-align: 1
struct { char buf[57]; } size: 57 align: 1 atomic-size: 57 atomic-align: 1
struct { char buf[58]; } size: 58 align: 1 atomic-size: 58 atomic-align: 1
struct { char buf[59]; } size: 59 align: 1 atomic-size: 59 atomic-align: 1
struct { char buf[60]; } size: 60 align: 1 atomic-size: 60 atomic-align: 1
struct { char buf[61]; } size: 61 align: 1 atomic-size: 61 atomic-align: 1
struct { char buf[62]; } size: 62 align: 1 atomic-size: 62 atomic-align: 1
struct { char buf[63]; } size: 63 align: 1 atomic-size: 63 atomic-align: 1
struct { char buf[64]; } size: 64 align: 1 atomic-size: 64 atomic-align: 1
--- alignment-clang-ilp32.txt 2019-08-16 10:22:26.000000000 +0100
+++ alignment-gcc-ilp32.txt 2019-08-16 10:40:34.000000000 +0100
@@ -1,14 +1,14 @@
- _Complex float size: 8 align: 4 atomic-size: 8 atomic-align: 4
- _Complex double size: 16 align: 8 atomic-size: 16 atomic-align: 8
- struct { char buf[0]; } size: 0 align: 1 atomic-size: 1 atomic-align: 1
+ _Complex float size: 8 align: 4 atomic-size: 8 atomic-align: 8
+ _Complex double size: 16 align: 8 atomic-size: 16 atomic-align: 16
+ struct { char buf[0]; } size: 0 align: 1 atomic-size: 0 atomic-align: 1
struct { char buf[1]; } size: 1 align: 1 atomic-size: 1 atomic-align: 1
struct { char buf[2]; } size: 2 align: 1 atomic-size: 2 atomic-align: 2
- struct { char buf[3]; } size: 3 align: 1 atomic-size: 4 atomic-align: 4
+ struct { char buf[3]; } size: 3 align: 1 atomic-size: 3 atomic-align: 1
struct { char buf[4]; } size: 4 align: 1 atomic-size: 4 atomic-align: 4
struct { char buf[5]; } size: 5 align: 1 atomic-size: 5 atomic-align: 1
struct { char buf[6]; } size: 6 align: 1 atomic-size: 6 atomic-align: 1
struct { char buf[7]; } size: 7 align: 1 atomic-size: 7 atomic-align: 1
- struct { char buf[8]; } size: 8 align: 1 atomic-size: 8 atomic-align: 1
+ struct { char buf[8]; } size: 8 align: 1 atomic-size: 8 atomic-align: 8
struct { char buf[9]; } size: 9 align: 1 atomic-size: 9 atomic-align: 1
struct { char buf[10]; } size: 10 align: 1 atomic-size: 10 atomic-align: 1
struct { char buf[11]; } size: 11 align: 1 atomic-size: 11 atomic-align: 1
@@ -16,7 +16,7 @@
struct { char buf[13]; } size: 13 align: 1 atomic-size: 13 atomic-align: 1
struct { char buf[14]; } size: 14 align: 1 atomic-size: 14 atomic-align: 1
struct { char buf[15]; } size: 15 align: 1 atomic-size: 15 atomic-align: 1
-struct { char buf[16]; } size: 16 align: 1 atomic-size: 16 atomic-align: 1
+struct { char buf[16]; } size: 16 align: 1 atomic-size: 16 atomic-align: 16
struct { char buf[17]; } size: 17 align: 1 atomic-size: 17 atomic-align: 1
struct { char buf[18]; } size: 18 align: 1 atomic-size: 18 atomic-align: 1
struct { char buf[19]; } size: 19 align: 1 atomic-size: 19 atomic-align: 1
--- alignment-clang-ilp32d.txt 2019-08-16 10:39:44.000000000 +0100
+++ alignment-gcc-ilp32d.txt 2019-08-16 10:40:22.000000000 +0100
@@ -1,14 +1,14 @@
- _Complex float size: 8 align: 4 atomic-size: 8 atomic-align: 4
- _Complex double size: 16 align: 8 atomic-size: 16 atomic-align: 8
- struct { char buf[0]; } size: 0 align: 1 atomic-size: 1 atomic-align: 1
+ _Complex float size: 8 align: 4 atomic-size: 8 atomic-align: 8
+ _Complex double size: 16 align: 8 atomic-size: 16 atomic-align: 16
+ struct { char buf[0]; } size: 0 align: 1 atomic-size: 0 atomic-align: 1
struct { char buf[1]; } size: 1 align: 1 atomic-size: 1 atomic-align: 1
struct { char buf[2]; } size: 2 align: 1 atomic-size: 2 atomic-align: 2
- struct { char buf[3]; } size: 3 align: 1 atomic-size: 4 atomic-align: 4
+ struct { char buf[3]; } size: 3 align: 1 atomic-size: 3 atomic-align: 1
struct { char buf[4]; } size: 4 align: 1 atomic-size: 4 atomic-align: 4
struct { char buf[5]; } size: 5 align: 1 atomic-size: 5 atomic-align: 1
struct { char buf[6]; } size: 6 align: 1 atomic-size: 6 atomic-align: 1
struct { char buf[7]; } size: 7 align: 1 atomic-size: 7 atomic-align: 1
- struct { char buf[8]; } size: 8 align: 1 atomic-size: 8 atomic-align: 1
+ struct { char buf[8]; } size: 8 align: 1 atomic-size: 8 atomic-align: 8
struct { char buf[9]; } size: 9 align: 1 atomic-size: 9 atomic-align: 1
struct { char buf[10]; } size: 10 align: 1 atomic-size: 10 atomic-align: 1
struct { char buf[11]; } size: 11 align: 1 atomic-size: 11 atomic-align: 1
@@ -16,7 +16,7 @@
struct { char buf[13]; } size: 13 align: 1 atomic-size: 13 atomic-align: 1
struct { char buf[14]; } size: 14 align: 1 atomic-size: 14 atomic-align: 1
struct { char buf[15]; } size: 15 align: 1 atomic-size: 15 atomic-align: 1
-struct { char buf[16]; } size: 16 align: 1 atomic-size: 16 atomic-align: 1
+struct { char buf[16]; } size: 16 align: 1 atomic-size: 16 atomic-align: 16
struct { char buf[17]; } size: 17 align: 1 atomic-size: 17 atomic-align: 1
struct { char buf[18]; } size: 18 align: 1 atomic-size: 18 atomic-align: 1
struct { char buf[19]; } size: 19 align: 1 atomic-size: 19 atomic-align: 1
--- alignment-clang-lp64.txt 2019-08-16 09:45:16.000000000 +0100
+++ alignment-gcc-lp64.txt 2019-08-16 10:40:58.000000000 +0100
@@ -1,13 +1,13 @@
_Complex float size: 8 align: 4 atomic-size: 8 atomic-align: 8
- _Complex double size: 16 align: 8 atomic-size: 16 atomic-align: 8
- struct { char buf[0]; } size: 0 align: 1 atomic-size: 1 atomic-align: 1
+ _Complex double size: 16 align: 8 atomic-size: 16 atomic-align: 16
+ struct { char buf[0]; } size: 0 align: 1 atomic-size: 0 atomic-align: 1
struct { char buf[1]; } size: 1 align: 1 atomic-size: 1 atomic-align: 1
struct { char buf[2]; } size: 2 align: 1 atomic-size: 2 atomic-align: 2
- struct { char buf[3]; } size: 3 align: 1 atomic-size: 4 atomic-align: 4
+ struct { char buf[3]; } size: 3 align: 1 atomic-size: 3 atomic-align: 1
struct { char buf[4]; } size: 4 align: 1 atomic-size: 4 atomic-align: 4
- struct { char buf[5]; } size: 5 align: 1 atomic-size: 8 atomic-align: 8
- struct { char buf[6]; } size: 6 align: 1 atomic-size: 8 atomic-align: 8
- struct { char buf[7]; } size: 7 align: 1 atomic-size: 8 atomic-align: 8
+ struct { char buf[5]; } size: 5 align: 1 atomic-size: 5 atomic-align: 1
+ struct { char buf[6]; } size: 6 align: 1 atomic-size: 6 atomic-align: 1
+ struct { char buf[7]; } size: 7 align: 1 atomic-size: 7 atomic-align: 1
struct { char buf[8]; } size: 8 align: 1 atomic-size: 8 atomic-align: 8
struct { char buf[9]; } size: 9 align: 1 atomic-size: 9 atomic-align: 1
struct { char buf[10]; } size: 10 align: 1 atomic-size: 10 atomic-align: 1
@@ -16,7 +16,7 @@
struct { char buf[13]; } size: 13 align: 1 atomic-size: 13 atomic-align: 1
struct { char buf[14]; } size: 14 align: 1 atomic-size: 14 atomic-align: 1
struct { char buf[15]; } size: 15 align: 1 atomic-size: 15 atomic-align: 1
-struct { char buf[16]; } size: 16 align: 1 atomic-size: 16 atomic-align: 1
+struct { char buf[16]; } size: 16 align: 1 atomic-size: 16 atomic-align: 16
struct { char buf[17]; } size: 17 align: 1 atomic-size: 17 atomic-align: 1
struct { char buf[18]; } size: 18 align: 1 atomic-size: 18 atomic-align: 1
struct { char buf[19]; } size: 19 align: 1 atomic-size: 19 atomic-align: 1
--- alignment-clang-lp64d.txt 2019-08-16 09:46:58.000000000 +0100
+++ alignment-gcc-lp64d.txt 2019-08-16 10:41:08.000000000 +0100
@@ -1,13 +1,13 @@
_Complex float size: 8 align: 4 atomic-size: 8 atomic-align: 8
- _Complex double size: 16 align: 8 atomic-size: 16 atomic-align: 8
- struct { char buf[0]; } size: 0 align: 1 atomic-size: 1 atomic-align: 1
+ _Complex double size: 16 align: 8 atomic-size: 16 atomic-align: 16
+ struct { char buf[0]; } size: 0 align: 1 atomic-size: 0 atomic-align: 1
struct { char buf[1]; } size: 1 align: 1 atomic-size: 1 atomic-align: 1
struct { char buf[2]; } size: 2 align: 1 atomic-size: 2 atomic-align: 2
- struct { char buf[3]; } size: 3 align: 1 atomic-size: 4 atomic-align: 4
+ struct { char buf[3]; } size: 3 align: 1 atomic-size: 3 atomic-align: 1
struct { char buf[4]; } size: 4 align: 1 atomic-size: 4 atomic-align: 4
- struct { char buf[5]; } size: 5 align: 1 atomic-size: 8 atomic-align: 8
- struct { char buf[6]; } size: 6 align: 1 atomic-size: 8 atomic-align: 8
- struct { char buf[7]; } size: 7 align: 1 atomic-size: 8 atomic-align: 8
+ struct { char buf[5]; } size: 5 align: 1 atomic-size: 5 atomic-align: 1
+ struct { char buf[6]; } size: 6 align: 1 atomic-size: 6 atomic-align: 1
+ struct { char buf[7]; } size: 7 align: 1 atomic-size: 7 atomic-align: 1
struct { char buf[8]; } size: 8 align: 1 atomic-size: 8 atomic-align: 8
struct { char buf[9]; } size: 9 align: 1 atomic-size: 9 atomic-align: 1
struct { char buf[10]; } size: 10 align: 1 atomic-size: 10 atomic-align: 1
@@ -16,7 +16,7 @@
struct { char buf[13]; } size: 13 align: 1 atomic-size: 13 atomic-align: 1
struct { char buf[14]; } size: 14 align: 1 atomic-size: 14 atomic-align: 1
struct { char buf[15]; } size: 15 align: 1 atomic-size: 15 atomic-align: 1
-struct { char buf[16]; } size: 16 align: 1 atomic-size: 16 atomic-align: 1
+struct { char buf[16]; } size: 16 align: 1 atomic-size: 16 atomic-align: 16
struct { char buf[17]; } size: 17 align: 1 atomic-size: 17 atomic-align: 1
struct { char buf[18]; } size: 18 align: 1 atomic-size: 18 atomic-align: 1
struct { char buf[19]; } size: 19 align: 1 atomic-size: 19 atomic-align: 1
// This allows you to check the alignment of various strangely-sized/aligned
// types, with and without a surrounding _Atomic specifier. This is used
// to show you what the compiler thinks your atomic alignments should be.
#include <stdio.h>
#define SHOW_ALIGN(t) \
printf("%24s\tsize: %2zu\talign: %2zu\tatomic-size: %2zu\tatomic-align: %2zu\n", \
#t, sizeof(t), _Alignof(t), sizeof(_Atomic(t)), _Alignof(_Atomic(t)));
int main(void) {
SHOW_ALIGN(_Complex float);
SHOW_ALIGN(_Complex double);
SHOW_ALIGN(struct { char buf[0]; });
SHOW_ALIGN(struct { char buf[1]; });
SHOW_ALIGN(struct { char buf[2]; });
SHOW_ALIGN(struct { char buf[3]; });
SHOW_ALIGN(struct { char buf[4]; });
SHOW_ALIGN(struct { char buf[5]; });
SHOW_ALIGN(struct { char buf[6]; });
SHOW_ALIGN(struct { char buf[7]; });
SHOW_ALIGN(struct { char buf[8]; });
SHOW_ALIGN(struct { char buf[9]; });
SHOW_ALIGN(struct { char buf[10]; });
SHOW_ALIGN(struct { char buf[11]; });
SHOW_ALIGN(struct { char buf[12]; });
SHOW_ALIGN(struct { char buf[13]; });
SHOW_ALIGN(struct { char buf[14]; });
SHOW_ALIGN(struct { char buf[15]; });
SHOW_ALIGN(struct { char buf[16]; });
SHOW_ALIGN(struct { char buf[17]; });
SHOW_ALIGN(struct { char buf[18]; });
SHOW_ALIGN(struct { char buf[19]; });
SHOW_ALIGN(struct { char buf[20]; });
SHOW_ALIGN(struct { char buf[21]; });
SHOW_ALIGN(struct { char buf[22]; });
SHOW_ALIGN(struct { char buf[23]; });
SHOW_ALIGN(struct { char buf[24]; });
SHOW_ALIGN(struct { char buf[25]; });
SHOW_ALIGN(struct { char buf[26]; });
SHOW_ALIGN(struct { char buf[27]; });
SHOW_ALIGN(struct { char buf[28]; });
SHOW_ALIGN(struct { char buf[29]; });
SHOW_ALIGN(struct { char buf[30]; });
SHOW_ALIGN(struct { char buf[31]; });
SHOW_ALIGN(struct { char buf[32]; });
SHOW_ALIGN(struct { char buf[33]; });
SHOW_ALIGN(struct { char buf[34]; });
SHOW_ALIGN(struct { char buf[35]; });
SHOW_ALIGN(struct { char buf[36]; });
SHOW_ALIGN(struct { char buf[37]; });
SHOW_ALIGN(struct { char buf[38]; });
SHOW_ALIGN(struct { char buf[39]; });
SHOW_ALIGN(struct { char buf[40]; });
SHOW_ALIGN(struct { char buf[41]; });
SHOW_ALIGN(struct { char buf[42]; });
SHOW_ALIGN(struct { char buf[43]; });
SHOW_ALIGN(struct { char buf[44]; });
SHOW_ALIGN(struct { char buf[45]; });
SHOW_ALIGN(struct { char buf[46]; });
SHOW_ALIGN(struct { char buf[47]; });
SHOW_ALIGN(struct { char buf[48]; });
SHOW_ALIGN(struct { char buf[49]; });
SHOW_ALIGN(struct { char buf[50]; });
SHOW_ALIGN(struct { char buf[51]; });
SHOW_ALIGN(struct { char buf[52]; });
SHOW_ALIGN(struct { char buf[53]; });
SHOW_ALIGN(struct { char buf[54]; });
SHOW_ALIGN(struct { char buf[55]; });
SHOW_ALIGN(struct { char buf[56]; });
SHOW_ALIGN(struct { char buf[57]; });
SHOW_ALIGN(struct { char buf[58]; });
SHOW_ALIGN(struct { char buf[59]; });
SHOW_ALIGN(struct { char buf[60]; });
SHOW_ALIGN(struct { char buf[61]; });
SHOW_ALIGN(struct { char buf[62]; });
SHOW_ALIGN(struct { char buf[63]; });
SHOW_ALIGN(struct { char buf[64]; });
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment