Random standard-conforming known things that should be added to pcc:
- Currently all known usable C99 stuff is added.
Internal cleanups:
Cleanup prototype parsing and checking.
Ensure that the instruction matcher do not assume that it will reclaim a register if a direct match of something else than a register is done as a leg node. This may require additions to visit and su fields in table and node.
Teach the register allocator how to allocate multiple registers at once. This is not the same as register pairs; pairing is handled as a separate register class. This is used for example when a type is not supported by the underlying hardware, like long long on i386 or long on pdp11.
GCC compatibility:
PCC has GCC compatibility enabled by default, but there are a number of language constructs that may not be fully implemented, like attributes.
There's similar work needed in the C preprocessor area. #pragmas are the first thing that comes to mind.
Portability:
The i386 and amd64 are now stable enough to build most C programs, including PCC itself. More work is needed to make it available in other platforms, especially MIPS and ARM.
Testing PCC in more recent versions of supported operating systems, especially the BSD flavors.