[U-Boot-Users] mvbc_p board: build warnings
    Wolfgang Denk 
    wd at denx.de
       
    Thu Jul 31 15:26:12 CEST 2008
    
    
  
Hi,
I'm trying to clean up the build warnings for the mvbc_p board.
I've succeded with all but this one:
mvbc_p.c: In function 'mvbc_init_gpio':
mvbc_p.c:124: warning: dereferencing type-punned pointer will break strict-aliasing rules
This relates to the following code:
115         out_be32(&gpio->simple_ddr, SIMPLE_DDR);
116         out_be32(&gpio->simple_dvo, SIMPLE_DVO);
117         out_be32(&gpio->simple_ode, SIMPLE_ODE);
118         out_be32(&gpio->simple_gpioe, SIMPLE_GPIOEN);	<== volatile u8 outo_gpioe;
119
120         out_be32((u32*)&gpio->sint_ode, SINT_ODE);		<== volatile u8 sint_ode;
121         out_be32((u32*)&gpio->sint_ddr, SINT_DDR);		<== volatile u8 sint_ddr;
122         out_be32((u32*)&gpio->sint_dvo, SINT_DVO);		<== volatile u8 sint_dvo;
123         out_be32((u32*)&gpio->sint_inten, SINT_INTEN);	<== volatile u8 sint_inten;
124         out_be32((u32*)&gpio->sint_itype, SINT_ITYPE);	<== volatile u16 sint_itype;
125         out_be32((u32*)&gpio->sint_gpioe, SINT_GPIOEN);	<== volatile u8 outo_gpioe;
I don't know why the warning is only issued for the  "u16"  type  and
not  also for the "u8" ones, but anyway: Is the casting to "u32*" and
using out_be32() here really correct?
I would expect to see some out_be8() and one out_be16() here?
Best regards,
Wolfgang Denk
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"In Christianity neither morality nor religion come into contact with
reality at any point."                          - Friedrich Nietzsche
    
    
More information about the U-Boot
mailing list