File tree Expand file tree Collapse file tree 1 file changed +72
-0
lines changed
Expand file tree Collapse file tree 1 file changed +72
-0
lines changed Original file line number Diff line number Diff line change 1+ .TH CRANGLER "1" "June 2022" "crangler-5.59.0" "User Commands"
2+ .SH NAME
3+ crangler \- C source transformation
4+ .SH SYNOPSIS
5+ .B crangler [\-?] [\-h] [\-\- help]
6+
7+ .BI crangler \ file.json
8+
9+ .SH DESCRIPTION
10+ .B crangler
11+ is a command-line utility that makes changes to a preprocessed C file
12+ that are prescribed in a JSON configuration file.
13+
14+ The supported transformations are:
15+ .IP
16+ Add a contract (pre/post/assigns) to a named C function.
17+ .IP
18+ Add a loop invariant to a loop identified by the name of the function its in and
19+ a loop number.
20+ .IP
21+ Remove the
22+ .B static
23+ storage classifier from a function or a variable.
24+ .IP
25+ Replace a function call by a call to a stub.
26+ .PP
27+ The resulting source file is written to standard output or to a file specified
28+ in the JSON configuration.
29+ .SH EXAMPLE
30+ The following JSON configuration file makes
31+ .B crangler
32+ preprocess
33+ .IR remove_static1.c .
34+ While processing this file to produce a preprocessed result, no non-standard
35+ include paths or defines reqired.
36+ Transformations configured here are
37+ removing the
38+ .B static
39+ storage classifier from all functions matching the regular expression
40+ .BR foobar[12] ,
41+ and replacing calls to \fI bar \fR by calls to a function called \fI bar_stub \fR .
42+ No objects are listed that require transformation.
43+ The result is written to standard output.
44+ .EX
45+ {
46+ "sources": [
47+ "remove_static1.c"
48+ ],
49+ "includes": [],
50+ "defines": [],
51+ "functions": [
52+ {
53+ "foobar[12]": [
54+ "remove static"
55+ ],
56+ "bar": [
57+ "stub bar_stub"
58+ ]
59+ }
60+ ],
61+ "objects": [],
62+ "output": "stdout"
63+ }
64+ .EE
65+ .SH ENVIRONMENT
66+ All tools honor the TMPDIR environment variable when generating temporary
67+ files and directories.
68+ .SH BUGS
69+ If you encounter a problem please create an issue at
70+ .B https://github.com/diffblue/cbmc/issues
71+ .SH COPYRIGHT
72+ 2021, Daniel Kroening
You can’t perform that action at this time.
0 commit comments