r148045 - in /trunk/gcc: ChangeLog ada/ChangeLo...

hainque@gcc.gnu.org hainque@gcc.gnu.org
Mon Jun 1 14:42:00 GMT 2009


Author: hainque
Date: Mon Jun  1 14:42:56 2009
New Revision: 148045

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=148045
Log:
	* tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
	to be processed as a bitfield for constructor output purposes.
	* output.h (initializer_constant_valid_for_bitfield_p): Declare
	new function.
	* varasm.c (oc_local_state): New type, output_constructor
	local state to support communication with helpers.
	(oc_outer_state): New type, output_constructor outer state of
	relevance in recursive calls.
	(output_constructor_array_range): New output_constructor helper,
	extracted code for an array range element.
	(output_constructor_regular_field): New output_constructor helper,
	extracted code for an element that is not a bitfield.
	(output_constructor_bitfield): New output_constructor helper,
	extracted code for a bitfield element.  Accept an OUTER state
	argument for recursive processing.  Recurse on record or array
	CONSTRUCTOR values, possibly past noop conversions.
	(initializer_constant_valid_for_bitfield_p): New predicate. Whether
	VALUE is a valid constant-valued expression for use in a static
	bit-field initializer.
	(output_constructor): Rework to use helpers. Accept and honor an
	OUTER state argument for recursive calls. Return total size. Be
	prepared for nested constructors initializing bitfields.
	(output_constant): Feed OUTER in calls to output_constructor.

	ada/
	* gcc-interface/utils2.c (gnat_build_constructor): Factor
	out code. Use initializer_constant_valid_for_bitfield_p and
	CONSTRUCTOR_BITFIELD_P for bit-fields.

	testsuite/
	* gnat.dg/oconst[1-6].ad[bs]: New tests. Also support for ...
	* gnat.dg/test_oconst.adb: New test.


Added:
    trunk/gcc/testsuite/gnat.dg/oconst1.adb
    trunk/gcc/testsuite/gnat.dg/oconst1.ads
    trunk/gcc/testsuite/gnat.dg/oconst2.adb
    trunk/gcc/testsuite/gnat.dg/oconst2.ads
    trunk/gcc/testsuite/gnat.dg/oconst3.adb
    trunk/gcc/testsuite/gnat.dg/oconst3.ads
    trunk/gcc/testsuite/gnat.dg/oconst4.adb
    trunk/gcc/testsuite/gnat.dg/oconst4.ads
    trunk/gcc/testsuite/gnat.dg/oconst5.adb
    trunk/gcc/testsuite/gnat.dg/oconst5.ads
    trunk/gcc/testsuite/gnat.dg/oconst6.ads
    trunk/gcc/testsuite/gnat.dg/test_oconst.adb
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/ada/ChangeLog
    trunk/gcc/ada/gcc-interface/utils2.c
    trunk/gcc/output.h
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree.h
    trunk/gcc/varasm.c



More information about the Gcc-cvs mailing list