https://chromium.googlesource.com/v8/v8/+/d15d49b09dc7%5E%21/ --- cargo-crates/v8-0.47.1/v8/include/v8-internal.h.orig 1973-11-29 21:33:09 UTC +++ cargo-crates/v8-0.47.1/v8/include/v8-internal.h @@ -413,7 +413,7 @@ class Internals { static const int kNodeClassIdOffset = 1 * kApiSystemPointerSize; static const int kNodeFlagsOffset = 1 * kApiSystemPointerSize + 3; - static const int kNodeStateMask = 0x7; + static const int kNodeStateMask = 0x3; static const int kNodeStateIsWeakValue = 2; static const int kFirstNonstringType = 0x80; --- cargo-crates/v8-0.47.1/v8/src/ast/ast.h.orig 1973-11-29 21:33:09 UTC +++ cargo-crates/v8-0.47.1/v8/src/ast/ast.h @@ -1006,7 +1006,7 @@ class Literal final : public Expression { friend class AstNodeFactory; friend Zone; - using TypeField = Expression::NextBitField; + using TypeField = Expression::NextBitField; Literal(int smi, int position) : Expression(position, kLiteral), smi_(smi) { bit_field_ = TypeField::update(bit_field_, kSmi); --- cargo-crates/v8-0.47.1/v8/src/base/bit-field.h.orig 1973-11-29 21:33:09 UTC +++ cargo-crates/v8-0.47.1/v8/src/base/bit-field.h @@ -40,6 +40,11 @@ class BitField final { static constexpr U kNumValues = U{1} << kSize; // Value for the field with all bits set. + // If clang complains + // "constexpr variable 'kMax' must be initialized by a constant expression" + // on this line, then you're creating a BitField for an enum with more bits + // than needed for the enum values. Either reduce the BitField size, + // or give the enum an explicit underlying type. static constexpr T kMax = static_cast(kNumValues - 1); template --- cargo-crates/v8-0.47.1/v8/src/compiler/backend/instruction-codes.h.orig 1973-11-29 21:33:09 UTC +++ cargo-crates/v8-0.47.1/v8/src/compiler/backend/instruction-codes.h @@ -195,7 +195,7 @@ V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostrea V(None) \ TARGET_ADDRESSING_MODE_LIST(V) -enum AddressingMode { +enum AddressingMode : uint8_t { #define DECLARE_ADDRESSING_MODE(Name) kMode_##Name, ADDRESSING_MODE_LIST(DECLARE_ADDRESSING_MODE) #undef DECLARE_ADDRESSING_MODE @@ -306,7 +306,7 @@ using LaneSizeField = base::BitField; // LaneSizeField and AccessModeField are helper types to encode/decode a lane // size, an access mode, or both inside the overlapping MiscField. using LaneSizeField = base::BitField; -using AccessModeField = base::BitField; +using AccessModeField = base::BitField; // TODO(turbofan): {HasMemoryAccessMode} is currently only used to guard // decoding (in CodeGenerator and InstructionScheduler). Encoding (in // InstructionSelector) is not yet guarded. There are in fact instructions for --- cargo-crates/v8-0.47.1/v8/src/compiler/backend/instruction.h.orig 1973-11-29 21:33:09 UTC +++ cargo-crates/v8-0.47.1/v8/src/compiler/backend/instruction.h @@ -591,8 +591,8 @@ class LocationOperand : public InstructionOperand { } static_assert(KindField::kSize == 3); - using LocationKindField = base::BitField64; - using RepresentationField = base::BitField64; + using LocationKindField = base::BitField64; + using RepresentationField = LocationKindField::Next; using IndexField = base::BitField64; }; --- cargo-crates/v8-0.47.1/v8/src/handles/global-handles.cc.orig 1973-11-29 21:33:09 UTC +++ cargo-crates/v8-0.47.1/v8/src/handles/global-handles.cc @@ -573,7 +573,7 @@ class GlobalHandles::Node final : public NodeBase; + using NodeState = base::BitField8; // Tracks whether the node is contained in the set of young nodes. This bit // persists across allocating and freeing a node as it's only cleaned up // when young nodes are proccessed. --- cargo-crates/v8-0.47.1/v8/src/maglev/maglev-ir.h.orig 1973-11-29 21:33:09 UTC +++ cargo-crates/v8-0.47.1/v8/src/maglev/maglev-ir.h @@ -271,7 +271,7 @@ class OpProperties { return kValueRepresentationBits::decode(bitfield_); } constexpr bool is_pure() const { - return (bitfield_ | kPureMask) == kPureValue; + return (bitfield_ & kPureMask) == kPureValue; } constexpr bool is_required_when_unused() const { return can_write() || non_memory_side_effects(); --- cargo-crates/v8-0.47.1/v8/src/wasm/wasm-code-manager.h.orig 1973-11-29 21:33:09 UTC +++ cargo-crates/v8-0.47.1/v8/src/wasm/wasm-code-manager.h @@ -463,7 +463,7 @@ class V8_EXPORT_PRIVATE WasmCode final { int trap_handler_index_ = -1; // Bits encoded in {flags_}: - using KindField = base::BitField8; + using KindField = base::BitField8; using ExecutionTierField = KindField::Next; using ForDebuggingField = ExecutionTierField::Next;