some MSVC extensions. It also provides many useful analyses for warnings. It
uses libFIRM, which provides a SSA-based intermediate representation in form of
explicit dependency graphs, for optimization and code generation. Parsing is
done with a handwritten recursive descent parser. The AST representation is
straightforward, so it can be used for other purposes than code generation.
* fast recursive descent parser, parses C89 and C99
* handles most GCC extensions, f.e. __attribute__, inline assembler,
computed goto, statement expressions
* handles some MSVC extensions (like declspec)
* provides many useful warnings
* format string checker for char and wchar_t
* unreachable code analysis
* missing return statement check, which pinpoints exact location(s)
* write-only/-self variables detection
* missing and redundant forward declarations
* most warnings switches, which are available for GCC
* provides concise messages in case of error, for example when encountering
misspelled typenames
* compiler driver compatible with with GCC (-fxxx, -Wxxx, -M, ...)
* uses libFIRM for optimization and code generation (devel/libfirm)
WWW: http://www.libfirm.org
Submitted by: Christoph Mallon <christoph.mallon at gmx.de>