Hi Anthony,

This is a known bug. See
https://sourceforge.net/tracker/?func=detail&aid=1579664&group_id=599&atid=100599

Maarten


> Try to remove struct keyword from extern struct ... line.
>
> I thing that compiler behaves according to standard, as typedef struct
> typename defines type, so struct keyword should not be used, however
> struct
> tagname ... declares tag, so struct keyword is required.
>
> Ondrej
>
>
>
> -----Original Message-----
> From: Anthony Asterisk [mailto:[email protected]]
> Sent: Wednesday, May 12, 2010 1:57 AM
> To: [email protected]
> Subject: [Sdcc-user] sdcc reports syntax error if struct and typedef
> usesame
> name?
>
>
>
> When I compile this code:
>
>  cat main.c
> #include <string.h>
>
> typedef struct uip_eth_addr {
>   unsigned char addr[6];
> } uip_eth_addr;
>
> extern struct uip_eth_addr uip_ethaddr;
>
> void main (void)
> {
> }
>
> u...@instant-contiki:~/sdcc_bug3$ sdcc main.c
>
> main.c:7: syntax error: token -> 'uip_eth_addr' ; column 26
>
>
> If I simply rename the typedef then it compiles fine:
>
> u...@instant-contiki:~/sdcc_bug3$ !cat
> cat main.c
> #include <string.h>
>
> typedef struct uip_eth_addr {
>   unsigned char addr[6];
> } uip_eth_addr_t;
>
> extern struct uip_eth_addr uip_ethaddr;
>
> void main (void)
> {
> }
> u...@instant-contiki:~/sdcc_bug3$ !sd
> sdcc main.c
>
>
> No syntax error!
>
> Both versions compile with GCC.
>
> so is this:
>
> 1) a limitation of sdcc
> 2) a bug in sdcc
> 3) a non-standard behavror of gcc


------------------------------------------------------------------------------

_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to