Facebook Clang Plugins
======================
This folder contains the Infer frontend plugin to the [clang compiler ](http://clang.llvm.org/ ) used to process the syntax of source files and export AST information to the Infer frontend.
Structure of the repository
---------------------------
- libtooling : frontend plugins (currently a clang-to-json AST exporter),
- clang-ocaml : OCaml libraries to process the JSON output of frontend plugins,
Quick start
-----------
The plugin requires recent version of the clang compiler, re-compiled from source.
To compile and use the required version of clang, please run ./clang/setup.sh.
Caveat:
- Because of the nature of C++, clang and the plugins need to be compiled with the exact same C++ libraries.
- Also, the default stripping command of clang in release mode breaks plugins.
Once the target compiler is installed, `make test` should run the unit tests.
OCaml users may also run:
```
make -C clang-ocaml test #requires proper ocaml libraries, see included clang-ocaml/README
```
Additional configuration options are available in `Makefile.config` .
Licence
-------
Infer is MIT-licensed.