Re: git: 7f087b720e52 - main - devel/cbmc: add new port

From: Daniel Engberg <daniel.engberg.lists_at_pyret.net>
Date: Fri, 02 Feb 2024 00:05:00 UTC
On 2024-02-01T18:55:09.000+01:00, Olivier Cochard
<olivier@FreeBSD.org> wrote:

> The branch main has been updated by olivier:
> 
> URL: https://cgit.FreeBSD.org/ports/commit/?id=7f087b720e52d51b22db0da2d7565418a0e428ef
> 
> commit 7f087b720e52d51b22db0da2d7565418a0e428ef
> 
> Author:     Olivier Cochard <olivier@FreeBSD.org>
> 
> AuthorDate: 2024-02-01 17:50:02 +0000
> 
> Commit:     Olivier Cochard <olivier@FreeBSD.org>
> 
> CommitDate: 2024-02-01 17:53:55 +0000
> 
>     devel/cbmc: add new port
> 
>     
> 
>     Bounded Model Checker for C and C++ programs
> 
>     https://github.com/diffblue/cbmc
> 
>     
> 
>     Sponsored by:   Netflix
> 
> ---
> 
>  devel/Makefile                                     |  1 +
> 
>  devel/cbmc/Makefile                                | 46 +++++++++++++++++
> 
>  devel/cbmc/distinfo                                |  5 ++
> 
>  .../patch-minisat-2.2.1_minisat_core_Solver.cc [http://Solver.cc]     | 20 ++++++++
> 
>  .../patch-minisat-2.2.1_minisat_core_SolverTypes.h | 59 ++++++++++++++++++++++
> 
>  .../patch-minisat-2.2.1_minisat_mtl_IntTypes.h     | 12 +++++
> 
>  .../files/patch-minisat-2.2.1_minisat_mtl_Vec.h    | 16 ++++++
> 
>  .../files/patch-minisat-2.2.1_minisat_mtl_XAlloc.h | 19 +++++++
> 
>  .../patch-minisat-2.2.1_minisat_simp_SimpSolver.cc [http://SimpSolver.cc] | 37 ++++++++++++++
> 
>  .../patch-minisat-2.2.1_minisat_utils_Options.cc [http://Options.cc]   | 15 ++++++
> 
>  .../patch-minisat-2.2.1_minisat_utils_Options.h    | 30 +++++++++++
> 
>  .../patch-minisat-2.2.1_minisat_utils_ParseUtils.h | 33 ++++++++++++
> 
>  .../patch-minisat-2.2.1_minisat_utils_System.h     | 11 ++++
> 
>  devel/cbmc/files/patch-src_common                  | 11 ++++
> 
>  .../files/patch-src_solvers_sat_external__sat.cpp  | 13 +++++
> 
>  devel/cbmc/files/patch-src_util_optional.h         | 29 +++++++++++
> 
>  devel/cbmc/pkg-descr                               |  7 +++
> 
>  devel/cbmc/pkg-plist                               | 23 +++++++++
> 
>  18 files changed, 387 insertions(+)
> 
> diff --git a/devel/Makefile b/devel/Makefile
> 
> index 4da71e0953a1..51481c8a3aca 100644
> 
> --- a/devel/Makefile
> 
> +++ b/devel/Makefile
> 
> @@ -351,6 +351,7 @@
> 
>      SUBDIR += catch2
> 
>      SUBDIR += cbang
> 
>      SUBDIR += cbfmt
> 
> +    SUBDIR += cbmc
> 
>      SUBDIR += cbrowser
> 
>      SUBDIR += cc65
> 
>      SUBDIR += ccache
> 
> diff --git a/devel/cbmc/Makefile b/devel/cbmc/Makefile
> 
> new file mode 100644
> 
> index 000000000000..c7f7b3650e63
> 
> --- /dev/null
> 
> +++ b/devel/cbmc/Makefile
> 
> @@ -0,0 +1,46 @@
> 
> +PORTNAME=    cbmc
> 
> +PORTVERSION=    5.95.1
> 
> +DISTVERSIONPREFIX=    cbmc-
> 
> +CATEGORIES=    devel
> 
> +MASTER_SITES=    DEBIAN/pool/main/m/minisat2:minisat
> 
> +DISTFILES=    minisat2_2.2.1.orig.tar.gz:minisat
> 
> +
> 
> +MAINTAINER=    olivier@FreeBSD.org
> 
> +COMMENT=    Bounded Model Checker for C and C++ programs
> 
> +WWW=        https://github.com/diffblue/cbmc
> 
> +
> 
> +LICENSE=    BSD4CLAUSE
> 
> +LICENSE_FILE=    ${WRKSRC}/LICENSE
> 
> +
> 
> +BUILD_DEPENDS=    ${LOCALBASE}/bin/flex:textproc/flex
> 
> +RUN_DEPENDS=    ${LOCALBASE}/bin/cvc5:math/cvc5 \
> 
> +        ${LOCALBASE}/bin/z3:math/z3
> 
> +
> 
> +USES=        gmake bison python shebangfix
> 
> +
> 
> +USE_GITHUB=    yes
> 
> +GH_ACCOUNT=    diffblue
> 
> +SHEBANG_FILES=    ${WRKSRC}/scripts/ls_parse.py [http://parse.py]
> 
> +WRKSRC_minisat=    ${WRKDIR}/minisat2-2.2.1
> 
> +
> 
> +post-patch:
> 
> +    @${REINPLACE_CMD} -e 's|.*git describe --tags.*|GIT_INFO = ${PORTNAME}-${PORTVERSION}|' \
> 
> +        ${WRKSRC}/src/util/Makefile
> 
> +post-extract:
> 
> +    @${MV} ${WRKSRC_minisat} ${WRKSRC}/minisat-2.2.1
> 
> +
> 
> +do-build:
> 
> +    @${MKDIR} ${STAGEDIR}
> 
> +    cd ${WRKSRC} && ${GMAKE} -C src -j${MAKE_JOBS_NUMBER}
> 
> +
> 
> +do-install:
> 
> +.  for x in cbmc crangler goto-analyzer goto-cc goto-diff goto-instrument \
> 
> +    goto-inspect goto-harness goto-synthesizer symtab2gb
> 
> +    ${INSTALL_PROGRAM} ${WRKSRC}/src/${x}/${x} ${STAGEDIR}${PREFIX}/bin/
> 
> +    ${INSTALL_MAN} ${WRKSRC}/doc/man/${x}.1 ${STAGEDIR}${PREFIX}/share/man/man1/
> 
> +.  endfor
> 
> +    ${LN} -sf goto-cc ${STAGEDIR}${PREFIX}/bin/goto-gcc
> 
> +    ${LN} -sf goto-cc ${STAGEDIR}${PREFIX}/bin/goto-ld
> 
> +    ${INSTALL_SCRIPT} ${WRKSRC}/scripts/ls_parse.py [http://parse.py] ${STAGEDIR}${PREFIX}/bin/
> 
> +
> 
> +.include <bsd.port.mk> [http://bsd.port.mk>];
> 
> diff --git a/devel/cbmc/distinfo b/devel/cbmc/distinfo
> 
> new file mode 100644
> 
> index 000000000000..f3e6d1161c6a
> 
> --- /dev/null
> 
> +++ b/devel/cbmc/distinfo
> 
> @@ -0,0 +1,5 @@
> 
> +TIMESTAMP = 1706723199
> 
> +SHA256 (minisat2_2.2.1.orig.tar.gz) = e54afa3c192c1753bc8075c0c7e126d5c495d9066e3f90a2588091149ac9ca40
> 
> +SIZE (minisat2_2.2.1.orig.tar.gz) = 44229
> 
> +SHA256 (diffblue-cbmc-cbmc-5.95.1_GH0.tar.gz) = fdc1e862752430f8d069eb2f9c33dcd05078cf955bbc900e2cc840bcb01b3783
> 
> +SIZE (diffblue-cbmc-cbmc-5.95.1_GH0.tar.gz) = 9073428
> 
> diff --git a/devel/cbmc/files/patch-minisat-2.2.1_minisat_core_Solver.cc [http://Solver.cc] b/devel/cbmc/files/patch-minisat-2.2.1_minisat_core_Solver.cc [http://Solver.cc]
> 
> new file mode 100644
> 
> index 000000000000..c15c2f12fb0a
> 
> --- /dev/null
> 
> +++ b/devel/cbmc/files/patch-minisat-2.2.1_minisat_core_Solver.cc [http://Solver.cc]
> 
> @@ -0,0 +1,20 @@
> 
> +--- minisat-2.2.1/minisat/core/Solver.cc.orig [http://Solver.cc.orig]    2011-02-21 13:31:17 UTC
> 
> ++++ minisat-2.2.1/minisat/core/Solver.cc [http://Solver.cc]
> 
> +@@ -210,7 +210,7 @@ void Solver::cancelUntil(int level) {
> 
> +         for (int c = trail.size()-1; c &gt;= trail_lim[level]; c--){
> 
> +             Var      x  = var(trail[c]);
> 
> +             assigns [x] = l_Undef;
> 
> +-            if (phase_saving > 1 || (phase_saving == 1) && c > trail_lim.last())
> 
> ++            if (phase_saving > 1 || ((phase_saving == 1) && c > trail_lim.last()))
> 
> +                 polarity[x] = sign(trail[c]);
> 
> +             insertVarOrder(x); }
> 
> +         qhead = trail_lim[level];
> 
> +@@ -666,7 +666,7 @@ lbool Solver::search(int nof_conflicts)
> 
> + 
> 
> +         }else{
> 
> +             // NO CONFLICT
> 
> +-            if (nof_conflicts &gt;= 0 && conflictC &gt;= nof_conflicts || !withinBudget()){
> 
> ++            if ((nof_conflicts &gt;= 0 && conflictC &gt;= nof_conflicts) || !withinBudget()){
> 
> +                 // Reached bound on number of conflicts:
> 
> +                 progress_estimate = progressEstimate();
> 
> +                 cancelUntil(0);
> 
> diff --git a/devel/cbmc/files/patch-minisat-2.2.1_minisat_core_SolverTypes.h b/devel/cbmc/files/patch-minisat-2.2.1_minisat_core_SolverTypes.h
> 
> new file mode 100644
> 
> index 000000000000..fa26c6372b36
> 
> --- /dev/null
> 
> +++ b/devel/cbmc/files/patch-minisat-2.2.1_minisat_core_SolverTypes.h
> 
> @@ -0,0 +1,59 @@
> 
> +--- minisat-2.2.1/minisat/core/SolverTypes.h.orig    2011-02-21 13:31:17 UTC
> 
> ++++ minisat-2.2.1/minisat/core/SolverTypes.h
> 
> +@@ -47,7 +47,7 @@ struct Lit {
> 
> +     int     x;
> 
> + 
> 
> +     // Use this as a constructor:
> 
> +-    friend Lit mkLit(Var var, bool sign = false);
> 
> ++    //friend Lit mkLit(Var var, bool sign = false);
> 
> + 
> 
> +     bool operator == (Lit p) const { return x == p.x; }
> 
> +     bool operator != (Lit p) const { return x != p.x; }
> 
> +@@ -55,7 +55,7 @@ struct Lit {
> 
> + };
> 
> + 
> 
> + 
> 
> +-inline  Lit  mkLit     (Var var, bool sign) { Lit p; p.x = var + var + (int)sign; return p; }
> 
> ++inline  Lit  mkLit     (Var var, bool sign = false) { Lit p; p.x = var + var + (int)sign; return p; }
> 
> + inline  Lit  operator ~(Lit p)              { Lit q; q.x = p.x ^ 1; return q; }
> 
> + inline  Lit  operator ^(Lit p, bool b)      { Lit q; q.x = p.x ^ (unsigned int)b; return q; }
> 
> + inline  bool sign      (Lit p)              { return p.x & 1; }
> 
> +@@ -127,7 +127,10 @@ class Clause {
> 
> +         unsigned has_extra : 1;
> 
> +         unsigned reloced   : 1;
> 
> +         unsigned size      : 27; }                        header;
> 
> ++#include <util/pragma_push.def>
> 
> ++#include <util/pragma_wzero_length_array.def>
> 
> +     union { Lit lit; float act; uint32_t abs; CRef rel; } data[0];
> 
> ++#include <util/pragma_pop.def>
> 
> + 
> 
> +     friend class ClauseAllocator;
> 
> + 
> 
> +@@ -142,11 +145,12 @@ class Clause {
> 
> +         for (int i = 0; i < ps.size(); i++) 
> 
> +             data[i].lit = ps[i];
> 
> + 
> 
> +-        if (header.has_extra)
> 
> ++        if (header.has_extra) {
> 
> +             if (header.learnt)
> 
> +                 data[header.size].act = 0;
> 
> +             else
> 
> +                 calcAbstraction();
> 
> ++        }
> 
> +     }
> 
> + 
> 
> +     // NOTE: This constructor cannot be used directly (doesn't allocate enough memory).
> 
> +@@ -157,11 +161,12 @@ class Clause {
> 
> +         for (int i = 0; i < from.size(); i++)
> 
> +             data[i].lit = from[i];
> 
> + 
> 
> +-        if (header.has_extra)
> 
> ++        if (header.has_extra) {
> 
> +             if (header.learnt)
> 
> +                 data[header.size].act = from.data[header.size] [http://from.data[header.size]].act;
> 
> +             else 
> 
> +                 data[header.size].abs = from.data[header.size] [http://from.data[header.size]].abs;
> 
> ++        }
> 
> +     }
> 
> + 
> 
> + public:
> 
> diff --git a/devel/cbmc/files/patch-minisat-2.2.1_minisat_mtl_IntTypes.h b/devel/cbmc/files/patch-minisat-2.2.1_minisat_mtl_IntTypes.h
> 
> new file mode 100644
> 
> index 000000000000..d8c9ddedb701
> 
> --- /dev/null
> 
> +++ b/devel/cbmc/files/patch-minisat-2.2.1_minisat_mtl_IntTypes.h
> 
> @@ -0,0 +1,12 @@
> 
> +--- minisat-2.2.1/minisat/mtl/IntTypes.h.orig    2011-02-21 13:31:17 UTC
> 
> ++++ minisat-2.2.1/minisat/mtl/IntTypes.h
> 
> +@@ -31,7 +31,9 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OT
> 
> + #else
> 
> + 
> 
> + #   include <stdint.h>
> 
> ++#ifndef _MSC_VER
> 
> + #   include <inttypes.h>
> 
> ++#endif
> 
> + 
> 
> + The branch main has been updated by olivier:
> 
> URL: https://cgit.FreeBSD.org/ports/commit/?id=7f087b720e52d51b22db0da2d7565418a0e428ef
> 
> commit 7f087b720e52d51b22db0da2d7565418a0e428ef
> 
> Author:     Olivier Cochard <olivier@FreeBSD.org>
> 
> AuthorDate: 2024-02-01 17:50:02 +0000
> 
> Commit:     Olivier Cochard <olivier@FreeBSD.org>
> 
> CommitDate: 2024-02-01 17:53:55 +0000
> 
>     devel/cbmc: add new port
> 
>     
> 
>     Bounded Model Checker for C and C++ programs
> 
>     https://github.com/diffblue/cbmc
> 
>     
> 
>     Sponsored by:   Netflix
> 
> ---
> 
>  devel/Makefile                                     |  1 +
> 
>  devel/cbmc/Makefile                                | 46 +++++++++++++++++
> 
>  devel/cbmc/distinfo                                |  5 ++
> 
>  .../patch-minisat-2.2.1_minisat_core_Solver.cc [http://Solver.cc]     | 20 ++++++++
> 
>  .../patch-minisat-2.2.1_minisat_core_SolverTypes.h | 59 ++++++++++++++++++++++
> 
>  .../patch-minisat-2.2.1_minisat_mtl_IntTypes.h     | 12 +++++
> 
>  .../files/patch-minisat-2.2.1_minisat_mtl_Vec.h    | 16 ++++++
> 
>  .../files/patch-minisat-2.2.1_minisat_mtl_XAlloc.h | 19 +++++++
> 
>  .../patch-minisat-2.2.1_minisat_simp_SimpSolver.cc [http://SimpSolver.cc] | 37 ++++++++++++++
> 
>  .../patch-minisat-2.2.1_minisat_utils_Options.cc [http://Options.cc]   | 15 ++++++
> 
>  .../patch-minisat-2.2.1_minisat_utils_Options.h    | 30 +++++++++++
> 
>  .../patch-minisat-2.2.1_minisat_utils_ParseUtils.h | 33 ++++++++++++
> 
>  .../patch-minisat-2.2.1_minisat_utils_System.h     | 11 ++++
> 
>  devel/cbmc/files/patch-src_common                  | 11 ++++
> 
>  .../files/patch-src_solvers_sat_external__sat.cpp  | 13 +++++
> 
>  devel/cbmc/files/patch-src_util_optional.h         | 29 +++++++++++
> 
>  devel/cbmc/pkg-descr                               |  7 +++
> 
>  devel/cbmc/pkg-plist                               | 23 +++++++++
> 
>  18 files changed, 387 insertions(+)
> 
> diff --git a/devel/Makefile b/devel/Makefile
> 
> index 4da71e0953a1..51481c8a3aca 100644
> 
> --- a/devel/Makefile
> 
> +++ b/devel/Makefile
> 
> @@ -351,6 +351,7 @@
> 
>      SUBDIR += catch2
> 
>      SUBDIR += cbang
> 
>      SUBDIR += cbfmt
> 
> +    SUBDIR += cbmc
> 
>      SUBDIR += cbrowser
> 
>      SUBDIR += cc65
> 
>      SUBDIR += ccache
> 
> diff --git a/devel/cbmc/Makefile b/devel/cbmc/Makefile
> 
> new file mode 100644
> 
> index 000000000000..c7f7b3650e63
> 
> --- /dev/null
> 
> +++ b/devel/cbmc/Makefile
> 
> @@ -0,0 +1,46 @@
> 
> +PORTNAME=    cbmc
> 
> +PORTVERSION=    5.95.1
> 
> +DISTVERSIONPREFIX=    cbmc-
> 
> +CATEGORIES=    devel
> 
> +MASTER_SITES=    DEBIAN/pool/main/m/minisat2:minisat
> 
> +DISTFILES=    minisat2_2.2.1.orig.tar.gz:minisat
> 
> +
> 
> +MAINTAINER=    olivier@FreeBSD.org
> 
> +COMMENT=    Bounded Model Checker for C and C++ programs
> 
> +WWW=        https://github.com/diffblue/cbmc
> 
> +
> 
> +LICENSE=    BSD4CLAUSE
> 
> +LICENSE_FILE=    ${WRKSRC}/LICENSE
> 
> +
> 
> +BUILD_DEPENDS=    ${LOCALBASE}/bin/flex:textproc/flex
> 
> +RUN_DEPENDS=    ${LOCALBASE}/bin/cvc5:math/cvc5 \
> 
> +        ${LOCALBASE}/bin/z3:math/z3
> 
> +
> 
> +USES=        gmake bison python shebangfix
> 
> +
> 
> +USE_GITHUB=    yes
> 
> +GH_ACCOUNT=    diffblue
> 
> +SHEBANG_FILES=    ${WRKSRC}/scripts/ls_parse.py [http://parse.py]
> 
> +WRKSRC_minisat=    ${WRKDIR}/minisat2-2.2.1
> 
> +
> 
> +post-patch:
> 
> +    @${REINPLACE_CMD} -e 's|.*git describe --tags.*|GIT_INFO = ${PORTNAME}-${PORTVERSION}|' \
> 
> +        ${WRKSRC}/src/util/Makefile
> 
> +post-extract:
> 
> +    @${MV} ${WRKSRC_minisat} ${WRKSRC}/minisat-2.2.1
> 
> +
> 
> +do-build:
> 
> +    @${MKDIR} ${STAGEDIR}
> 
> +    cd ${WRKSRC} && ${GMAKE} -C src -j${MAKE_JOBS_NUMBER}
> 
> +
> 
> +do-install:
> 
> +.  for x in cbmc crangler goto-analyzer goto-cc goto-diff goto-instrument \
> 
> +    goto-inspect goto-harness goto-synthesizer symtab2gb
> 
> +    ${INSTALL_PROGRAM} ${WRKSRC}/src/${x}/${x} ${STAGEDIR}${PREFIX}/bin/
> 
> +    ${INSTALL_MAN} ${WRKSRC}/doc/man/${x}.1 ${STAGEDIR}${PREFIX}/share/man/man1/
> 
> +.  endfor
> 
> +    ${LN} -sf goto-cc ${STAGEDIR}${PREFIX}/bin/goto-gcc
> 
> +    ${LN} -sf goto-cc ${STAGEDIR}${PREFIX}/bin/goto-ld
> 
> +    ${INSTALL_SCRIPT} ${WRKSRC}/scripts/ls_parse.py [http://parse.py] ${STAGEDIR}${PREFIX}/bin/
> 
> +
> 
> +.include <bsd.port.mk> [http://bsd.port.mk>];
> 
> diff --git a/devel/cbmc/distinfo b/devel/cbmc/distinfo
> 
> new file mode 100644
> 
> index 000000000000..f3e6d1161c6a
> 
> --- /dev/null
> 
> +++ b/devel/cbmc/distinfo
> 
> @@ -0,0 +1,5 @@
> 
> +TIMESTAMP = 1706723199
> 
> +SHA256 (minisat2_2.2.1.orig.tar.gz) = e54afa3c192c1753bc8075c0c7e126d5c495d9066e3f90a2588091149ac9ca40
> 
> +SIZE (minisat2_2.2.1.orig.tar.gz) = 44229
> 
> +SHA256 (diffblue-cbmc-cbmc-5.95.1_GH0.tar.gz) = fdc1e862752430f8d069eb2f9c33dcd05078cf955bbc900e2cc840bcb01b3783
> 
> +SIZE (diffblue-cbmc-cbmc-5.95.1_GH0.tar.gz) = 9073428
> 
> diff --git a/devel/cbmc/files/patch-minisat-2.2.1_minisat_core_Solver.cc [http://Solver.cc] b/devel/cbmc/files/patch-minisat-2.2.1_minisat_core_Solver.cc [http://Solver.cc]
> 
> new file mode 100644
> 
> index 000000000000..c15c2f12fb0a
> 
> --- /dev/null
> 
> +++ b/devel/cbmc/files/patch-minisat-2.2.1_minisat_core_Solver.cc [http://Solver.cc]
> 
> @@ -0,0 +1,20 @@
> 
> +--- minisat-2.2.1/minisat/core/Solver.cc.orig [http://Solver.cc.orig]    2011-02-21 13:31:17 UTC
> 
> ++++ minisat-2.2.1/minisat/core/Solver.cc [http://Solver.cc]
> 
> +@@ -210,7 +210,7 @@ void Solver::cancelUntil(int level) {
> 
> +         for (int c = trail.size()-1; c &gt;= trail_lim[level]; c--){
> 
> +             Var      x  = var(trail[c]);
> 
> +             assigns [x] = l_Undef;
> 
> +-            if (phase_saving > 1 || (phase_saving == 1) && c > trail_lim.last())
> 
> ++            if (phase_saving > 1 || ((phase_saving == 1) && c > trail_lim.last()))
> 
> +                 polarity[x] = sign(trail[c]);
> 
> +             insertVarOrder(x); }
> 
> +         qhead = trail_lim[level];
> 
> +@@ -666,7 +666,7 @@ lbool Solver::search(int nof_conflicts)
> 
> + 
> 
> +         }else{
> 
> +             // NO CONFLICT
> 
> +-            if (nof_conflicts &gt;= 0 && conflictC &gt;= nof_conflicts || !withinBudget()){
> 
> ++            if ((nof_conflicts &gt;= 0 && conflictC &gt;= nof_conflicts) || !withinBudget()){
> 
> +                 // Reached bound on number of conflicts:
> 
> +                 progress_estimate = progressEstimate();
> 
> +                 cancelUntil(0);
> 
> diff --git a/devel/cbmc/files/patch-minisat-2.2.1_minisat_core_SolverTypes.h b/devel/cbmc/files/patch-minisat-2.2.1_minisat_core_SolverTypes.h
> 
> new file mode 100644
> 
> index 000000000000..fa26c6372b36
> 
> --- /dev/null
> 
> +++ b/devel/cbmc/files/patch-minisat-2.2.1_minisat_core_SolverTypes.h
> 
> @@ -0,0 +1,59 @@
> 
> +--- minisat-2.2.1/minisat/core/SolverTypes.h.orig    2011-02-21 13:31:17 UTC
> 
> ++++ minisat-2.2.1/minisat/core/SolverTypes.h
> 
> +@@ -47,7 +47,7 @@ struct Lit {
> 
> +     int     x;
> 
> + 
> 
> +     // Use this as a constructor:
> 
> +-    friend Lit mkLit(Var var, bool sign = false);
> 
> ++    //friend Lit mkLit(Var var, bool sign = false);
> 
> + 
> 
> +     bool operator == (Lit p) const { return x == p.x; }
> 
> +     bool operator != (Lit p) const { return x != p.x; }
> 
> +@@ -55,7 +55,7 @@ struct Lit {
> 
> + };
> 
> + 
> 
> + 
> 
> +-inline  Lit  mkLit     (Var var, bool sign) { Lit p; p.x = var + var + (int)sign; return p; }
> 
> ++inline  Lit  mkLit     (Var var, bool sign = false) { Lit p; p.x = var + var + (int)sign; return p; }
> 
> + inline  Lit  operator ~(Lit p)              { Lit q; q.x = p.x ^ 1; return q; }
> 
> + inline  Lit  operator ^(Lit p, bool b)      { Lit q; q.x = p.x ^ (unsigned int)b; return q; }
> 
> + inline  bool sign      (Lit p)              { return p.x & 1; }
> 
> +@@ -127,7 +127,10 @@ class Clause {
> 
> +         unsigned has_extra : 1;
> 
> +         unsigned reloced   : 1;
> 
> +         unsigned size      : 27; }                        header;
> 
> ++#include <util/pragma_push.def>
> 
> ++#include <util/pragma_wzero_length_array.def>
> 
> +     union { Lit lit; float act; uint32_t abs; CRef rel; } data[0];
> 
> ++#include <util/pragma_pop.def>
> 
> + 
> 
> +     friend class ClauseAllocator;
> 
> + 
> 
> +@@ -142,11 +145,12 @@ class Clause {
> 
> +         for (int i = 0; i < ps.size(); i++) 
> 
> +             data[i].lit = ps[i];
> 
> + 
> 
> +-        if (header.has_extra)
> 
> ++        if (header.has_extra) {
> 
> +             if (header.learnt)
> 
> +                 data[header.size].act = 0;
> 
> +             else
> 
> +                 calcAbstraction();
> 
> ++        }
> 
> +     }
> 
> + 
> 
> +     // NOTE: This constructor cannot be used directly (doesn't allocate enough memory).
> 
> +@@ -157,11 +161,12 @@ class Clause {
> 
> +         for (int i = 0; i < from.size(); i++)
> 
> +             data[i].lit = from[i];
> 
> + 
> 
> +-        if (header.has_extra)
> 
> ++        if (header.has_extra) {
> 
> +             if (header.learnt)
> 
> +                 data[header.size].act = from.data[header.size] [http://from.data[header.size]].act;
> 
> +             else 
> 
> +                 data[header.size].abs = from.data[header.size] [http://from.data[header.size]].abs;
> 
> ++        }
> 
> +     }
> 
> + 
> 
> + public:
> 
> diff --git a/devel/cbmc/files/patch-minisat-2.2.1_minisat_mtl_IntTypes.h b/devel/cbmc/files/patch-minisat-2.2.1_minisat_mtl_IntTypes.h
> 
> new file mode 100644
> 
> index 000000000000..d8c9ddedb701
> 
> --- /dev/null
> 
> +++ b/devel/cbmc/files/patch-minisat-2.2.1_minisat_mtl_IntTypes.h
> 
> @@ -0,0 +1,12 @@
> 
> +--- minisat-2.2.1/minisat/mtl/IntTypes.h.orig    2011-02-21 13:31:17 UTC
> 
> ++++ minisat-2.2.1/minisat/mtl/IntTypes.h
> 
> +@@ -31,7 +31,9 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OT
> 
> + #else
> 
> + 
> 
> + #   include <stdint.h>
> 
> ++#ifndef _MSC_VER
> 
> + #   include <inttypes.h>
> 
> ++#endif
> 
> + 
> 
> + #endiffile mode 100644
> 
> index 000000000000..f0dd61cd9963
> 
> --- /dev/null
> 
> +++ b/devel/cbmc/files/patch-src_solvers_sat_external__sat.cpp
> 
> @@ -0,0 +1,13 @@
> 
> +--- src/solvers/sat/external_sat.cpp.orig    2023-10-30 12:11:18 UTC
> 
> ++++ src/solvers/sat/external_sat.cpp
> 
> +@@ -119,8 +119,8 @@ external_satt::resultt external_satt::parse_result(std
> 
> +       {
> 
> +         try
> 
> +         {
> 
> +-          signed long long as_long = std::stol(assignment_string);
> 
> +-          size_t index = std::labs(as_long);
> 
> ++          signed long long as_long = std::stoll(assignment_string);
> 
> ++          size_t index = std::llabs(as_long);
> 
> + 
> 
> +           if(index &gt;= number_of_variables)
> 
> +           {
> 
> diff --git a/devel/cbmc/files/patch-src_util_optional.h b/devel/cbmc/files/patch-src_util_optional.h
> 
> new file mode 100644
> 
> index 000000000000..4507ce0ade2b
> 
> --- /dev/null
> 
> +++ b/devel/cbmc/files/patch-src_util_optional.h
> 
> @@ -0,0 +1,29 @@
> 
> +--- src/util/optional.h.orig    2023-10-30 12:11:18 UTC
> 
> ++++ src/util/optional.h
> 
> +@@ -11,20 +11,20 @@ Author: Diffblue Ltd.
> 
> + #define CPROVER_UTIL_OPTIONAL_H
> 
> + 
> 
> + #if defined __clang__
> 
> +-  #pragma clang diagnostic push ignore "-Wall"
> 
> +-  #pragma clang diagnostic push ignore "-Wpedantic"
> 
> ++  #pragma clang diagnostic push
> 
> ++  #pragma clang diagnostic ignored "-Wall"
> 
> ++  #pragma clang diagnostic ignored "-Wpedantic"
> 
> + #elif defined __GNUC__
> 
> +-  #pragma GCC diagnostic push ignore "-Wall"
> 
> +-  #pragma GCC diagnostic push ignore "-Wpedantic"
> 
> ++  #pragma GCC diagnostic push
> 
> ++  #pragma GCC diagnostic ignored "-Wall"
> 
> ++  #pragma GCC diagnostic ignored "-Wpedantic"
> 
> + #elif defined _MSC_VER
> 
> +   #pragma warning(push)
> 
> + #endif
> 
> + #include <nonstd/optional.hpp>
> 
> + #if defined  __clang__
> 
> +   #pragma clang diagnostic pop
> 
> +-  #pragma clang diagnostic pop
> 
> + #elif defined  __GNUC__
> 
> +-  #pragma GCC diagnostic pop
> 
> +   #pragma GCC diagnostic pop
> 
> + #elif defined _MSC_VER
> 
> +   #pragma warning(pop)
> 
> diff --git a/devel/cbmc/pkg-descr b/devel/cbmc/pkg-descr
> 
> new file mode 100644
> 
> index 000000000000..2004194d7c43
> 
> --- /dev/null
> 
> +++ b/devel/cbmc/pkg-descr
> 
> @@ -0,0 +1,7 @@
> 
> +CBMC is a Bounded Model Checker for C and C++ programs.
> 
> +It supports C89, C99, most of C11 and most compiler extensions provided by gcc
> 
> +and Visual Studio. It allows verifying array bounds (buffer overflows), pointer
> 
> +safety, exceptions and user-specified assertions. Furthermore, it can check C
> 
> +and C++ for consistency with other languages, such as Verilog.
> 
> +The verification is performed by unwinding the loops in the program and passing
> 
> +the resulting equation to a decision procedure.
> 
> diff --git a/devel/cbmc/pkg-plist b/devel/cbmc/pkg-plist
> 
> new file mode 100644
> 
> index 000000000000..2d23b585ef57
> 
> --- /dev/null
> 
> +++ b/devel/cbmc/pkg-plist
> 
> @@ -0,0 +1,23 @@
> 
> +bin/cbmc
> 
> +bin/crangler
> 
> +bin/goto-analyzer
> 
> +bin/goto-cc
> 
> +bin/goto-diff
> 
> +bin/goto-instrument
> 
> +bin/goto-inspect
> 
> +bin/goto-harness
> 
> +bin/goto-synthesizer
> 
> +bin/symtab2gb
> 
> +bin/ls_parse.py [http://parse.py]
> 
> +bin/goto-gcc
> 
> +bin/goto-ld
> 
> +share/man/man1/cbmc.1.gz
> 
> +share/man/man1/crangler.1.gz
> 
> +share/man/man1/goto-analyzer.1.gz
> 
> +share/man/man1/goto-cc.1.gz
> 
> +share/man/man1/goto-diff.1.gz
> 
> +share/man/man1/goto-harness.1.gz
> 
> +share/man/man1/goto-inspect.1.gz
> 
> +share/man/man1/goto-instrument.1.gz
> 
> +share/man/man1/goto-synthesizer.1.gz
> 
> +share/man/man1/symtab2gb.1.gz

Hi,

Are these patches upstreamed or backported?

Best regards,

Daniel (diizzy@)