Your company here ā€” click to reach over 10,000 unique daily visitors

crangler - Man Page

C source transformation


crangler [-?] [-h] [--help]

cranglerĀ file.json


crangler is a command-line utility that makes changes to a preprocessed C file that are prescribed in a JSON configuration file.

The supported transformations are:

Add a contract (pre/post/assigns) to a named C function.

Add a loop contract to a loop identified by the name of the function containing the loop and a loop number.

Remove the static storage classifier from a function or a variable.

Replace a function call by a call to a stub.

The resulting source file is written to standard output or to a file specified in the JSON configuration.


The following JSON configuration file makes crangler preprocess remove_static1.c. While processing this file to produce a preprocessed result, no non-standard include paths or defines reqired. Transformations configured here are removing the static storage classifier from all functions matching the regular expression foobar[12], and replacing calls to bar by calls to a function called bar_stub. No objects are listed that require transformation. The result is written to standard output.

  "sources": [
  "includes": [],
  "defines": [],
  "functions": [
      "foobar[12]": [
        "remove static"
      "bar": [
        "stub bar_stub"
  "objects": [],
  "output": "stdout"


All tools honor the TMPDIR environment variable when generating temporary files and directories.


If you encounter a problem please create an issue at https://github.com/diffblue/cbmc/issues

Referenced By


June 2022 crangler-5.59.0