use new firm timing facilities
[cparser] / TODO
1 Initializer rewrite:
2 - determining of array size for array types of unspecified length is wrong in
3   presence of designators and unions
4
5 Refactoring:
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
9
10 Lexer:
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.
15
16 Parser:
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
24   module and replacable
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
29   them.
30 - check semantic for functions declared/defined in global scope and declared
31   again in a local scope
32
33 ast2firm:
34 - handle non-constant initializers
35 - output source file positions for panics...
36 - handle bitfield members with 0 correctly (standard says they finish the
37   current unit)
38
39 Missing Warnings:
40 * dead assignments (int x = 5; x = bla(); -> dead assignment at x = 5;)
41 * unused label
42 *