This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/20371] Some corner cases of MS bitfields don't work


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-05-04 21:51 -------
Subject: Bug 20371

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	sh-elf-4_1-branch
Changes by:	amylaar@gcc.gnu.org	2005-05-04 21:51:35

Modified files:
	gcc            : ChangeLog tree.h stor-layout.c 

Log message:
	PR middle-end/20371:
	* tree.h (record_layout_info_s): New member prev_packed.
	* stor-layout.c (update_alignment_for_field): Fix comment about
	KNOWN_ALIGN.  For MS bitfields, if we start a new run, make sure
	we start it properly aligned.
	(place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
	to update_alignment_for_field, and recompute it afterwards using
	the alignment of the record.
	When a packed bitfield precedes an MS bitfield, don't add padding
	at the end of the packed bitfield on behalf of the base type of
	the packed bit field.
	Take possible record alignment > BIGGEST_ALIGNMENT into account
	when calculating actual_align.
	Only put packed bit fields into rli->prev_field if they end up
	suitably aligned.
	Update rli->remaining_in_alignment when we have already started a
	run of bit fields and we process a packed bit field.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=sh-elf-4_1-branch&r1=2.8142.2.8&r2=2.8142.2.9
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree.h.diff?cvsroot=gcc&only_with_tag=sh-elf-4_1-branch&r1=1.709&r2=1.709.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/stor-layout.c.diff?cvsroot=gcc&only_with_tag=sh-elf-4_1-branch&r1=1.228.2.1&r2=1.228.2.2



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20371


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]