diff --git a/README.md b/README.md index 53794961fa9d4ede64594172765eacb9a6aa5c5b..69a21e41302bef42a1c3576e17c3c306ab002783 100644 --- a/README.md +++ b/README.md @@ -40,16 +40,16 @@ with `.cpp`, `.C`, `.cxx`, `.c++` or `.cc` will be treated as C++ files. Files ending with `.ii` will be considered as already pre-processed C++ files. Options of the plug-in are the following. -- `-cxx-demangling-full` tells Frama-C to display C++ global - identifiers with their fully-qualified name (e.g. `::A::x`) -- `-cxx-demangling-short` tells Frama-C to display global - C++ identifiers with their unqualified name (e.g. `x`) -- `-cxx-keep-mangling` tells Frama-C to display global C++ - identifiers with the name they have in the C translation (e.g. - `_Z1A1x`, that allows to distinguish between overloaded symbols. - This mangled name is computed from the fully-qualified C++ name - according to the rules described in the Itanium C++ ABI. Pretty-printing - the AST with this option should result in compilable C code. +- `-cxx-unmangling key` indicates what to do when outputting a C++ symbol name. + `key` can be one the following: + - `help`: outputs a list of existing `key` with a short description + - `fully-qualified`: displays the fully qualified name (e.g. `::A::x`) + - `without-qualifier`: only display the unqualified name (e.g. `x`) + - `none`: do not any transformation, displays the name as it is stored + in Frama-C's AST (e.g. `_Z1A1x`) +- `-cxx-parseable-output` indicates that the pretty-printed code resulting + from the translation should be able to be parsed again by Frama-C. + implies `-cxx-unmangling none` - `-cxx-cstdlib-path <path>` specifies where to look for standard C library headers (default is the path to Frama-C's headers) - `-cxx-c++stdlib-path <path>` specifies where to look for @@ -62,6 +62,12 @@ Options of the plug-in are the following. This should only be needed if the front-end as a whole has not been installed properly. +Older versions of the plug-in used specific options for unmangling. +These are now obsolete: +- `-cxx-demangling-full`: use `-cxx-unmangling fully-qualified` +- `-cxx-demangling-short`: use `-cxx-unmangling without-qualifier` +- `-cxx-keep-mangling`: use `-cxx-unmangling none` + In addition, any command-line option taking a function name as argument (e.g. `-main`, `-eva-slevel-function`, ...) will accept a fully qualified C++ name (provided it refers to an existing function