| project('alignment', 'c', 'cpp') |
| |
| compilers = [meson.get_compiler('c'), meson.get_compiler('cpp')] |
| |
| foreach cc : compilers |
| # These tests should return the same value on all |
| # platforms. If (and when) they don't, fix 'em up. |
| if cc.alignment('char') != 1 |
| error('Alignment of char misdetected.') |
| endif |
| |
| ptr_size = cc.sizeof('void*') |
| dbl_alignment = cc.alignment('double') |
| |
| # These tests are not thorough. Doing this properly |
| # would take a lot of work because it is strongly |
| # platform and compiler dependent. So just check |
| # that they produce something fairly sane. |
| |
| if ptr_size == 8 or ptr_size == 4 |
| message('Size of ptr ok.') |
| else |
| error('Size of ptr misdetected.') |
| endif |
| |
| if dbl_alignment == 8 or dbl_alignment == 4 |
| message('Alignment of double ok.') |
| else |
| error('Alignment of double misdetected.') |
| endif |
| endforeach |