<commit_before>
#include <vector>

#include "builtin_overflow.hpp"
#include "process.hpp"

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-local-typedef"
#include "safeint3.hpp"
#pragma clang diagnostic pop

namespace processwarp {

/**
 * @param SFUNC SafeIntの演算関数
 * @param INT_T 計算のベースになる整数型
 * @param WIDTH 整数のビット幅
 */
#define M_CASE_PER_WIDTH(SFUNC, INT_T, WIDTH)                           \
  case WIDTH: {                                                         \
    INT_T a = static_cast<INT_T>(Process::read_builtin_param_i##WIDTH(src, &seek)); \
    INT_T b = static_cast<INT_T>(Process::read_builtin_param_i##WIDTH(src, &seek)); \
    INT_T res;                                                          \
    bool flg = SFUNC<INT_T, INT_T>(a, b, res);                          \
    thread.memory->write<INT_T>(dst, res);                              \
    thread.memory->write<uint8_t>(dst + sizeof(INT_T), flg ? 0x00 : 0xff); \
  } break

/**
 * @param FNAME 作成する関数名
 * @param SFUNC SafeIntの演算関数
 * @param I16 16bit幅の計算のベースになる整数型<commit_msg>ignore a warning that happened in another product, we depending<commit_after>
#include <vector>

#include "builtin_overflow.hpp"
#include "process.hpp"

#ifdef __clang__
#  pragma clang diagnostic push
#  pragma clang diagnostic ignored "-Wunused-local-typedef"
#  include "safeint3.hpp"
#  pragma clang diagnostic pop
#elif defined(__GNUC__)
#  pragma GCC diagnostic push
#  pragma GCC diagnostic ignored "-Wattributes"
#  include "safeint3.hpp"
#  pragma GCC diagnostic pop
#else
#  include "safeint3.hpp"
#endif

namespace processwarp {

/**
 * @param SFUNC SafeIntの演算関数
 * @param INT_T 計算のベースになる整数型
 * @param WIDTH 整数のビット幅
 */
#define M_CASE_PER_WIDTH(SFUNC, INT_T, WIDTH)                           \
  case WIDTH: {                                                         \
    INT_T a = static_cast<INT_T>(Process::read_builtin_param_i##WIDTH(src, &seek)); \
    INT_T b = static_cast<INT_T>(Process::read_builtin_param_i##WIDTH(src, &seek)); \
    INT_T res;                                                          \
    bool flg = SFUNC<INT_T, INT_T>(a, b, res);                          \
    thread.memory->write<INT_T>(dst, res);                              \
    thread.memory->write<uint8_t>(dst + sizeof(INT_T), flg ? 0x00 : 0xff); \
  } break

/**
 * @param FNAME 作成する関数名
 * @param SFUNC SafeIntの演算関数
 * @param I16 16bit幅の計算のベースになる整数型
{'fraction_non_alphanumeric': 0.11065405183052242, 'fraction_numerical': 0.00904977375565611, 'mean_word_length': 2.2169312169312168, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '494377', 'n_tokens_mistral': 857, 'n_tokens_neox': 846, 'n_words': 175}