Improve the test in bitfields.m4

Using a named bitfield with a width more than 0 means we won't hit
weirdness caused by the bitfield not really needing to exist.  Changing
int to long long means we won't have trouble with some arch where size
of int is 1 or 2.

libobjc/ChangeLog:

2015-05-04  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* configure: Regenerate.

config/ChangeLog:

2015-05-04  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* bitfields.m4: Change int to long long, and use bitfields of
	width 1 instead of 0.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@222794 138bc75d-0d04-0410-961f-82ee72b054a4
This commit is contained in:
tbsaunde 2015-05-05 03:41:53 +00:00
parent edfc04e760
commit 690b050a17
4 changed files with 15 additions and 8 deletions

View File

@ -1,3 +1,8 @@
2015-05-04 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* bitfields.m4: Change int to long long, and use bitfields of
width 1 instead of 0.
2015-05-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* bitfields.m4: New file.

View File

@ -13,10 +13,9 @@ AC_DEFUN([gt_BITFIELD_TYPE_MATTERS],
AC_CACHE_CHECK([if the type of bitfields matters], gt_cv_bitfield_type_matters,
[
AC_TRY_COMPILE(
[struct foo1 { char x; char :0; char y; };
struct foo2 { char x; int :0; char y; };
int foo1test[ sizeof (struct foo1) == 2 ? 1 : -1 ];
int foo2test[ sizeof (struct foo2) == 5 ? 1 : -1]; ],
[struct foo1 { char x; char y:1; char z; };
struct foo2 { char x; long long int y:1; char z; };
int foo1test[ sizeof (struct foo1) < sizeof (struct foo2) ? 1 : -1 ]; ],
[], gt_cv_bitfield_type_matters=yes, gt_cv_bitfield_type_matters=no)
])
if test $gt_cv_bitfield_type_matters = yes; then

View File

@ -1,3 +1,7 @@
2015-05-04 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* configure: Regenerate.
2015-05-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* acinclude.m4: Include bitfields.m4.

7
libobjc/configure vendored
View File

@ -11539,10 +11539,9 @@ else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
struct foo1 { char x; char :0; char y; };
struct foo2 { char x; int :0; char y; };
int foo1test[ sizeof (struct foo1) == 2 ? 1 : -1 ];
int foo2test[ sizeof (struct foo2) == 5 ? 1 : -1];
struct foo1 { char x; char y:1; char z; };
struct foo2 { char x; long long int y:1; char z; };
int foo1test[ sizeof (struct foo1) < sizeof (struct foo2) ? 1 : -1 ];
int
main ()
{