Synopsis - Issue Tracker

Bug99 Editing

Title Problem parsing C structs (typedefs?)
Created on 2006-04-01.01:00:08 by neiljp, last changed 2006-04-02.22:19:35 by stefan.
assigned to stefan priority high
type behavior severity normal
components C parser platform GNU/Linux
status closed resolution fixed
depends on superseded by
Add Comment:
File
CC List:? neiljp, stefan

Messages
Author: neiljp Date: 2006-04-01.01:00:07
After manually 'fix'ing the problems from bug 98, I was left with errors such as this (here some from parsing aalib.h):

Symbol already defined : definition of _IO_FILE at /usr/include/stdio.h:142
previously defined at /usr/include/libio.h:328
Symbol already defined : definition of _IO_FILE at /usr/include/stdio.h:143
previously defined at /usr/include/libio.h:328
Symbol already defined : definition of _IO_FILE at /usr/include/stdio.h:144
previously defined at /usr/include/libio.h:328
Symbol already defined : definition of aa_linkedlist at /usr/include/aalib.h:282
previously defined at /usr/include/aalib.h:281
Symbol already defined : definition of aa_driver at /usr/include/aalib.h:298
previously defined at /usr/include/aalib.h:285

Considering specifically the line 281/282 conflict, this contains the lines:

typedef struct aa_linkedlist aa_linkedlist;
typedef struct aa_linkedlist aa_reclist;

Synopsis claims that aa_linkedlist is 'defined' again on 282 as a duplicate of 281. Clearly this is OK C code - this is a bug in the parser.
Author: stefan Date: 2006-04-01.21:23:51
Indeed, I can reproduce this. Will work on a fix...
Author: stefan Date: 2006-04-02.03:44:05
rev:1658 'fixes' this for me. The error stems from
the symbol factory which doesn't understand that
symbols can indeed be declared twice this way.
For now I disabled symbol table generation entirely,
as on this branch it isn't used anyways.

The main trunk needs more investigation, but since
the relevant code there is quite different I'd
rather open a new bug if the problem shows up there, too.
Author: neiljp Date: 2006-04-02.22:13:00
This seems to be fixed now, after an svn update and rebuild.

For reference, processing aalib.h now gives the previous errors about include paths (bug98), finishing with:
ucpp returned error flag. ignoring error.
ParseError: ('size_t',)

I'm assuming this is either related to the include problem or a new bug in any case.
History
Date User Action Args
2006-04-01 01:00:09neiljpcreate
2006-04-01 21:23:53stefansetstatus: new
assignedto: (no value)
messages: + msg524
bug_type: (no value)
nosy: + stefan
2006-04-02 03:44:07stefansetmessages: + msg525
2006-04-02 22:13:01neiljpsetmessages: + msg527
2006-04-02 22:19:35stefansetstatus: open
resolution: (no value)