v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
checked_math_impl.h File Reference
#include <stdint.h>
#include <cmath>
#include <concepts>
#include <limits>
#include <type_traits>
#include "src/base/numerics/safe_conversions.h"
#include "src/base/numerics/safe_math_shared_impl.h"
Include dependency graph for checked_math_impl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  v8::base::internal::CheckedAddOp< T, U >
 
struct  v8::base::internal::CheckedAddOp< T, U >
 
struct  v8::base::internal::CheckedSubOp< T, U >
 
struct  v8::base::internal::CheckedSubOp< T, U >
 
struct  v8::base::internal::CheckedMulOp< T, U >
 
struct  v8::base::internal::CheckedMulOp< T, U >
 
struct  v8::base::internal::CheckedDivOp< T, U >
 
struct  v8::base::internal::CheckedDivOp< T, U >
 
struct  v8::base::internal::CheckedModOp< T, U >
 
struct  v8::base::internal::CheckedModOp< T, U >
 
struct  v8::base::internal::CheckedLshOp< T, U >
 
struct  v8::base::internal::CheckedLshOp< T, U >
 
struct  v8::base::internal::CheckedRshOp< T, U >
 
struct  v8::base::internal::CheckedRshOp< T, U >
 
struct  v8::base::internal::CheckedAndOp< T, U >
 
struct  v8::base::internal::CheckedAndOp< T, U >
 
struct  v8::base::internal::CheckedOrOp< T, U >
 
struct  v8::base::internal::CheckedOrOp< T, U >
 
struct  v8::base::internal::CheckedXorOp< T, U >
 
struct  v8::base::internal::CheckedXorOp< T, U >
 
struct  v8::base::internal::CheckedMaxOp< T, U >
 
struct  v8::base::internal::CheckedMaxOp< T, U >
 
struct  v8::base::internal::CheckedMinOp< T, U >
 
struct  v8::base::internal::CheckedMinOp< T, U >
 
struct  v8::base::internal::GetNumericRepresentation< NumericType >
 
class  v8::base::internal::CheckedNumericState< T, type >
 
class  v8::base::internal::CheckedNumericState< T, NUMERIC_INTEGER >
 
class  v8::base::internal::CheckedNumericState< T, NUMERIC_FLOATING >
 

Namespaces

namespace  v8
 
namespace  v8::base
 
namespace  v8::base::internal
 

Macros

#define BASE_FLOAT_ARITHMETIC_OPS(NAME, OP)
 

Enumerations

enum  v8::base::internal::NumericRepresentation { v8::base::internal::NUMERIC_INTEGER , v8::base::internal::NUMERIC_FLOATING , v8::base::internal::NUMERIC_UNKNOWN }
 

Functions

template<typename T >
constexpr bool v8::base::internal::CheckedAddImpl (T x, T y, T *result)
 
template<typename T >
constexpr bool v8::base::internal::CheckedSubImpl (T x, T y, T *result)
 
template<typename T >
constexpr bool v8::base::internal::CheckedMulImpl (T x, T y, T *result)
 

Macro Definition Documentation

◆ BASE_FLOAT_ARITHMETIC_OPS

#define BASE_FLOAT_ARITHMETIC_OPS ( NAME,
OP )
Value:
template <typename T, typename U> \
requires(std::floating_point<T> || std::floating_point<U>) \
struct Checked##NAME##Op<T, U> { \
using result_type = MaxExponentPromotion<T, U>; \
template <typename V> \
static constexpr bool Do(T x, U y, V* result) { \
const result_type presult = x OP y; \
if (!IsValueInRangeForNumericType<V>(presult)) return false; \
*result = static_cast<V>(presult); \
return true; \
} \
};
#define V(Name)
ZoneVector< RpoNumber > & result
int y
int x
#define OP(kType)
#define NAME(feat,...)

Definition at line 455 of file checked_math_impl.h.