Make CMurphi work with modern optimizing compilers

Open
#1 · Created  · Last updated

Description

The main purpose of this pull request is to get CMurphi working again with modern versions of GCC and LLVM. 5.4.9.1 segfaults due to reliance on undefined behavior that modern compilers now exploit for optimization.

These commits remove all reliance on compiler-detected undefined behavior. Most notably, all undefined this==NULL checks, which were pervasive in the codebase, have been removed. This resolves segfaults caused by compilers removing these checks.

In addition to removing undefined behavior, this pull request also includes several quality-of-life improvements:

  • The files have been extracted from the tar to support a git-based workflow.

  • The Markdown README has been updated with more information about the project.

  • All compilation warnings have been fixed. Some of these changes also fixed bugs. One compilation warning still exists in the output of CMurphi, but resolving that would be a difficult task and it can be safely ignored. It has been marked as a bug in the code comments.

  • Example binaries and temporary files have been excluded from git.

0 attachments

0 comments

Loading commits...