diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2009-03-27 22:33:16 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2009-03-27 15:33:16 -0700 |
commit | d9223014f991d207719b03fca8d8433edc58f27a (patch) | |
tree | 730765d79cb3b96fe1aa99617f3d96390ff336d7 /gcc/tree.h | |
parent | 689b689c17aa25f3ba3e1390a5bf513bd586c46a (diff) | |
download | gcc-d9223014f991d207719b03fca8d8433edc58f27a.zip gcc-d9223014f991d207719b03fca8d8433edc58f27a.tar.gz gcc-d9223014f991d207719b03fca8d8433edc58f27a.tar.bz2 |
re PR target/39323 (MAX_OFILE_ALIGNMENT in elfos.h is too big)
gcc/
2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
PR c/39323
* c-common.c (handle_aligned_attribute): Properly check alignment
overflow. Use (1U << i) instead of (1 << i).
* emit-rtl.c (get_mem_align_offset): Use "unsigned int" for
align.
* expr.h (get_mem_align_offset): Updated.
* tree.h (tree_decl_common): Change align to "unsigned int" and
move it before pointer_alias_set.
gcc/ada/
2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
PR c/39323
* gcc-interface/utils.c (create_field_decl): Use "unsigned int"
on bit_align.
gcc/testsuite/
2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
PR c/39323
* gcc.dg/pr39323-1.c: New.
* gcc.dg/pr39323-2.c: Likewise.
* gcc.dg/pr39323-3.c: Likewise.
From-SVN: r145136
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -2726,10 +2726,9 @@ struct tree_decl_common GTY(()) unsigned gimple_reg_flag : 1; /* In a DECL with pointer type, set if no TBAA should be done. */ unsigned no_tbaa_flag : 1; - /* Padding so that 'align' can be on a 32-bit boundary. */ + /* Padding so that 'off_align' can be on a 32-bit boundary. */ unsigned decl_common_unused : 2; - unsigned int align : 24; /* DECL_OFFSET_ALIGN, used only for FIELD_DECLs. */ unsigned int off_align : 8; @@ -2738,6 +2737,9 @@ struct tree_decl_common GTY(()) tree attributes; tree abstract_origin; + /* DECL_ALIGN. It should have the same size as TYPE_ALIGN. */ + unsigned int align; + alias_set_type pointer_alias_set; /* Points to a structure whose details depend on the language in use. */ struct lang_decl *lang_specific; |