aboutsummaryrefslogtreecommitdiff
path: root/TODO.rst
blob: 6981f4860016d0256bbe65e8a13fadc3d7439fc8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
TODO
====

- More detailed checking in regex for:

  - char constant (done)
  - string constant (done)

- Fix:

  - check global definition (if type is complete) when semantic analysis finishes
  - local function declaration is not in a local scope (external linkage issue) (will not be fixed)
  - incomplete type issues
    - function **definition** requires complete return type (function declaration does not) (done)
    - array requires **complete** elem type (done)
    - struct or union requires **complete** fields (done)
    - pointer may **allow incomplete** type (done)
  - calculate type memory footprint at proper time
  - function to 'pointer to function' conversion (according the std 6.3.2/4) (done)
  - vague var table management (done)
  - incorrect address reference ``&``
  - const function name (done)
  - remove the redundant edge from blocks that break a loop
  - ``<<`` operation in pre-calculation

- Not Implemented:

  - complex type name (to be in agreement with complex decl) (done)
  - initializer checking (done)
  - typedef support (via adding mid-rule actions to bision to inform flex) (done)