ref: b64ef1259866bf8d967c6df793bc4fb79c0078ba
dir: /cc1/TODO/
* Verify correctness in initializators * emit automatic initializators * Implement bitfields * Define data structure shared between cc1 and cc2 with the type information * Rewrite error recovery code, and ensure correct state after recovery * Parse correctly all integer and float constants * Add C99 features (almost all the new features of C99 are missed) * Add correct emit for any kind of constant * Add warning when some ANSI limit is violated. * Free memory in emit after some error happened. * Rewrite initializers to deal with the idea of "current object" * Add some test about pointer airthmetic. * Merge all the definitions of the same string * Do not assign identifierss until symbols are emitted. This change will avoid identifiers that are not emitted.