Commit ba436c3b by Eric Botcazou Committed by Eric Botcazou

decl.c (gnat_to_gnu_entity): Do not force BIGGEST_ALIGNMENT when capping the…

decl.c (gnat_to_gnu_entity): Do not force BIGGEST_ALIGNMENT when capping the alignment of records with...

	* decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
	BIGGEST_ALIGNMENT when capping the alignment of records with
	strict alignment and size clause.

From-SVN: r133031
parent 6ab36dac
2008-03-08 Eric Botcazou <ebotcazou@adacore.com> 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
* decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
BIGGEST_ALIGNMENT when capping the alignment of records with
strict alignment and size clause.
2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
* lang-specs.h: Pass -gnatwa if -Wall is passed. * lang-specs.h: Pass -gnatwa if -Wall is passed.
* misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
and -Wuninitialized. and -Wuninitialized.
...@@ -2575,8 +2575,9 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition) ...@@ -2575,8 +2575,9 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
&& Known_Static_Esize (gnat_entity)) && Known_Static_Esize (gnat_entity))
{ {
unsigned int raw_size = UI_To_Int (Esize (gnat_entity)); unsigned int raw_size = UI_To_Int (Esize (gnat_entity));
TYPE_ALIGN (gnu_type) unsigned int raw_align = raw_size & -raw_size;
= MIN (BIGGEST_ALIGNMENT, raw_size & -raw_size); if (raw_align < BIGGEST_ALIGNMENT)
TYPE_ALIGN (gnu_type) = raw_align;
} }
else else
TYPE_ALIGN (gnu_type) = 0; TYPE_ALIGN (gnu_type) = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment