Bug goto-cc – a C/C++ front-end for Verification

About goto-cc

goto-cc is a compiler that compiles programs given in a C and C++ into GOTO-programs (i.e., control-flow graphs). goto-cc can be run in the following environments:

The resulting goto-binaries are not meant to be executable, but are typically given to a verification or testing tool like SATABS or CBMC. As an additional feature, goto-cc generates dot-style flowgraphs of your functions!

You should also read the license.

goto-cc News

NEW: There is now a Google Group for annoucements related to SATABS.

NEW: goto-cc now processes most parts of the Linux Kernel without any need for modifications. The CPROVER manual contains instructions.

Documentation

There is a section on goto-cc in the CPROVER manual.

Download

We currently only distribute binaries for x86 Linux and Windows. goto-cc is also included in the CBMC and SATABS distributions.

x86 Windows x86 Linux
goto-cc-3-2-win.zip
Do unzip goto-cc-3-2-win.zip and put goto-cc in your path before running.
Important: You need CL (comes with Microsoft Visual Studio) in your PATH for preprocessing.
goto-cc-3-2-linux.tgz
Do tar xfz goto-cc-3-2-linux.tgz and put goto-cc in your path before running.
If you need to link object files without creating a binary, you can use goto-ld, which you can obtain by creating a symbolic link to goto-cc:
ln goto-cc goto-ld -s
Old Versions
goto-cc-2-7-1-win.zip
goto-cc-2-7-1-linux.tgz
goto-cc-2-7-win.zip
goto-cc-2-7-linux.tgz
goto-cc-2-6-2-win.zip
goto-cc-2-6-2-linux.tgz
goto-cc-2-6-1-win.zip
goto-cc-2-6-1-linux.tgz
goto-cc-2-6-win.zip
goto-cc-2-6-linux.tgz

goto-cc-2-5-3-linux.tgz
goto-cc-2-5-2-win.zip
goto-cc-2-5-2-linux.tgz
goto-cc-2-5-1-win.zip
goto-cc-2-5-1-linux.tgz
goto-cc-2-5-win.zip
goto-cc-2-5-linux.tgz
goto-cc-2-1-2-win.zip
goto-cc-2-1-2-linux.tgz

goto-cc-2-1-1-linux.tgz
goto-cc-2-1-win.zip
goto-cc-2-1-linux.tgz

goto-cc-2-0-1-linux.tgz
goto-cc-2-0-win.zip (No Cygwin required) goto-cc-2-0-linux.tgz
goto-cc-1-0-1-win.zip (Requires Cygwin) goto-cc-1-0-1-linux.tgz

Funding

This research is currently supported by EPSRC grant EP/G026254/1.