m3-sys/m3cc/gcc-apple/gcc/varasm.c
/* Compute the alignment of variable specified by DECL.
   DONT_OUTPUT_DATA is from assemble_variable.  */
Compute the alignment of variable specified by DECL.
Compute the alignment of variable specified by DECL .
void
align_variable (tree decl, bool dont_output_data)
{
  unsigned int align = DECL_ALIGN (decl);
  if (dont_output_data && DECL_SIZE (decl) == 0
      && TREE_CODE (TREE_TYPE (decl)) == ARRAY_TYPE)
    align = MAX (align, TYPE_ALIGN (TREE_TYPE (TREE_TYPE (decl))));
  if (align > MAX_OFILE_ALIGNMENT)
    {
      warning (0, "alignment of %q+D is greater than maximum object "
               "file alignment.  Using %d", decl,
	       MAX_OFILE_ALIGNMENT/BITS_PER_UNIT);
      align = MAX_OFILE_ALIGNMENT;
    }
  if (! DECL_USER_ALIGN (decl))
    {
#ifdef DATA_ALIGNMENT
      align = DATA_ALIGNMENT (TREE_TYPE (decl), align);
#endif
#ifdef CONSTANT_ALIGNMENT
      if (DECL_INITIAL (decl) != 0 && DECL_INITIAL (decl) != error_mark_node)
	align = CONSTANT_ALIGNMENT (DECL_INITIAL (decl), align);
#endif
    }
  DECL_ALIGN (decl) = align;
}
void align_variable ( tree decl , bool dont_output_data ) { unsigned int align = DECL_ALIGN ( decl ) ; if ( dont_output_data && DECL_SIZE ( decl ) == 0 && TREE_CODE ( TREE_TYPE ( decl ) ) == ARRAY_TYPE ) align = MAX ( align , TYPE_ALIGN ( TREE_TYPE ( TREE_TYPE ( decl ) ) ) ) ; if ( align > MAX_OFILE_ALIGNMENT ) { warning ( 0 , " " " " , decl , MAX_OFILE_ALIGNMENT / BITS_PER_UNIT ) ; align = MAX_OFILE_ALIGNMENT ; } if ( ! DECL_USER_ALIGN ( decl ) ) { #ifdef DATA_ALIGNMENT align = DATA_ALIGNMENT ( TREE_TYPE ( decl ) , align ) ; #endif #ifdef CONSTANT_ALIGNMENT if ( DECL_INITIAL ( decl ) != 0 && DECL_INITIAL ( decl ) != error_mark_node ) align = CONSTANT_ALIGNMENT ( DECL_INITIAL ( decl ) , align ) ; #endif } DECL_ALIGN ( decl ) = align ; }
Compute the alignment of variable specified by DECL.
Compute the alignment of variable specified by DECL .
/* In the case for initialing an array whose length isn't specified,
     where we have not yet been able to do the layout,
     figure out the proper alignment now.  */ /* Some object file formats have a maximum alignment which they support.
     In particular, a.out format supports a maximum alignment of 4.  */ /* On some machines, it is good to increase alignment sometimes.  */ /* Reset the alignment in case we have made it tighter, so we can benefit
     from it in get_pointer_alignment.  */