# Summary Extraction

:::{WARNING}
The framework is rapidly evolving.
The documentation might be out-of-sync with the implementation.
The purpose of this documentation is to give context for upcoming reviews.
:::

## Command-line interface

Two flags control summary extraction:

- `--ssaf-extract-summaries=<name1>,<name2>,...`: Comma-separated list of summary extractor names to enable.
- `--ssaf-tu-summary-file=<path>.<format>`: Output file for the extracted summaries. The file extension selects the serialization format (e.g. `.json`).
- `--ssaf-list-extractors`: List the available summary extractors.
- `--ssaf-list-formats`: List the available serialization formats.

Example invocation:

```bash
clang --ssaf-extract-summaries=MyAwesomeAnalysis \
      --ssaf-tu-summary-file=my-tu-summary.json \
      -c input.cpp -o input.o

clang --ssaf-list-extractors --ssaf-list-formats
```

## Diagnostics

In case the `--ssaf-*` flags are used incorrectly, or some extractor fails to implement the desired serialization format
or just happens to have an error, then the error is forwarded as a `scalable-static-analysis-framework` error.
These errors can be downgraded into warnings using `-Wno-error=scalable-static-analysis-framework`.
These errors can be completely suppressed using `-Wno-scalable-static-analysis-framework`.

See the [diagnostic flags](https://clang.llvm.org/docs/DiagnosticsReference.html#wscalable-static-analysis-framework) for the full list of diagnostics controlled by `-Wscalable-static-analysis-framework`.

