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]

gcc/expmed.c 1.63->1.64



Hi There,

  I have finally got around to tracking down what has been generating
incorrect code on the ARM with the latest CVS gcc builds.  After a about
14 clean gcc builds, it appears that your change to gcc/expmed.c has
broken at least the ARM port (and probably all other ports that have
limitations on word alignment).  So here is the commit that broke things:

2000-09-15  Richard Henderson  <rth@cygnus.com>

        * expmed.c (store_bit_field): Consider naturally aligned
        memory for direct reference.

revision 1.64
date: 2000/09/15 11:13:04;  author: rth;  state: Exp;  lines: +15 -12
branches:  1.64.2;
        * expmed.c (store_bit_field): Consider naturally aligned
        memory for direct reference.
  
  The test case that I am using on the ARM is:

---- test.c ----
typedef struct s {
        unsigned short  a       __attribute__ ((packed));
        unsigned int    b       __attribute__ ((packed));
} s                             __attribute__ ((packed));

s t;

void
f(unsigned int b)
{
        t.b = b;
}
----------------

  This will generate a word store at a non-aligned address no matter what
options you give gcc.

	Thanks,

		CraigN
--
      Craig Newell                email: CraigN@ieee.org
      Free Spirit                 icbm:  N 42°38'47" W 71°18'19"



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