2 - determining of array size for array types of unspecified length is wrong in
3 presence of designators and unions
6 - create an empty_statement_t and use that instead of a NULL pointer in places
7 like if, loop bodys, statements after labels
8 - eliminate target_architecture.h and replace with stuff in lang_features.h
11 - Add preprocessor code
12 - proper handling of different file encodings, parsing non-ascii strings
13 - We could save some space by holding source positions in a separate (somehow
14 compressed table) and only storing pointers to it on the AST.
17 - the expect macros abort functions directly. This leads to some functions
18 not resetting the current context properly (parse_for); expect in expressions
19 suddenly return NULL which triggers asserts
20 - label: declaration; is no valid C99 but we parse it anyway
21 - designator support for initializers
22 - add constant folding code
23 - Refactor code, so code to handle number values (and strings?) is an own
25 - Support some attributes. noreturn, unused, printf, scanf, packed would be
26 interesting candidates
27 - Add columns to source positions
28 - SourcePositions could be stored selectively on expressions that really need
30 - check semantic for functions declared/defined in global scope and declared
31 again in a local scope
32 - print initialisation type_path for initializer errors
35 - handle non-constant initializers
36 - output source file positions for panics...
37 - handle bitfield members with 0 correctly (standard says they finish the
41 * dead assignments (int x = 5; x = bla(); -> dead assignment at x = 5;)