##// END OF EJS Templates
cext: fix Python 3.11 compatibility - Py_SIZE is not an lvalue (issue6610)...
cext: fix Python 3.11 compatibility - Py_SIZE is not an lvalue (issue6610) Py_SIZE was made a static inline function during Python 3.10 development, as described on https://vstinner.github.io/c-api-opaque-structures.html . e92ca942ddca updated the Mercurial code base accordingly, but somehow missed a couple of cases introduced long time ago in a8c948ee3668. The Python change was dropped for 3.10, but is coming back again in 3.11 .

File last commit:

r44013:6f5c352f default
r49153:e3580733 stable
Show More
fuzzutil.h
37 lines | 1002 B | text/x-c | CLexer
#ifndef CONTRIB_FUZZ_FUZZUTIL_H
#define CONTRIB_FUZZ_FUZZUTIL_H
#include <iostream>
#include <memory>
#include <stdint.h>
/* Try and use std::optional, but failing that assume we'll have a
* workable https://abseil.io/ install on the include path to get
* their backport of std::optional. */
#ifdef __has_include
#if __has_include(<optional>) && __cplusplus >= 201703L
#include <optional>
#define CONTRIB_FUZZ_HAVE_STD_OPTIONAL
#endif
#endif
#ifdef CONTRIB_FUZZ_HAVE_STD_OPTIONAL
namespace contrib
{
using std::nullopt;
using std::optional;
} /* namespace contrib */
#else
#include "third_party/absl/types/optional.h"
namespace contrib
{
using absl::nullopt;
using absl::optional;
} /* namespace contrib */
#endif
/* set DEBUG to 1 for a few debugging prints, or 2 for a lot */
#define DEBUG 0
#define LOG(level) \
if (level <= DEBUG) \
std::cout
#endif /* CONTRIB_FUZZ_FUZZUTIL_H */