Missing and Proposed Features, and Bugs
The following are issues with the current release of CPPX.
Initials (e.g. (TRD)) indicate who owns the issue.
Language and Model Features Not Yet Implemented
In general these features are accepted by the compiler, but they appear
in the output represented in the GCC model instead of in the Datrix model.
- Templates
- New and free
- Initializers of compound structures
- Virtual inheritance
- C++ source file entities and relationships
- Scope relationship (from entity to its enclosing scope)
Other Desired But Unimplemented Features
- Linker
- Options to specify initial size of gd graph.
- Option to suppress GCC leftovers (see above) in the case of errors
or missing features. (Replace them with Datrix error node.)
- Synthesized names for derived types (e.g. *int
or int (*)(int,int) (ex)
- GXL schema for Datrix.
- GXL schema for GD (the union schema).
Current Bug List
- Scope of enumerators should be enumerated type not parent scope
(ex) (AJM)
- Visibility attributes not working properly (ex)
- Entities in a scope are in the reverse order by ArcSon ordinal.
- Except for built-in types which appear on the end of the list in the global namespace.
- Uses of enumerated constants look like uses of integer literals
(ex) (AJM)
- Some redundant and artificial cast calls are not eliminated. (ex?)
- Some references to string literals are artificially complicated. (ex?)
- Type of literal is wrong for ArcBitDim (ex)
- Compound statements don't contain their local type declarations. (ex?) (AJM)
- Virtual inheritance causes funct_type to dump core.
- Method definitions contain an explicit this pointer(ex)
- The "std" namespace not handled properly by gd_reduce.
Technicalities
- Flags on generators to trim real constants
- Bootstrap gd2ta, gd2vcg, and gd2gxl from gd_graph.h.
- Auto grow on string table
- Auto grow on hash table
- Operator nodes should be appropriate subclass of node (i.e.
BinaryOperator, UnaryOperator etc).