--- a/src/BuiltIn/succSymbol.hh +++ b/src/BuiltIn/succSymbol.hh @@ -46,6 +46,15 @@ Vector& terms); void postInterSymbolPass(); void reset(); + +#if SIZEOF_LONG < 8 + DagNode* makeNatDag(Int64 nat) + { + mpz_class bigNat; + mpz_import(bigNat.get_mpz_t(), 1, 1, sizeof(nat), 0, 0, &nat); + return makeNatDag(bigNat); + } +#endif // // Functions special to SuccSymbol. // --- a/src/Meta/interpreterManagerSymbol.cc +++ b/src/Meta/interpreterManagerSymbol.cc @@ -599,6 +599,12 @@ DagNode* InterpreterManagerSymbol::upRewriteCount(const RewritingContext* context) { - mpz_class totalCount(context->getTotalCount()); +#if SIZEOF_LONG == 8 + mpz_class totalCount(context->getTotalCount()); +#else + Int64 totalCount64 = context->getTotalCount(); + mpz_class totalCount; + mpz_import(totalCount.get_mpz_t(), 1, 1, sizeof(totalCount64), 0, 0, &totalCount64); +#endif return metaLevel->upNat(totalCount); }