struct / union in initializer, RFE #901.
[sdcc.git] / sdcc / support / cpp / config / bitfields.m4
blob8185cd302a9c6a9047431f52dd769ad77e1135cd
1 dnl Copyright (C) 2015 Free Software Foundation, Inc.
2 dnl This file is free software, distributed under the terms of the GNU
3 dnl General Public License.  As a special exception to the GNU General
4 dnl Public License, this file may be distributed as part of a program
5 dnl that contains a configuration script generated by Autoconf, under
6 dnl the same distribution terms as the rest of that program.
8 # Define HAVE_BITFIELD_TYPE_MATTERS if the type of bitfields effects their
9 # alignment.
11 AC_DEFUN([gt_BITFIELD_TYPE_MATTERS],
13   AC_CACHE_CHECK([if the type of bitfields matters], gt_cv_bitfield_type_matters,
14   [
15     AC_TRY_COMPILE(
16       [struct foo1 { char x; char y:1; char z; };
17 struct foo2 { char x; long long int y:1; char z; };
18 int foo1test[ sizeof (struct foo1) < sizeof (struct foo2) ? 1 : -1 ]; ],
19       [], gt_cv_bitfield_type_matters=yes, gt_cv_bitfield_type_matters=no)
20   ])
21   if test $gt_cv_bitfield_type_matters = yes; then
22     AC_DEFINE(HAVE_BITFIELD_TYPE_MATTERS, 1,
23       [Define if the type of bitfields effects alignment.])
24   fi