Ok, I'll check this.
a snippet of a complete code will help greatly :)
~d

On Monday 02 February 2004 19:44, G Halkes wrote:
> I tried it with the mspgcc 3.2.2 release that is
> currently in the download section at sourceforge with
> the gcc 3.2.2 sources, but since setting the
> STRICT_ALIGNMENT macro to 1 solves the problems, and
> all the versions in CVS of the header file that I
> looked at (including the latest for gcc 3.4) have it
> set to 0, I think you will find the same behaviour
> with all versions of the compiler.
>
> This opinion is based on the description of the macro
> I quoted earlier.
>
> G. Halkes
>
> --- Dmitry <[email protected]> wrote:
> > hm....
> > which gcc's version/build?
> > ~d
> >
> > On Monday 02 February 2004 18:10, G Halkes wrote:
> > > Hi,
> > >
> > > What I ment was, if you use the following code:
> > >
> > > struct unaligned {
> > > char first;
> > > int second;
> > > } __attribute__((packed));
> > >
> > > union test {
> > > struct unaligned data;
> > > char cdata[3];
> > > };
> > >
> > > void function() {
> > > union test test;
> > > int data, tmp;
> > > test.cdata[0] = 0x1;
> > > test.cdata[1] = 0x2;
> > > test.cdata[2] = 0x3;
> > >
> > > data = test.data.second;
> > >       memcpy(&tmp, &test.data.second, 2);
> > > }
> > >
> > > data will contain the value 0x201, and not the
> >
> > value
> >
> > > 0x302 as it should. The same goes for tmp (try it.
> >
> > I
> >
> > > did and got the wrong results). The reason the
> >
> > memcpy
> >
> > > goes wrong is because it is replaced by a single
> >
> > word
> >
> > > move instead of two byte moves.
> > >
> > > When I built gcc with the STRICT_ALIGNMENT macro
> >
> > set
> >
> > > to 1, I got the value 0x302 which is correct.
> > >
> > > G. Halkes
> > >
> > > PS: I used a printf routine to output the results
> >
> > to a
> >
> > > serial port to see the result. I removed it from
> >
> > the
> >
> > > code because it isn't standard. Just in case your
> > > wondering.
> > >
> > > >for built-ins gcc takes into account alignement.
> > > > So, if gcc knows, that something aligned by 2 it
> > >
> > > uses >world operations,
> > >
> > > > otherwise byte ones.
> > > >
> > > > Packed does not mean the structure misaligned.
> > > > It depends on data types of the structure.
> > > > For example:
> > > >
> > > > struct {
> > > > char a;
> > > > int b;
> > > > };
> > > >
> > > > isn't aligned by world boundary.
> > > >
> > > > struct { int a,b}
> > > > aligned.
> > > >
> > > > Even more -- if the structure aligned and its
> >
> > size
> >
> > > is >not even, gcc will use
> > >
> > > > world operations for thhis structure size()-1
> >
> > and
> >
> > > >byte operation for a last
> > > > byte of it.
> > >
> > > __________________________________
> > > Do you Yahoo!?
> > > Yahoo! SiteBuilder - Free web site building tool.
> >
> > Try it!
> >
> > > http://webhosting.yahoo.com/ps/sb/
>
> -------------------------------------------------------
>
> > > The SF.Net email is sponsored by EclipseCon 2004
> > > Premiere Conference on Open Tools Development and
> >
> > Integration
> >
> > > See the breadth of Eclipse activity. February 3-5
> >
> > in Anaheim, CA.
> >
> > > http://www.eclipsecon.org/osdn
> > > _______________________________________________
> > > Mspgcc-users mailing list
> > > [email protected]
>
> https://lists.sourceforge.net/lists/listinfo/mspgcc-users
>
> > --
>
> /*****************************************************************
>
> >      ("`-''-/").___..--''"`-._     (\   Dimmy the
> > Wild     UA1ACZ
> >       `6_ 6  )   `-.  (     ).`-.__.`)  State
> > Polytechnical Univ.
> >       (_Y_.)'  ._   )  `._ `. ``-..-'
> > Radio-Physics Departament
> >     _..`--'_..-_/  /--'_.' ,'           Saint
> > Petersburg,  Russia
> >    (il),-''  (li),'  ((!.-'             +7 (812)
> > 5403923, 5585314
>
> *****************************************************************/
>
>
>
>
> -------------------------------------------------------
>
> > The SF.Net email is sponsored by EclipseCon 2004
> > Premiere Conference on Open Tools Development and
> > Integration
> > See the breadth of Eclipse activity. February 3-5 in
> > Anaheim, CA.
> > http://www.eclipsecon.org/osdn
> > _______________________________________________
> > Mspgcc-users mailing list
> > [email protected]
>
> https://lists.sourceforge.net/lists/listinfo/mspgcc-users
>
>
> __________________________________
> Do you Yahoo!?
> Yahoo! SiteBuilder - Free web site building tool. Try it!
> http://webhosting.yahoo.com/ps/sb/
>
>
> -------------------------------------------------------
> The SF.Net email is sponsored by EclipseCon 2004
> Premiere Conference on Open Tools Development and Integration
> See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
> http://www.eclipsecon.org/osdn
> _______________________________________________
> Mspgcc-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mspgcc-users

-- 
/*****************************************************************
     ("`-''-/").___..--''"`-._     (\   Dimmy the Wild     UA1ACZ
      `6_ 6  )   `-.  (     ).`-.__.`)  State Polytechnical Univ.
      (_Y_.)'  ._   )  `._ `. ``-..-'   Radio-Physics Departament
    _..`--'_..-_/  /--'_.' ,'           Saint Petersburg,  Russia
   (il),-''  (li),'  ((!.-'             +7 (812) 5403923, 5585314
 *****************************************************************/


Reply via email to