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