F diff --git a/parse/parse_declaration.c b/parse/parse_declaration.c --- a/parse/parse_declaration.c +++ b/parse/parse_declaration.cif(get_and_check(translation_data,KW_COLUMN)){/*unnamed bitfields are possible*/- struct Denoted_Object *obj;- obj=(struct Denoted_Object*)get_denoted_object(NULL,SC_NONE,prototype->type);- obj->object->type=(struct Type*)get_type_bitfield(prototype->type,parse_expression(translation_data,scope));- return (struct Denoted*)obj;+ hold=get_denoted_object(NULL,SC_NONE,prototype->type);}else{hold=parse_declarator(translation_data,scope,prototype);- if(get_and_check(translation_data,KW_COLUMN))+ if(!get_and_check(translation_data,KW_COLUMN)){- if(hold->denotation==DT_Object)- {- /*TODO make bitfield*/- return hold;- }else- {- /*TODO error*/- push_translation_error("bitfield must be ",translation_data);- return get_denoted_error(hold);- }- }else- {- return hold;+ push_translation_error("column expected in struct declaration",translation_data);+ return get_denoted_error(hold);}}+ /*TODO move error detection in get_type_bitfield*/+ ((struct Denoted_Object*)hold)->object->type=(struct Type*)get_type_bitfield(prototype->type,parse_expression(translation_data,scope));+ return hold;}/*enum-specifier-finishF diff --git a/tests/test3.c b/tests/test3.c --- a/tests/test3.c +++ b/tests/test3.cchar asdf;#endif+ struct A+ {+ int c:123;+ }a;extern int external_int;static int static_int;static int fib(int n)