diff --git a/src/Sema.zig b/src/Sema.zig index 9fd862f50c..cd1711c8b7 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -188,6 +188,7 @@ const AnalUnit = InternPool.AnalUnit; const ComptimeAllocIndex = InternPool.ComptimeAllocIndex; const Cache = std.Build.Cache; const LowerZon = @import("Sema/LowerZon.zig"); +const arith = @import("Sema/arith.zig"); pub const default_branch_quota = 1000; pub const default_reference_trace_len = 2; @@ -2325,11 +2326,11 @@ fn failWithNeededComptime(sema: *Sema, block: *Block, src: LazySrcLoc, reason: ? return sema.failWithOwnedErrorMsg(fail_block, msg); } -fn failWithUseOfUndef(sema: *Sema, block: *Block, src: LazySrcLoc) CompileError { +pub fn failWithUseOfUndef(sema: *Sema, block: *Block, src: LazySrcLoc) CompileError { return sema.fail(block, src, "use of undefined value here causes undefined behavior", .{}); } -fn failWithDivideByZero(sema: *Sema, block: *Block, src: LazySrcLoc) CompileError { +pub fn failWithDivideByZero(sema: *Sema, block: *Block, src: LazySrcLoc) CompileError { return sema.fail(block, src, "division by zero here causes undefined behavior", .{}); } @@ -2391,22 +2392,15 @@ fn failWithErrorSetCodeMissing( }); } -fn failWithIntegerOverflow(sema: *Sema, block: *Block, src: LazySrcLoc, int_ty: Type, val: Value, vector_index: usize) CompileError { +pub fn failWithIntegerOverflow(sema: *Sema, block: *Block, src: LazySrcLoc, int_ty: Type, val: Value, vector_index: ?usize) CompileError { const pt = sema.pt; - const zcu = pt.zcu; - if (int_ty.zigTypeTag(zcu) == .vector) { - const msg = msg: { - const msg = try sema.errMsg(src, "overflow of vector type '{}' with value '{}'", .{ - int_ty.fmt(pt), val.fmtValueSema(pt, sema), - }); - errdefer msg.destroy(sema.gpa); - try sema.errNote(src, msg, "when computing vector element at index '{d}'", .{vector_index}); - break :msg msg; - }; - return sema.failWithOwnedErrorMsg(block, msg); - } - return sema.fail(block, src, "overflow of integer type '{}' with value '{}'", .{ - int_ty.fmt(pt), val.fmtValueSema(pt, sema), + return sema.failWithOwnedErrorMsg(block, msg: { + const msg = try sema.errMsg(src, "overflow of integer type '{}' with value '{}'", .{ + int_ty.fmt(pt), val.fmtValueSema(pt, sema), + }); + errdefer msg.destroy(sema.gpa); + if (vector_index) |i| try sema.errNote(src, msg, "when computing vector element at index '{d}'", .{i}); + break :msg msg; }); } @@ -10327,7 +10321,9 @@ fn intCast( .storage = .{ .repeated_elem = one_scalar.toIntern() }, } })) else one_scalar; const range_minus_one = try dest_max_val.shl(one, unsigned_operand_ty, sema.arena, pt); - break :range_val try sema.intAdd(range_minus_one, one, unsigned_operand_ty, undefined); + const result = try arith.addWithOverflow(sema, unsigned_operand_ty, range_minus_one, one); + assert(result.overflow_bit.compareAllWithZero(.eq, zcu)); + break :range_val result.wrapped_result; } else try pt.getCoerced(dest_max_val, unsigned_operand_ty); const dest_range = Air.internedToRef(dest_range_val.toIntern()); @@ -12723,10 +12719,9 @@ fn analyzeSwitchRuntimeBlock( while (item.compareScalar(.lte, item_last, operand_ty, zcu)) : ({ // Previous validation has resolved any possible lazy values. - item = sema.intAddScalar(item, try pt.intValue(operand_ty, 1), operand_ty) catch |err| switch (err) { - error.Overflow => unreachable, - else => |e| return e, - }; + const result = try arith.incrementDefinedInt(sema, operand_ty, item); + assert(!result.overflow); + item = result.val; }) { cases_len += 1; @@ -14183,8 +14178,8 @@ fn zirShl( // TODO coerce rhs if air_tag is not shl_sat const rhs_is_comptime_int = try sema.checkIntType(block, rhs_src, scalar_rhs_ty); - const maybe_lhs_val = try sema.resolveValueIntable(lhs); - const maybe_rhs_val = try sema.resolveValueIntable(rhs); + const maybe_lhs_val = try sema.resolveValueResolveLazy(lhs); + const maybe_rhs_val = try sema.resolveValueResolveLazy(rhs); if (maybe_rhs_val) |rhs_val| { if (rhs_val.isUndef(zcu)) { @@ -14359,8 +14354,8 @@ fn zirShr( try sema.checkVectorizableBinaryOperands(block, src, lhs_ty, rhs_ty, lhs_src, rhs_src); const scalar_ty = lhs_ty.scalarType(zcu); - const maybe_lhs_val = try sema.resolveValueIntable(lhs); - const maybe_rhs_val = try sema.resolveValueIntable(rhs); + const maybe_lhs_val = try sema.resolveValueResolveLazy(lhs); + const maybe_rhs_val = try sema.resolveValueResolveLazy(rhs); const runtime_src = if (maybe_rhs_val) |rhs_val| rs: { if (rhs_val.isUndef(zcu)) { @@ -14511,8 +14506,8 @@ fn zirBitwise( const runtime_src = runtime: { // TODO: ask the linker what kind of relocations are available, and // in some cases emit a Value that means "this decl's address AND'd with this operand". - if (try sema.resolveValueIntable(casted_lhs)) |lhs_val| { - if (try sema.resolveValueIntable(casted_rhs)) |rhs_val| { + if (try sema.resolveValueResolveLazy(casted_lhs)) |lhs_val| { + if (try sema.resolveValueResolveLazy(casted_rhs)) |rhs_val| { const result_val = switch (air_tag) { .bit_and => try lhs_val.bitwiseAnd(rhs_val, resolved_type, sema.arena, pt), .bit_or => try lhs_val.bitwiseOr(rhs_val, resolved_type, sema.arena, pt), @@ -15289,8 +15284,8 @@ fn zirNegate(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air. if (rhs_scalar_ty.isAnyFloat()) { // We handle float negation here to ensure negative zero is represented in the bits. if (try sema.resolveValue(rhs)) |rhs_val| { - if (rhs_val.isUndef(zcu)) return pt.undefRef(rhs_ty); - return Air.internedToRef((try rhs_val.floatNeg(rhs_ty, sema.arena, pt)).toIntern()); + const result = try arith.negateFloat(sema, rhs_ty, rhs_val); + return Air.internedToRef(result.toIntern()); } try sema.requireRuntimeBlock(block, src, null); return block.addUnOp(if (block.float_mode == .optimized) .neg_optimized else .neg, rhs); @@ -15359,24 +15354,22 @@ fn zirDiv(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Ins try sema.checkVectorizableBinaryOperands(block, src, lhs_ty, rhs_ty, lhs_src, rhs_src); try sema.checkInvalidPtrIntArithmetic(block, src, lhs_ty); - const instructions = &[_]Air.Inst.Ref{ lhs, rhs }; - const resolved_type = try sema.resolvePeerTypes(block, src, instructions, .{ - .override = &[_]?LazySrcLoc{ lhs_src, rhs_src }, + const resolved_type = try sema.resolvePeerTypes(block, src, &.{ lhs, rhs }, .{ + .override = &.{ lhs_src, rhs_src }, }); const casted_lhs = try sema.coerce(block, resolved_type, lhs, lhs_src); const casted_rhs = try sema.coerce(block, resolved_type, rhs, rhs_src); const lhs_scalar_ty = lhs_ty.scalarType(zcu); - const rhs_scalar_ty = rhs_ty.scalarType(zcu); const scalar_tag = resolved_type.scalarType(zcu).zigTypeTag(zcu); const is_int = scalar_tag == .int or scalar_tag == .comptime_int; try sema.checkArithmeticOp(block, src, scalar_tag, lhs_zig_ty_tag, rhs_zig_ty_tag, .div); - const maybe_lhs_val = try sema.resolveValueIntable(casted_lhs); - const maybe_rhs_val = try sema.resolveValueIntable(casted_rhs); + const maybe_lhs_val = try sema.resolveValueResolveLazy(casted_lhs); + const maybe_rhs_val = try sema.resolveValueResolveLazy(casted_rhs); if ((lhs_ty.zigTypeTag(zcu) == .comptime_float and rhs_ty.zigTypeTag(zcu) == .comptime_int) or (lhs_ty.zigTypeTag(zcu) == .comptime_int and rhs_ty.zigTypeTag(zcu) == .comptime_float)) @@ -15399,92 +15392,38 @@ fn zirDiv(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Ins // TODO: emit compile error when .div is used on integers and there would be an // ambiguous result between div_floor and div_trunc. - // For integers: - // If the lhs is zero, then zero is returned regardless of rhs. - // If the rhs is zero, compile error for division by zero. - // If the rhs is undefined, compile error because there is a possible - // value (zero) for which the division would be illegal behavior. - // If the lhs is undefined: - // * if lhs type is signed: - // * if rhs is comptime-known and not -1, result is undefined - // * if rhs is -1 or runtime-known, compile error because there is a - // possible value (-min_int / -1) for which division would be - // illegal behavior. - // * if lhs type is unsigned, undef is returned regardless of rhs. + // The rules here are like those in `analyzeArithmetic`: // - // For floats: - // If the rhs is zero: - // * comptime_float: compile error for division by zero. - // * other float type: - // * if the lhs is zero: QNaN - // * otherwise: +Inf or -Inf depending on lhs sign - // If the rhs is undefined: - // * comptime_float: compile error because there is a possible - // value (zero) for which the division would be illegal behavior. - // * other float type: result is undefined - // If the lhs is undefined, result is undefined. - switch (scalar_tag) { - .int, .comptime_int, .comptime_float => { - if (maybe_lhs_val) |lhs_val| { - if (!lhs_val.isUndef(zcu)) { - if (try lhs_val.compareAllWithZeroSema(.eq, pt)) { - const scalar_zero = switch (scalar_tag) { - .comptime_float, .float => try pt.floatValue(resolved_type.scalarType(zcu), 0.0), - .comptime_int, .int => try pt.intValue(resolved_type.scalarType(zcu), 0), - else => unreachable, - }; - const zero_val = try sema.splat(resolved_type, scalar_zero); - return Air.internedToRef(zero_val.toIntern()); - } - } - } - if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - return sema.failWithUseOfUndef(block, rhs_src); - } - if (!(try rhs_val.compareAllWithZeroSema(.neq, pt))) { - return sema.failWithDivideByZero(block, rhs_src); - } - // TODO: if the RHS is one, return the LHS directly - } - }, - else => {}, - } + // * If both operands are comptime-known, call the corresponding function in `arith`. + // Inputs which would be IB at runtime are compile errors. + // + // * Otherwise, if one operand is comptime-known `undefined`, we either trigger a compile error + // or return `undefined`, depending on whether this operator can trigger IB. + // + // * No other comptime operand determines a comptime result, so remaining cases are runtime ops. - const runtime_src = rs: { - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isUndef(zcu)) { - if (lhs_scalar_ty.isSignedInt(zcu) and rhs_scalar_ty.isSignedInt(zcu)) { - if (maybe_rhs_val) |rhs_val| { - if (try sema.compareAll(rhs_val, .neq, try pt.intValue(resolved_type, -1), resolved_type)) { - return pt.undefRef(resolved_type); - } - } - return sema.failWithUseOfUndef(block, rhs_src); - } - return pt.undefRef(resolved_type); - } + const allow_div_zero = !is_int and + resolved_type.toIntern() != .comptime_float_type and + block.float_mode == .strict; - if (maybe_rhs_val) |rhs_val| { - if (is_int) { - var overflow_idx: ?usize = null; - const res = try lhs_val.intDiv(rhs_val, resolved_type, &overflow_idx, sema.arena, pt); - if (overflow_idx) |vec_idx| { - return sema.failWithIntegerOverflow(block, src, resolved_type, res, vec_idx); - } - return Air.internedToRef(res.toIntern()); - } else { - return Air.internedToRef((try lhs_val.floatDiv(rhs_val, resolved_type, sema.arena, pt)).toIntern()); - } - } else { - break :rs rhs_src; - } - } else { - break :rs lhs_src; + if (maybe_lhs_val) |lhs_val| { + if (maybe_rhs_val) |rhs_val| { + const result = try arith.div(sema, block, resolved_type, lhs_val, rhs_val, src, lhs_src, rhs_src, .div); + return Air.internedToRef(result.toIntern()); } - }; - - try sema.requireRuntimeBlock(block, src, runtime_src); + if (allow_div_zero) { + if (lhs_val.isUndefDeep(zcu)) return pt.undefRef(resolved_type); + } else { + if (lhs_val.anyScalarIsUndef(zcu)) return sema.failWithUseOfUndef(block, lhs_src); + } + } else if (maybe_rhs_val) |rhs_val| { + if (allow_div_zero) { + if (rhs_val.isUndefDeep(zcu)) return pt.undefRef(resolved_type); + } else { + if (rhs_val.anyScalarIsUndef(zcu)) return sema.failWithUseOfUndef(block, rhs_src); + if (rhs_val.anyScalarIsZero(zcu)) return sema.failWithDivideByZero(block, rhs_src); + } + } if (block.wantSafety()) { try sema.addDivIntOverflowSafety(block, src, resolved_type, lhs_scalar_ty, maybe_lhs_val, maybe_rhs_val, casted_lhs, casted_rhs, is_int); @@ -15525,9 +15464,8 @@ fn zirDivExact(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai try sema.checkVectorizableBinaryOperands(block, src, lhs_ty, rhs_ty, lhs_src, rhs_src); try sema.checkInvalidPtrIntArithmetic(block, src, lhs_ty); - const instructions = &[_]Air.Inst.Ref{ lhs, rhs }; - const resolved_type = try sema.resolvePeerTypes(block, src, instructions, .{ - .override = &[_]?LazySrcLoc{ lhs_src, rhs_src }, + const resolved_type = try sema.resolvePeerTypes(block, src, &.{ lhs, rhs }, .{ + .override = &.{ lhs_src, rhs_src }, }); const casted_lhs = try sema.coerce(block, resolved_type, lhs, lhs_src); @@ -15540,75 +15478,21 @@ fn zirDivExact(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai try sema.checkArithmeticOp(block, src, scalar_tag, lhs_zig_ty_tag, rhs_zig_ty_tag, .div_exact); - const maybe_lhs_val = try sema.resolveValueIntable(casted_lhs); - const maybe_rhs_val = try sema.resolveValueIntable(casted_rhs); + const maybe_lhs_val = try sema.resolveValueResolveLazy(casted_lhs); + const maybe_rhs_val = try sema.resolveValueResolveLazy(casted_rhs); - const runtime_src = rs: { - // For integers: - // If the lhs is zero, then zero is returned regardless of rhs. - // If the rhs is zero, compile error for division by zero. - // If the rhs is undefined, compile error because there is a possible - // value (zero) for which the division would be illegal behavior. - // If the lhs is undefined, compile error because there is a possible - // value for which the division would result in a remainder. - // TODO: emit runtime safety for if there is a remainder - // TODO: emit runtime safety for division by zero - // - // For floats: - // If the rhs is zero, compile error for division by zero. - // If the rhs is undefined, compile error because there is a possible - // value (zero) for which the division would be illegal behavior. - // If the lhs is undefined, compile error because there is a possible - // value for which the division would result in a remainder. - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isUndef(zcu)) { - return sema.failWithUseOfUndef(block, rhs_src); - } else { - if (try lhs_val.compareAllWithZeroSema(.eq, pt)) { - const scalar_zero = switch (scalar_tag) { - .comptime_float, .float => try pt.floatValue(resolved_type.scalarType(zcu), 0.0), - .comptime_int, .int => try pt.intValue(resolved_type.scalarType(zcu), 0), - else => unreachable, - }; - const zero_val = try sema.splat(resolved_type, scalar_zero); - return Air.internedToRef(zero_val.toIntern()); - } - } - } + // Because `@divExact` can trigger Illegal Behavior, undefined operands trigger Illegal Behavior. + + if (maybe_lhs_val) |lhs_val| { if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - return sema.failWithUseOfUndef(block, rhs_src); - } - if (!(try rhs_val.compareAllWithZeroSema(.neq, pt))) { - return sema.failWithDivideByZero(block, rhs_src); - } - // TODO: if the RHS is one, return the LHS directly + const result = try arith.div(sema, block, resolved_type, lhs_val, rhs_val, src, lhs_src, rhs_src, .div_exact); + return Air.internedToRef(result.toIntern()); } - if (maybe_lhs_val) |lhs_val| { - if (maybe_rhs_val) |rhs_val| { - if (is_int) { - const modulus_val = try lhs_val.intMod(rhs_val, resolved_type, sema.arena, pt); - if (!(modulus_val.compareAllWithZero(.eq, zcu))) { - return sema.fail(block, src, "exact division produced remainder", .{}); - } - var overflow_idx: ?usize = null; - const res = try lhs_val.intDiv(rhs_val, resolved_type, &overflow_idx, sema.arena, pt); - if (overflow_idx) |vec_idx| { - return sema.failWithIntegerOverflow(block, src, resolved_type, res, vec_idx); - } - return Air.internedToRef(res.toIntern()); - } else { - const modulus_val = try lhs_val.floatMod(rhs_val, resolved_type, sema.arena, pt); - if (!(modulus_val.compareAllWithZero(.eq, zcu))) { - return sema.fail(block, src, "exact division produced remainder", .{}); - } - return Air.internedToRef((try lhs_val.floatDiv(rhs_val, resolved_type, sema.arena, pt)).toIntern()); - } - } else break :rs rhs_src; - } else break :rs lhs_src; - }; - - try sema.requireRuntimeBlock(block, src, runtime_src); + if (lhs_val.anyScalarIsUndef(zcu)) return sema.failWithUseOfUndef(block, lhs_src); + } else if (maybe_rhs_val) |rhs_val| { + if (rhs_val.anyScalarIsUndef(zcu)) return sema.failWithUseOfUndef(block, rhs_src); + if (rhs_val.anyScalarIsZero(zcu)) return sema.failWithDivideByZero(block, rhs_src); + } // Depending on whether safety is enabled, we will have a slightly different strategy // here. The `div_exact` AIR instruction causes undefined behavior if a remainder @@ -15691,91 +15575,45 @@ fn zirDivFloor(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai try sema.checkVectorizableBinaryOperands(block, src, lhs_ty, rhs_ty, lhs_src, rhs_src); try sema.checkInvalidPtrIntArithmetic(block, src, lhs_ty); - const instructions = &[_]Air.Inst.Ref{ lhs, rhs }; - const resolved_type = try sema.resolvePeerTypes(block, src, instructions, .{ - .override = &[_]?LazySrcLoc{ lhs_src, rhs_src }, + const resolved_type = try sema.resolvePeerTypes(block, src, &.{ lhs, rhs }, .{ + .override = &.{ lhs_src, rhs_src }, }); const casted_lhs = try sema.coerce(block, resolved_type, lhs, lhs_src); const casted_rhs = try sema.coerce(block, resolved_type, rhs, rhs_src); const lhs_scalar_ty = lhs_ty.scalarType(zcu); - const rhs_scalar_ty = rhs_ty.scalarType(zcu); const scalar_tag = resolved_type.scalarType(zcu).zigTypeTag(zcu); const is_int = scalar_tag == .int or scalar_tag == .comptime_int; try sema.checkArithmeticOp(block, src, scalar_tag, lhs_zig_ty_tag, rhs_zig_ty_tag, .div_floor); - const maybe_lhs_val = try sema.resolveValueIntable(casted_lhs); - const maybe_rhs_val = try sema.resolveValueIntable(casted_rhs); + const maybe_lhs_val = try sema.resolveValueResolveLazy(casted_lhs); + const maybe_rhs_val = try sema.resolveValueResolveLazy(casted_rhs); - const runtime_src = rs: { - // For integers: - // If the lhs is zero, then zero is returned regardless of rhs. - // If the rhs is zero, compile error for division by zero. - // If the rhs is undefined, compile error because there is a possible - // value (zero) for which the division would be illegal behavior. - // If the lhs is undefined: - // * if lhs type is signed: - // * if rhs is comptime-known and not -1, result is undefined - // * if rhs is -1 or runtime-known, compile error because there is a - // possible value (-min_int / -1) for which division would be - // illegal behavior. - // * if lhs type is unsigned, undef is returned regardless of rhs. - // TODO: emit runtime safety for division by zero - // - // For floats: - // If the rhs is zero, compile error for division by zero. - // If the rhs is undefined, compile error because there is a possible - // value (zero) for which the division would be illegal behavior. - // If the lhs is undefined, result is undefined. - if (maybe_lhs_val) |lhs_val| { - if (!lhs_val.isUndef(zcu)) { - if (try lhs_val.compareAllWithZeroSema(.eq, pt)) { - const scalar_zero = switch (scalar_tag) { - .comptime_float, .float => try pt.floatValue(resolved_type.scalarType(zcu), 0.0), - .comptime_int, .int => try pt.intValue(resolved_type.scalarType(zcu), 0), - else => unreachable, - }; - const zero_val = try sema.splat(resolved_type, scalar_zero); - return Air.internedToRef(zero_val.toIntern()); - } - } - } + const allow_div_zero = !is_int and + resolved_type.toIntern() != .comptime_float_type and + block.float_mode == .strict; + + if (maybe_lhs_val) |lhs_val| { if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - return sema.failWithUseOfUndef(block, rhs_src); - } - if (!(try rhs_val.compareAllWithZeroSema(.neq, pt))) { - return sema.failWithDivideByZero(block, rhs_src); - } - // TODO: if the RHS is one, return the LHS directly + const result = try arith.div(sema, block, resolved_type, lhs_val, rhs_val, src, lhs_src, rhs_src, .div_floor); + return Air.internedToRef(result.toIntern()); } - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isUndef(zcu)) { - if (lhs_scalar_ty.isSignedInt(zcu) and rhs_scalar_ty.isSignedInt(zcu)) { - if (maybe_rhs_val) |rhs_val| { - if (try sema.compareAll(rhs_val, .neq, try pt.intValue(resolved_type, -1), resolved_type)) { - return pt.undefRef(resolved_type); - } - } - return sema.failWithUseOfUndef(block, rhs_src); - } - return pt.undefRef(resolved_type); - } - - if (maybe_rhs_val) |rhs_val| { - if (is_int) { - return Air.internedToRef((try lhs_val.intDivFloor(rhs_val, resolved_type, sema.arena, pt)).toIntern()); - } else { - return Air.internedToRef((try lhs_val.floatDivFloor(rhs_val, resolved_type, sema.arena, pt)).toIntern()); - } - } else break :rs rhs_src; - } else break :rs lhs_src; - }; - - try sema.requireRuntimeBlock(block, src, runtime_src); + if (allow_div_zero) { + if (lhs_val.isUndefDeep(zcu)) return pt.undefRef(resolved_type); + } else { + if (lhs_val.anyScalarIsUndef(zcu)) return sema.failWithUseOfUndef(block, lhs_src); + } + } else if (maybe_rhs_val) |rhs_val| { + if (allow_div_zero) { + if (rhs_val.isUndefDeep(zcu)) return pt.undefRef(resolved_type); + } else { + if (rhs_val.anyScalarIsUndef(zcu)) return sema.failWithUseOfUndef(block, rhs_src); + if (rhs_val.anyScalarIsZero(zcu)) return sema.failWithDivideByZero(block, rhs_src); + } + } if (block.wantSafety()) { try sema.addDivIntOverflowSafety(block, src, resolved_type, lhs_scalar_ty, maybe_lhs_val, maybe_rhs_val, casted_lhs, casted_rhs, is_int); @@ -15802,95 +15640,45 @@ fn zirDivTrunc(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai try sema.checkVectorizableBinaryOperands(block, src, lhs_ty, rhs_ty, lhs_src, rhs_src); try sema.checkInvalidPtrIntArithmetic(block, src, lhs_ty); - const instructions = &[_]Air.Inst.Ref{ lhs, rhs }; - const resolved_type = try sema.resolvePeerTypes(block, src, instructions, .{ - .override = &[_]?LazySrcLoc{ lhs_src, rhs_src }, + const resolved_type = try sema.resolvePeerTypes(block, src, &.{ lhs, rhs }, .{ + .override = &.{ lhs_src, rhs_src }, }); const casted_lhs = try sema.coerce(block, resolved_type, lhs, lhs_src); const casted_rhs = try sema.coerce(block, resolved_type, rhs, rhs_src); const lhs_scalar_ty = lhs_ty.scalarType(zcu); - const rhs_scalar_ty = rhs_ty.scalarType(zcu); const scalar_tag = resolved_type.scalarType(zcu).zigTypeTag(zcu); const is_int = scalar_tag == .int or scalar_tag == .comptime_int; try sema.checkArithmeticOp(block, src, scalar_tag, lhs_zig_ty_tag, rhs_zig_ty_tag, .div_trunc); - const maybe_lhs_val = try sema.resolveValueIntable(casted_lhs); - const maybe_rhs_val = try sema.resolveValueIntable(casted_rhs); + const maybe_lhs_val = try sema.resolveValueResolveLazy(casted_lhs); + const maybe_rhs_val = try sema.resolveValueResolveLazy(casted_rhs); - const runtime_src = rs: { - // For integers: - // If the lhs is zero, then zero is returned regardless of rhs. - // If the rhs is zero, compile error for division by zero. - // If the rhs is undefined, compile error because there is a possible - // value (zero) for which the division would be illegal behavior. - // If the lhs is undefined: - // * if lhs type is signed: - // * if rhs is comptime-known and not -1, result is undefined - // * if rhs is -1 or runtime-known, compile error because there is a - // possible value (-min_int / -1) for which division would be - // illegal behavior. - // * if lhs type is unsigned, undef is returned regardless of rhs. - // TODO: emit runtime safety for division by zero - // - // For floats: - // If the rhs is zero, compile error for division by zero. - // If the rhs is undefined, compile error because there is a possible - // value (zero) for which the division would be illegal behavior. - // If the lhs is undefined, result is undefined. - if (maybe_lhs_val) |lhs_val| { - if (!lhs_val.isUndef(zcu)) { - if (try lhs_val.compareAllWithZeroSema(.eq, pt)) { - const scalar_zero = switch (scalar_tag) { - .comptime_float, .float => try pt.floatValue(resolved_type.scalarType(zcu), 0.0), - .comptime_int, .int => try pt.intValue(resolved_type.scalarType(zcu), 0), - else => unreachable, - }; - const zero_val = try sema.splat(resolved_type, scalar_zero); - return Air.internedToRef(zero_val.toIntern()); - } - } - } + const allow_div_zero = !is_int and + resolved_type.toIntern() != .comptime_float_type and + block.float_mode == .strict; + + if (maybe_lhs_val) |lhs_val| { if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - return sema.failWithUseOfUndef(block, rhs_src); - } - if (!(try rhs_val.compareAllWithZeroSema(.neq, pt))) { - return sema.failWithDivideByZero(block, rhs_src); - } + const result = try arith.div(sema, block, resolved_type, lhs_val, rhs_val, src, lhs_src, rhs_src, .div_trunc); + return Air.internedToRef(result.toIntern()); } - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isUndef(zcu)) { - if (lhs_scalar_ty.isSignedInt(zcu) and rhs_scalar_ty.isSignedInt(zcu)) { - if (maybe_rhs_val) |rhs_val| { - if (try sema.compareAll(rhs_val, .neq, try pt.intValue(resolved_type, -1), resolved_type)) { - return pt.undefRef(resolved_type); - } - } - return sema.failWithUseOfUndef(block, rhs_src); - } - return pt.undefRef(resolved_type); - } - - if (maybe_rhs_val) |rhs_val| { - if (is_int) { - var overflow_idx: ?usize = null; - const res = try lhs_val.intDiv(rhs_val, resolved_type, &overflow_idx, sema.arena, pt); - if (overflow_idx) |vec_idx| { - return sema.failWithIntegerOverflow(block, src, resolved_type, res, vec_idx); - } - return Air.internedToRef(res.toIntern()); - } else { - return Air.internedToRef((try lhs_val.floatDivTrunc(rhs_val, resolved_type, sema.arena, pt)).toIntern()); - } - } else break :rs rhs_src; - } else break :rs lhs_src; - }; - - try sema.requireRuntimeBlock(block, src, runtime_src); + if (allow_div_zero) { + if (lhs_val.isUndefDeep(zcu)) return pt.undefRef(resolved_type); + } else { + if (lhs_val.anyScalarIsUndef(zcu)) return sema.failWithUseOfUndef(block, lhs_src); + } + } else if (maybe_rhs_val) |rhs_val| { + if (allow_div_zero) { + if (rhs_val.isUndefDeep(zcu)) return pt.undefRef(resolved_type); + } else { + if (rhs_val.anyScalarIsUndef(zcu)) return sema.failWithUseOfUndef(block, rhs_src); + if (rhs_val.anyScalarIsZero(zcu)) return sema.failWithDivideByZero(block, rhs_src); + } + } if (block.wantSafety()) { try sema.addDivIntOverflowSafety(block, src, resolved_type, lhs_scalar_ty, maybe_lhs_val, maybe_rhs_val, casted_lhs, casted_rhs, is_int); @@ -15939,46 +15727,81 @@ fn addDivIntOverflowSafety( if (try rhs_val.compareAll(.neq, neg_one, resolved_type, pt)) return; } - var ok: Air.Inst.Ref = .none; if (resolved_type.zigTypeTag(zcu) == .vector) { - if (maybe_lhs_val == null) { - const min_int_ref = Air.internedToRef(min_int.toIntern()); - ok = try block.addCmpVector(casted_lhs, min_int_ref, .neq); - } - if (maybe_rhs_val == null) { - const neg_one_ref = Air.internedToRef(neg_one.toIntern()); - const rhs_ok = try block.addCmpVector(casted_rhs, neg_one_ref, .neq); - if (ok == .none) { - ok = rhs_ok; - } else { - ok = try block.addBinOp(.bool_or, ok, rhs_ok); + const vec_len = resolved_type.vectorLen(zcu); + + // This is a bool vector whose elements are true if the LHS element does NOT equal `min_int`. + const lhs_ok: Air.Inst.Ref = if (maybe_lhs_val) |lhs_val| ok: { + // The operand is comptime-known; intern a constant bool vector for the potentially unsafe elements. + const min_int_scalar = try min_int.elemValue(pt, 0); + const elems_ok = try sema.arena.alloc(InternPool.Index, vec_len); + for (elems_ok, 0..) |*elem_ok, elem_idx| { + const elem_val = try lhs_val.elemValue(pt, elem_idx); + elem_ok.* = if (elem_val.eqlScalarNum(min_int_scalar, zcu)) .bool_false else .bool_true; } - } - assert(ok != .none); - ok = try block.addInst(.{ + break :ok Air.internedToRef(try pt.intern(.{ .aggregate = .{ + .ty = (try pt.vectorType(.{ + .len = vec_len, + .child = .bool_type, + })).toIntern(), + .storage = .{ .elems = elems_ok }, + } })); + } else ok: { + // The operand isn't comptime-known; add a runtime comparison. + const min_int_ref = Air.internedToRef(min_int.toIntern()); + break :ok try block.addCmpVector(casted_lhs, min_int_ref, .neq); + }; + + // This is a bool vector whose elements are true if the RHS element does NOT equal -1. + const rhs_ok: Air.Inst.Ref = if (maybe_rhs_val) |rhs_val| ok: { + // The operand is comptime-known; intern a constant bool vector for the potentially unsafe elements. + const elems_ok = try sema.arena.alloc(InternPool.Index, vec_len); + for (elems_ok, 0..) |*elem_ok, elem_idx| { + const elem_val = try rhs_val.elemValue(pt, elem_idx); + elem_ok.* = if (elem_val.eqlScalarNum(neg_one_scalar, zcu)) .bool_false else .bool_true; + } + break :ok Air.internedToRef(try pt.intern(.{ .aggregate = .{ + .ty = (try pt.vectorType(.{ + .len = vec_len, + .child = .bool_type, + })).toIntern(), + .storage = .{ .elems = elems_ok }, + } })); + } else ok: { + // The operand isn't comptime-known; add a runtime comparison. + const neg_one_ref = Air.internedToRef(neg_one.toIntern()); + break :ok try block.addCmpVector(casted_rhs, neg_one_ref, .neq); + }; + + const ok = try block.addInst(.{ .tag = .reduce, .data = .{ .reduce = .{ - .operand = ok, + .operand = try block.addBinOp(.bool_or, lhs_ok, rhs_ok), .operation = .And, } }, }); + try sema.addSafetyCheck(block, src, ok, .integer_overflow); } else { - if (maybe_lhs_val == null) { + const lhs_ok: Air.Inst.Ref = if (maybe_lhs_val == null) ok: { const min_int_ref = Air.internedToRef(min_int.toIntern()); - ok = try block.addBinOp(.cmp_neq, casted_lhs, min_int_ref); - } - if (maybe_rhs_val == null) { + break :ok try block.addBinOp(.cmp_neq, casted_lhs, min_int_ref); + } else .none; // means false + const rhs_ok: Air.Inst.Ref = if (maybe_rhs_val == null) ok: { const neg_one_ref = Air.internedToRef(neg_one.toIntern()); - const rhs_ok = try block.addBinOp(.cmp_neq, casted_rhs, neg_one_ref); - if (ok == .none) { - ok = rhs_ok; - } else { - ok = try block.addBinOp(.bool_or, ok, rhs_ok); - } - } - assert(ok != .none); + break :ok try block.addBinOp(.cmp_neq, casted_rhs, neg_one_ref); + } else .none; // means false + + const ok = if (lhs_ok != .none and rhs_ok != .none) + try block.addBinOp(.bool_or, lhs_ok, rhs_ok) + else if (lhs_ok != .none) + lhs_ok + else if (rhs_ok != .none) + rhs_ok + else + unreachable; + + try sema.addSafetyCheck(block, src, ok, .integer_overflow); } - try sema.addSafetyCheck(block, src, ok, .integer_overflow); } fn addDivByZeroSafety( @@ -16046,13 +15869,10 @@ fn zirModRem(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air. try sema.checkVectorizableBinaryOperands(block, src, lhs_ty, rhs_ty, lhs_src, rhs_src); try sema.checkInvalidPtrIntArithmetic(block, src, lhs_ty); - const instructions = &[_]Air.Inst.Ref{ lhs, rhs }; - const resolved_type = try sema.resolvePeerTypes(block, src, instructions, .{ - .override = &[_]?LazySrcLoc{ lhs_src, rhs_src }, + const resolved_type = try sema.resolvePeerTypes(block, src, &.{ lhs, rhs }, .{ + .override = &.{ lhs_src, rhs_src }, }); - const is_vector = resolved_type.zigTypeTag(zcu) == .vector; - const casted_lhs = try sema.coerce(block, resolved_type, lhs, lhs_src); const casted_rhs = try sema.coerce(block, resolved_type, rhs, rhs_src); @@ -16064,96 +15884,66 @@ fn zirModRem(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air. try sema.checkArithmeticOp(block, src, scalar_tag, lhs_zig_ty_tag, rhs_zig_ty_tag, .mod_rem); - const maybe_lhs_val = try sema.resolveValueIntable(casted_lhs); - const maybe_rhs_val = try sema.resolveValueIntable(casted_rhs); + const maybe_lhs_val = try sema.resolveValueResolveLazy(casted_lhs); + const maybe_rhs_val = try sema.resolveValueResolveLazy(casted_rhs); - const runtime_src = rs: { - // For integers: - // Either operand being undef is a compile error because there exists - // a possible value (TODO what is it?) that would invoke illegal behavior. - // TODO: can lhs undef be handled better? - // - // For floats: - // If the rhs is zero, compile error for division by zero. - // If the rhs is undefined, compile error because there is a possible - // value (zero) for which the division would be illegal behavior. - // If the lhs is undefined, result is undefined. - // - // For either one: if the result would be different between @mod and @rem, - // then emit a compile error saying you have to pick one. - if (is_int) { - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isUndef(zcu)) { - return sema.failWithUseOfUndef(block, lhs_src); - } - if (try lhs_val.compareAllWithZeroSema(.eq, pt)) { - const scalar_zero = switch (scalar_tag) { - .comptime_float, .float => try pt.floatValue(resolved_type.scalarType(zcu), 0.0), - .comptime_int, .int => try pt.intValue(resolved_type.scalarType(zcu), 0), - else => unreachable, - }; - const zero_val = if (is_vector) Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = resolved_type.toIntern(), - .storage = .{ .repeated_elem = scalar_zero.toIntern() }, - } })) else scalar_zero; - return Air.internedToRef(zero_val.toIntern()); - } - } else if (lhs_scalar_ty.isSignedInt(zcu)) { - return sema.failWithModRemNegative(block, lhs_src, lhs_ty, rhs_ty); - } - if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - return sema.failWithUseOfUndef(block, rhs_src); - } - if (!(try rhs_val.compareAllWithZeroSema(.neq, pt))) { - return sema.failWithDivideByZero(block, rhs_src); - } - if (!(try rhs_val.compareAllWithZeroSema(.gte, pt))) { - return sema.failWithModRemNegative(block, rhs_src, lhs_ty, rhs_ty); - } - if (maybe_lhs_val) |lhs_val| { - const rem_result = try sema.intRem(resolved_type, lhs_val, rhs_val); - // If this answer could possibly be different by doing `intMod`, - // we must emit a compile error. Otherwise, it's OK. - if (!(try lhs_val.compareAllWithZeroSema(.gte, pt)) and - !(try rem_result.compareAllWithZeroSema(.eq, pt))) - { - return sema.failWithModRemNegative(block, lhs_src, lhs_ty, rhs_ty); - } - return Air.internedToRef(rem_result.toIntern()); - } - break :rs lhs_src; - } else if (rhs_scalar_ty.isSignedInt(zcu)) { - return sema.failWithModRemNegative(block, rhs_src, lhs_ty, rhs_ty); - } else { - break :rs rhs_src; - } - } - // float operands - if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - return sema.failWithUseOfUndef(block, rhs_src); - } - if (!(try rhs_val.compareAllWithZeroSema(.neq, pt))) { - return sema.failWithDivideByZero(block, rhs_src); - } - if (!(try rhs_val.compareAllWithZeroSema(.gte, pt))) { - return sema.failWithModRemNegative(block, rhs_src, lhs_ty, rhs_ty); - } - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isUndef(zcu) or !(try lhs_val.compareAllWithZeroSema(.gte, pt))) { - return sema.failWithModRemNegative(block, lhs_src, lhs_ty, rhs_ty); - } - return Air.internedToRef((try lhs_val.floatRem(rhs_val, resolved_type, sema.arena, pt)).toIntern()); - } else { - return sema.failWithModRemNegative(block, lhs_src, lhs_ty, rhs_ty); - } - } else { - return sema.failWithModRemNegative(block, rhs_src, lhs_ty, rhs_ty); - } + const lhs_maybe_negative = a: { + if (lhs_scalar_ty.isUnsignedInt(zcu)) break :a false; + const lhs_val = maybe_lhs_val orelse break :a true; + if (lhs_val.compareAllWithZero(.gte, zcu)) break :a false; + break :a true; + }; + const rhs_maybe_negative = a: { + if (rhs_scalar_ty.isUnsignedInt(zcu)) break :a false; + const rhs_val = maybe_rhs_val orelse break :a true; + if (rhs_val.compareAllWithZero(.gte, zcu)) break :a false; + break :a true; }; - try sema.requireRuntimeBlock(block, src, runtime_src); + if (maybe_lhs_val) |lhs_val| { + if (maybe_rhs_val) |rhs_val| { + const result = try arith.modRem(sema, block, resolved_type, lhs_val, rhs_val, lhs_src, rhs_src, .rem); + if (lhs_maybe_negative or rhs_maybe_negative) { + if (!result.compareAllWithZero(.eq, zcu)) { + // Non-zero result means ambiguity between mod and rem + return sema.failWithModRemNegative(block, src: { + if (lhs_maybe_negative) break :src lhs_src; + if (rhs_maybe_negative) break :src rhs_src; + unreachable; + }, lhs_ty, rhs_ty); + } + } + return Air.internedToRef(result.toIntern()); + } + } + + // Result not comptime-known, so floats and signed integers are illegal due to mod/rem ambiguity + if (lhs_maybe_negative or rhs_maybe_negative) { + return sema.failWithModRemNegative(block, src: { + if (lhs_maybe_negative) break :src lhs_src; + if (rhs_maybe_negative) break :src rhs_src; + unreachable; + }, lhs_ty, rhs_ty); + } + + const allow_div_zero = !is_int and + resolved_type.toIntern() != .comptime_float_type and + block.float_mode == .strict; + + if (maybe_lhs_val) |lhs_val| { + if (allow_div_zero) { + if (lhs_val.isUndefDeep(zcu)) return pt.undefRef(resolved_type); + } else { + if (lhs_val.anyScalarIsUndef(zcu)) return sema.failWithUseOfUndef(block, lhs_src); + } + } else if (maybe_rhs_val) |rhs_val| { + if (allow_div_zero) { + if (rhs_val.isUndefDeep(zcu)) return pt.undefRef(resolved_type); + } else { + if (rhs_val.anyScalarIsUndef(zcu)) return sema.failWithUseOfUndef(block, rhs_src); + if (rhs_val.anyScalarIsZero(zcu)) return sema.failWithDivideByZero(block, rhs_src); + } + } if (block.wantSafety()) { try sema.addDivByZeroSafety(block, src, resolved_type, maybe_rhs_val, casted_rhs, is_int); @@ -16163,58 +15953,6 @@ fn zirModRem(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air. return block.addBinOp(air_tag, casted_lhs, casted_rhs); } -fn intRem( - sema: *Sema, - ty: Type, - lhs: Value, - rhs: Value, -) CompileError!Value { - const pt = sema.pt; - const zcu = pt.zcu; - if (ty.zigTypeTag(zcu) == .vector) { - const result_data = try sema.arena.alloc(InternPool.Index, ty.vectorLen(zcu)); - const scalar_ty = ty.scalarType(zcu); - for (result_data, 0..) |*scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - scalar.* = (try sema.intRemScalar(lhs_elem, rhs_elem, scalar_ty)).toIntern(); - } - return Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = ty.toIntern(), - .storage = .{ .elems = result_data }, - } })); - } - return sema.intRemScalar(lhs, rhs, ty); -} - -fn intRemScalar(sema: *Sema, lhs: Value, rhs: Value, scalar_ty: Type) CompileError!Value { - const pt = sema.pt; - // TODO is this a performance issue? maybe we should try the operation without - // resorting to BigInt first. - var lhs_space: Value.BigIntSpace = undefined; - var rhs_space: Value.BigIntSpace = undefined; - const lhs_bigint = try lhs.toBigIntSema(&lhs_space, pt); - const rhs_bigint = try rhs.toBigIntSema(&rhs_space, pt); - const limbs_q = try sema.arena.alloc( - math.big.Limb, - lhs_bigint.limbs.len, - ); - const limbs_r = try sema.arena.alloc( - math.big.Limb, - // TODO: consider reworking Sema to re-use Values rather than - // always producing new Value objects. - rhs_bigint.limbs.len, - ); - const limbs_buffer = try sema.arena.alloc( - math.big.Limb, - math.big.int.calcDivLimbsBufferLen(lhs_bigint.limbs.len, rhs_bigint.limbs.len), - ); - var result_q = math.big.int.Mutable{ .limbs = limbs_q, .positive = undefined, .len = undefined }; - var result_r = math.big.int.Mutable{ .limbs = limbs_r, .positive = undefined, .len = undefined }; - result_q.divTrunc(&result_r, lhs_bigint, rhs_bigint, limbs_buffer); - return pt.intValue_big(scalar_ty, result_r.toConst()); -} - fn zirMod(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref { const pt = sema.pt; const zcu = pt.zcu; @@ -16232,9 +15970,8 @@ fn zirMod(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Ins try sema.checkVectorizableBinaryOperands(block, src, lhs_ty, rhs_ty, lhs_src, rhs_src); try sema.checkInvalidPtrIntArithmetic(block, src, lhs_ty); - const instructions = &[_]Air.Inst.Ref{ lhs, rhs }; - const resolved_type = try sema.resolvePeerTypes(block, src, instructions, .{ - .override = &[_]?LazySrcLoc{ lhs_src, rhs_src }, + const resolved_type = try sema.resolvePeerTypes(block, src, &.{ lhs, rhs }, .{ + .override = &.{ lhs_src, rhs_src }, }); const casted_lhs = try sema.coerce(block, resolved_type, lhs, lhs_src); @@ -16246,62 +15983,31 @@ fn zirMod(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Ins try sema.checkArithmeticOp(block, src, scalar_tag, lhs_zig_ty_tag, rhs_zig_ty_tag, .mod); - const maybe_lhs_val = try sema.resolveValueIntable(casted_lhs); - const maybe_rhs_val = try sema.resolveValueIntable(casted_rhs); + const maybe_lhs_val = try sema.resolveValueResolveLazy(casted_lhs); + const maybe_rhs_val = try sema.resolveValueResolveLazy(casted_rhs); - const runtime_src = rs: { - // For integers: - // Either operand being undef is a compile error because there exists - // a possible value (TODO what is it?) that would invoke illegal behavior. - // TODO: can lhs zero be handled better? - // TODO: can lhs undef be handled better? - // - // For floats: - // If the rhs is zero, compile error for division by zero. - // If the rhs is undefined, compile error because there is a possible - // value (zero) for which the division would be illegal behavior. - // If the lhs is undefined, result is undefined. - if (is_int) { - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isUndef(zcu)) { - return sema.failWithUseOfUndef(block, lhs_src); - } - } - if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - return sema.failWithUseOfUndef(block, rhs_src); - } - if (!(try rhs_val.compareAllWithZeroSema(.neq, pt))) { - return sema.failWithDivideByZero(block, rhs_src); - } - if (maybe_lhs_val) |lhs_val| { - return Air.internedToRef((try lhs_val.intMod(rhs_val, resolved_type, sema.arena, pt)).toIntern()); - } - break :rs lhs_src; - } else { - break :rs rhs_src; - } - } - // float operands + const allow_div_zero = !is_int and + resolved_type.toIntern() != .comptime_float_type and + block.float_mode == .strict; + + if (maybe_lhs_val) |lhs_val| { if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - return sema.failWithUseOfUndef(block, rhs_src); - } - if (!(try rhs_val.compareAllWithZeroSema(.neq, pt))) { - return sema.failWithDivideByZero(block, rhs_src); - } + const result = try arith.modRem(sema, block, resolved_type, lhs_val, rhs_val, lhs_src, rhs_src, .mod); + return Air.internedToRef(result.toIntern()); } - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isUndef(zcu)) { - return pt.undefRef(resolved_type); - } - if (maybe_rhs_val) |rhs_val| { - return Air.internedToRef((try lhs_val.floatMod(rhs_val, resolved_type, sema.arena, pt)).toIntern()); - } else break :rs rhs_src; - } else break :rs lhs_src; - }; - - try sema.requireRuntimeBlock(block, src, runtime_src); + if (allow_div_zero) { + if (lhs_val.isUndefDeep(zcu)) return pt.undefRef(resolved_type); + } else { + if (lhs_val.anyScalarIsUndef(zcu)) return sema.failWithUseOfUndef(block, lhs_src); + } + } else if (maybe_rhs_val) |rhs_val| { + if (allow_div_zero) { + if (rhs_val.isUndefDeep(zcu)) return pt.undefRef(resolved_type); + } else { + if (rhs_val.anyScalarIsUndef(zcu)) return sema.failWithUseOfUndef(block, rhs_src); + if (rhs_val.anyScalarIsZero(zcu)) return sema.failWithDivideByZero(block, rhs_src); + } + } if (block.wantSafety()) { try sema.addDivByZeroSafety(block, src, resolved_type, maybe_rhs_val, casted_rhs, is_int); @@ -16328,9 +16034,8 @@ fn zirRem(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Ins try sema.checkVectorizableBinaryOperands(block, src, lhs_ty, rhs_ty, lhs_src, rhs_src); try sema.checkInvalidPtrIntArithmetic(block, src, lhs_ty); - const instructions = &[_]Air.Inst.Ref{ lhs, rhs }; - const resolved_type = try sema.resolvePeerTypes(block, src, instructions, .{ - .override = &[_]?LazySrcLoc{ lhs_src, rhs_src }, + const resolved_type = try sema.resolvePeerTypes(block, src, &.{ lhs, rhs }, .{ + .override = &.{ lhs_src, rhs_src }, }); const casted_lhs = try sema.coerce(block, resolved_type, lhs, lhs_src); @@ -16342,62 +16047,31 @@ fn zirRem(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Ins try sema.checkArithmeticOp(block, src, scalar_tag, lhs_zig_ty_tag, rhs_zig_ty_tag, .rem); - const maybe_lhs_val = try sema.resolveValueIntable(casted_lhs); - const maybe_rhs_val = try sema.resolveValueIntable(casted_rhs); + const maybe_lhs_val = try sema.resolveValueResolveLazy(casted_lhs); + const maybe_rhs_val = try sema.resolveValueResolveLazy(casted_rhs); - const runtime_src = rs: { - // For integers: - // Either operand being undef is a compile error because there exists - // a possible value (TODO what is it?) that would invoke illegal behavior. - // TODO: can lhs zero be handled better? - // TODO: can lhs undef be handled better? - // - // For floats: - // If the rhs is zero, compile error for division by zero. - // If the rhs is undefined, compile error because there is a possible - // value (zero) for which the division would be illegal behavior. - // If the lhs is undefined, result is undefined. - if (is_int) { - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isUndef(zcu)) { - return sema.failWithUseOfUndef(block, lhs_src); - } - } - if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - return sema.failWithUseOfUndef(block, rhs_src); - } - if (!(try rhs_val.compareAllWithZeroSema(.neq, pt))) { - return sema.failWithDivideByZero(block, rhs_src); - } - if (maybe_lhs_val) |lhs_val| { - return Air.internedToRef((try sema.intRem(resolved_type, lhs_val, rhs_val)).toIntern()); - } - break :rs lhs_src; - } else { - break :rs rhs_src; - } - } - // float operands + const allow_div_zero = !is_int and + resolved_type.toIntern() != .comptime_float_type and + block.float_mode == .strict; + + if (maybe_lhs_val) |lhs_val| { if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - return sema.failWithUseOfUndef(block, rhs_src); - } - if (!(try rhs_val.compareAllWithZeroSema(.neq, pt))) { - return sema.failWithDivideByZero(block, rhs_src); - } + const result = try arith.modRem(sema, block, resolved_type, lhs_val, rhs_val, lhs_src, rhs_src, .rem); + return Air.internedToRef(result.toIntern()); } - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isUndef(zcu)) { - return pt.undefRef(resolved_type); - } - if (maybe_rhs_val) |rhs_val| { - return Air.internedToRef((try lhs_val.floatRem(rhs_val, resolved_type, sema.arena, pt)).toIntern()); - } else break :rs rhs_src; - } else break :rs lhs_src; - }; - - try sema.requireRuntimeBlock(block, src, runtime_src); + if (allow_div_zero) { + if (lhs_val.isUndefDeep(zcu)) return pt.undefRef(resolved_type); + } else { + if (lhs_val.anyScalarIsUndef(zcu)) return sema.failWithUseOfUndef(block, lhs_src); + } + } else if (maybe_rhs_val) |rhs_val| { + if (allow_div_zero) { + if (rhs_val.isUndefDeep(zcu)) return pt.undefRef(resolved_type); + } else { + if (rhs_val.anyScalarIsUndef(zcu)) return sema.failWithUseOfUndef(block, rhs_src); + if (rhs_val.anyScalarIsZero(zcu)) return sema.failWithDivideByZero(block, rhs_src); + } + } if (block.wantSafety()) { try sema.addDivByZeroSafety(block, src, resolved_type, maybe_rhs_val, casted_rhs, is_int); @@ -16486,7 +16160,7 @@ fn zirOverflowArithmetic( break :result .{ .overflow_bit = Value.undef, .wrapped = Value.undef }; } - const result = try sema.intAddWithOverflow(lhs_val, rhs_val, dest_ty); + const result = try arith.addWithOverflow(sema, dest_ty, lhs_val, rhs_val); break :result .{ .overflow_bit = result.overflow_bit, .wrapped = result.wrapped_result }; } } @@ -16504,7 +16178,7 @@ fn zirOverflowArithmetic( break :result .{ .overflow_bit = Value.undef, .wrapped = Value.undef }; } - const result = try sema.intSubWithOverflow(lhs_val, rhs_val, dest_ty); + const result = try arith.subWithOverflow(sema, dest_ty, lhs_val, rhs_val); break :result .{ .overflow_bit = result.overflow_bit, .wrapped = result.wrapped_result }; } } @@ -16540,7 +16214,7 @@ fn zirOverflowArithmetic( break :result .{ .overflow_bit = Value.undef, .wrapped = Value.undef }; } - const result = try lhs_val.intMulWithOverflow(rhs_val, dest_ty, sema.arena, pt); + const result = try arith.mulWithOverflow(sema, dest_ty, lhs_val, rhs_val); break :result .{ .overflow_bit = result.overflow_bit, .wrapped = result.wrapped_result }; } } @@ -16741,9 +16415,8 @@ fn analyzeArithmetic( } } - const instructions = &[_]Air.Inst.Ref{ lhs, rhs }; - const resolved_type = try sema.resolvePeerTypes(block, src, instructions, .{ - .override = &[_]?LazySrcLoc{ lhs_src, rhs_src }, + const resolved_type = try sema.resolvePeerTypes(block, src, &.{ lhs, rhs }, .{ + .override = &.{ lhs_src, rhs_src }, }); const casted_lhs = try sema.coerce(block, resolved_type, lhs, lhs_src); @@ -16752,407 +16425,74 @@ fn analyzeArithmetic( const scalar_type = resolved_type.scalarType(zcu); const scalar_tag = scalar_type.zigTypeTag(zcu); - const is_int = scalar_tag == .int or scalar_tag == .comptime_int; - try sema.checkArithmeticOp(block, src, scalar_tag, lhs_zig_ty_tag, rhs_zig_ty_tag, zir_tag); - const maybe_lhs_val = try sema.resolveValueIntable(casted_lhs); - const maybe_rhs_val = try sema.resolveValueIntable(casted_rhs); - const runtime_src: LazySrcLoc, const air_tag: Air.Inst.Tag, const air_tag_safe: Air.Inst.Tag = rs: { - switch (zir_tag) { - .add, .add_unsafe => { - // For integers:intAddSat - // If either of the operands are zero, then the other operand is - // returned, even if it is undefined. - // If either of the operands are undefined, it's a compile error - // because there is a possible value for which the addition would - // overflow (max_int), causing illegal behavior. - // For floats: either operand being undef makes the result undef. - if (maybe_lhs_val) |lhs_val| { - if (!lhs_val.isUndef(zcu) and (try lhs_val.compareAllWithZeroSema(.eq, pt))) { - return casted_rhs; - } - } - if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - if (is_int) { - return sema.failWithUseOfUndef(block, rhs_src); - } else { - return pt.undefRef(resolved_type); - } - } - if (try rhs_val.compareAllWithZeroSema(.eq, pt)) { - return casted_lhs; - } - } - const air_tag: Air.Inst.Tag = if (block.float_mode == .optimized) .add_optimized else .add; - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isUndef(zcu)) { - if (is_int) { - return sema.failWithUseOfUndef(block, lhs_src); - } else { - return pt.undefRef(resolved_type); - } - } - if (maybe_rhs_val) |rhs_val| { - if (is_int) { - var overflow_idx: ?usize = null; - const sum = try sema.intAdd(lhs_val, rhs_val, resolved_type, &overflow_idx); - if (overflow_idx) |vec_idx| { - return sema.failWithIntegerOverflow(block, src, resolved_type, sum, vec_idx); - } - return Air.internedToRef(sum.toIntern()); - } else { - return Air.internedToRef((try Value.floatAdd(lhs_val, rhs_val, resolved_type, sema.arena, pt)).toIntern()); - } - } else break :rs .{ rhs_src, air_tag, .add_safe }; - } else break :rs .{ lhs_src, air_tag, .add_safe }; - }, - .addwrap => { - // Integers only; floats are checked above. - // If either of the operands are zero, the other operand is returned. - // If either of the operands are undefined, the result is undefined. - if (maybe_lhs_val) |lhs_val| { - if (!lhs_val.isUndef(zcu) and (try lhs_val.compareAllWithZeroSema(.eq, pt))) { - return casted_rhs; - } - } - if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - return pt.undefRef(resolved_type); - } - if (try rhs_val.compareAllWithZeroSema(.eq, pt)) { - return casted_lhs; - } - if (maybe_lhs_val) |lhs_val| { - return Air.internedToRef((try sema.numberAddWrapScalar(lhs_val, rhs_val, resolved_type)).toIntern()); - } else break :rs .{ lhs_src, .add_wrap, .add_wrap }; - } else break :rs .{ rhs_src, .add_wrap, .add_wrap }; - }, - .add_sat => { - // Integers only; floats are checked above. - // If either of the operands are zero, then the other operand is returned. - // If either of the operands are undefined, the result is undefined. - if (maybe_lhs_val) |lhs_val| { - if (!lhs_val.isUndef(zcu) and (try lhs_val.compareAllWithZeroSema(.eq, pt))) { - return casted_rhs; - } - } - if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - return pt.undefRef(resolved_type); - } - if (try rhs_val.compareAllWithZeroSema(.eq, pt)) { - return casted_lhs; - } - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isUndef(zcu)) { - return pt.undefRef(resolved_type); - } + // The rules we'll implement below are as follows: + // + // * If both operands are comptime-known, we call the corresponding function in `arith` to get + // the comptime-known result. Inputs which would be IB at runtime are compile errors. + // + // * Otherwise, if one operand is comptime-known `undefined`, we trigger a compile error if this + // operator can ever possibly trigger IB, or otherwise return comptime-known `undefined`. + // + // * No other comptime operand detemines a comptime result; e.g. `0 * x` isn't always `0` because + // of `undefined`. Therefore, the remaining cases all become runtime operations. - const val = if (scalar_tag == .comptime_int) - try sema.intAdd(lhs_val, rhs_val, resolved_type, undefined) - else - try lhs_val.intAddSat(rhs_val, resolved_type, sema.arena, pt); - - return Air.internedToRef(val.toIntern()); - } else break :rs .{ - lhs_src, - .add_sat, - .add_sat, - }; - } else break :rs .{ - rhs_src, - .add_sat, - .add_sat, - }; - }, - .sub => { - // For integers: - // If the rhs is zero, then the other operand is - // returned, even if it is undefined. - // If either of the operands are undefined, it's a compile error - // because there is a possible value for which the subtraction would - // overflow, causing illegal behavior. - // For floats: either operand being undef makes the result undef. - if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - if (is_int) { - return sema.failWithUseOfUndef(block, rhs_src); - } else { - return pt.undefRef(resolved_type); - } - } - if (try rhs_val.compareAllWithZeroSema(.eq, pt)) { - return casted_lhs; - } - } - const air_tag: Air.Inst.Tag = if (block.float_mode == .optimized) .sub_optimized else .sub; - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isUndef(zcu)) { - if (is_int) { - return sema.failWithUseOfUndef(block, lhs_src); - } else { - return pt.undefRef(resolved_type); - } - } - if (maybe_rhs_val) |rhs_val| { - if (is_int) { - var overflow_idx: ?usize = null; - const diff = try sema.intSub(lhs_val, rhs_val, resolved_type, &overflow_idx); - if (overflow_idx) |vec_idx| { - return sema.failWithIntegerOverflow(block, src, resolved_type, diff, vec_idx); - } - return Air.internedToRef(diff.toIntern()); - } else { - return Air.internedToRef((try Value.floatSub(lhs_val, rhs_val, resolved_type, sema.arena, pt)).toIntern()); - } - } else break :rs .{ rhs_src, air_tag, .sub_safe }; - } else break :rs .{ lhs_src, air_tag, .sub_safe }; - }, - .subwrap => { - // Integers only; floats are checked above. - // If the RHS is zero, then the LHS is returned, even if it is undefined. - // If either of the operands are undefined, the result is undefined. - if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - return pt.undefRef(resolved_type); - } - if (try rhs_val.compareAllWithZeroSema(.eq, pt)) { - return casted_lhs; - } - } - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isUndef(zcu)) { - return pt.undefRef(resolved_type); - } - if (maybe_rhs_val) |rhs_val| { - return Air.internedToRef((try sema.numberSubWrapScalar(lhs_val, rhs_val, resolved_type)).toIntern()); - } else break :rs .{ rhs_src, .sub_wrap, .sub_wrap }; - } else break :rs .{ lhs_src, .sub_wrap, .sub_wrap }; - }, - .sub_sat => { - // Integers only; floats are checked above. - // If the RHS is zero, then the LHS is returned, even if it is undefined. - // If either of the operands are undefined, the result is undefined. - if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - return pt.undefRef(resolved_type); - } - if (try rhs_val.compareAllWithZeroSema(.eq, pt)) { - return casted_lhs; - } - } - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isUndef(zcu)) { - return pt.undefRef(resolved_type); - } - if (maybe_rhs_val) |rhs_val| { - const val = if (scalar_tag == .comptime_int) - try sema.intSub(lhs_val, rhs_val, resolved_type, undefined) - else - try lhs_val.intSubSat(rhs_val, resolved_type, sema.arena, pt); - - return Air.internedToRef(val.toIntern()); - } else break :rs .{ rhs_src, .sub_sat, .sub_sat }; - } else break :rs .{ lhs_src, .sub_sat, .sub_sat }; - }, - .mul => { - // For integers: - // If either of the operands are zero, the result is zero. - // If either of the operands are one, the result is the other - // operand, even if it is undefined. - // If either of the operands are undefined, it's a compile error - // because there is a possible value for which the addition would - // overflow (max_int), causing illegal behavior. - // - // For floats: - // If either of the operands are undefined, the result is undefined. - // If either of the operands are inf, and the other operand is zero, - // the result is nan. - // If either of the operands are nan, the result is nan. - const scalar_zero = switch (scalar_tag) { - .comptime_float, .float => try pt.floatValue(scalar_type, 0.0), - .comptime_int, .int => try pt.intValue(scalar_type, 0), - else => unreachable, - }; - const scalar_one = switch (scalar_tag) { - .comptime_float, .float => try pt.floatValue(scalar_type, 1.0), - .comptime_int, .int => try pt.intValue(scalar_type, 1), - else => unreachable, - }; - if (maybe_lhs_val) |lhs_val| { - if (!lhs_val.isUndef(zcu)) { - if (lhs_val.isNan(zcu)) { - return Air.internedToRef(lhs_val.toIntern()); - } - if (try lhs_val.compareAllWithZeroSema(.eq, pt)) lz: { - if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isNan(zcu)) { - return Air.internedToRef(rhs_val.toIntern()); - } - if (rhs_val.isInf(zcu)) { - return Air.internedToRef((try pt.floatValue(resolved_type, std.math.nan(f128))).toIntern()); - } - } else if (resolved_type.isAnyFloat()) { - break :lz; - } - const zero_val = try sema.splat(resolved_type, scalar_zero); - return Air.internedToRef(zero_val.toIntern()); - } - if (try sema.compareAll(lhs_val, .eq, try sema.splat(resolved_type, scalar_one), resolved_type)) { - return casted_rhs; - } - } - } - const air_tag: Air.Inst.Tag = if (block.float_mode == .optimized) .mul_optimized else .mul; - if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - if (is_int) { - return sema.failWithUseOfUndef(block, rhs_src); - } else { - return pt.undefRef(resolved_type); - } - } - if (rhs_val.isNan(zcu)) { - return Air.internedToRef(rhs_val.toIntern()); - } - if (try rhs_val.compareAllWithZeroSema(.eq, pt)) rz: { - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isInf(zcu)) { - return Air.internedToRef((try pt.floatValue(resolved_type, std.math.nan(f128))).toIntern()); - } - } else if (resolved_type.isAnyFloat()) { - break :rz; - } - const zero_val = try sema.splat(resolved_type, scalar_zero); - return Air.internedToRef(zero_val.toIntern()); - } - if (try sema.compareAll(rhs_val, .eq, try sema.splat(resolved_type, scalar_one), resolved_type)) { - return casted_lhs; - } - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isUndef(zcu)) { - if (is_int) { - return sema.failWithUseOfUndef(block, lhs_src); - } else { - return pt.undefRef(resolved_type); - } - } - if (is_int) { - var overflow_idx: ?usize = null; - const product = try lhs_val.intMul(rhs_val, resolved_type, &overflow_idx, sema.arena, pt); - if (overflow_idx) |vec_idx| { - return sema.failWithIntegerOverflow(block, src, resolved_type, product, vec_idx); - } - return Air.internedToRef(product.toIntern()); - } else { - return Air.internedToRef((try lhs_val.floatMul(rhs_val, resolved_type, sema.arena, pt)).toIntern()); - } - } else break :rs .{ lhs_src, air_tag, .mul_safe }; - } else break :rs .{ rhs_src, air_tag, .mul_safe }; - }, - .mulwrap => { - // Integers only; floats are handled above. - // If either of the operands are zero, result is zero. - // If either of the operands are one, result is the other operand. - // If either of the operands are undefined, result is undefined. - const scalar_zero = switch (scalar_tag) { - .comptime_float, .float => try pt.floatValue(scalar_type, 0.0), - .comptime_int, .int => try pt.intValue(scalar_type, 0), - else => unreachable, - }; - const scalar_one = switch (scalar_tag) { - .comptime_float, .float => try pt.floatValue(scalar_type, 1.0), - .comptime_int, .int => try pt.intValue(scalar_type, 1), - else => unreachable, - }; - if (maybe_lhs_val) |lhs_val| { - if (!lhs_val.isUndef(zcu)) { - if (try lhs_val.compareAllWithZeroSema(.eq, pt)) { - const zero_val = try sema.splat(resolved_type, scalar_zero); - return Air.internedToRef(zero_val.toIntern()); - } - if (try sema.compareAll(lhs_val, .eq, try sema.splat(resolved_type, scalar_one), resolved_type)) { - return casted_rhs; - } - } - } - if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - return pt.undefRef(resolved_type); - } - if (try rhs_val.compareAllWithZeroSema(.eq, pt)) { - const zero_val = try sema.splat(resolved_type, scalar_zero); - return Air.internedToRef(zero_val.toIntern()); - } - if (try sema.compareAll(rhs_val, .eq, try sema.splat(resolved_type, scalar_one), resolved_type)) { - return casted_lhs; - } - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isUndef(zcu)) { - return pt.undefRef(resolved_type); - } - return Air.internedToRef((try lhs_val.numberMulWrap(rhs_val, resolved_type, sema.arena, pt)).toIntern()); - } else break :rs .{ lhs_src, .mul_wrap, .mul_wrap }; - } else break :rs .{ rhs_src, .mul_wrap, .mul_wrap }; - }, - .mul_sat => { - // Integers only; floats are checked above. - // If either of the operands are zero, result is zero. - // If either of the operands are one, result is the other operand. - // If either of the operands are undefined, result is undefined. - const scalar_zero = switch (scalar_tag) { - .comptime_float, .float => try pt.floatValue(scalar_type, 0.0), - .comptime_int, .int => try pt.intValue(scalar_type, 0), - else => unreachable, - }; - const scalar_one = switch (scalar_tag) { - .comptime_float, .float => try pt.floatValue(scalar_type, 1.0), - .comptime_int, .int => try pt.intValue(scalar_type, 1), - else => unreachable, - }; - if (maybe_lhs_val) |lhs_val| { - if (!lhs_val.isUndef(zcu)) { - if (try lhs_val.compareAllWithZeroSema(.eq, pt)) { - const zero_val = try sema.splat(resolved_type, scalar_zero); - return Air.internedToRef(zero_val.toIntern()); - } - if (try sema.compareAll(lhs_val, .eq, try sema.splat(resolved_type, scalar_one), resolved_type)) { - return casted_rhs; - } - } - } - if (maybe_rhs_val) |rhs_val| { - if (rhs_val.isUndef(zcu)) { - return pt.undefRef(resolved_type); - } - if (try rhs_val.compareAllWithZeroSema(.eq, pt)) { - const zero_val = try sema.splat(resolved_type, scalar_zero); - return Air.internedToRef(zero_val.toIntern()); - } - if (try sema.compareAll(rhs_val, .eq, try sema.splat(resolved_type, scalar_one), resolved_type)) { - return casted_lhs; - } - if (maybe_lhs_val) |lhs_val| { - if (lhs_val.isUndef(zcu)) { - return pt.undefRef(resolved_type); - } - - const val = if (scalar_tag == .comptime_int) - try lhs_val.intMul(rhs_val, resolved_type, undefined, sema.arena, pt) - else - try lhs_val.intMulSat(rhs_val, resolved_type, sema.arena, pt); - - return Air.internedToRef(val.toIntern()); - } else break :rs .{ lhs_src, .mul_sat, .mul_sat }; - } else break :rs .{ rhs_src, .mul_sat, .mul_sat }; - }, - else => unreachable, - } + const is_int = switch (scalar_tag) { + .int, .comptime_int => true, + .float, .comptime_float => false, + else => unreachable, }; - try sema.requireRuntimeBlock(block, src, runtime_src); + const maybe_lhs_val = try sema.resolveValueResolveLazy(casted_lhs); + const maybe_rhs_val = try sema.resolveValueResolveLazy(casted_rhs); + + if (maybe_lhs_val) |lhs_val| { + if (maybe_rhs_val) |rhs_val| { + const result_val = switch (zir_tag) { + .add, .add_unsafe => try arith.add(sema, block, resolved_type, lhs_val, rhs_val, src, lhs_src, rhs_src), + .addwrap => try arith.addWrap(sema, resolved_type, lhs_val, rhs_val), + .add_sat => try arith.addSat(sema, resolved_type, lhs_val, rhs_val), + .sub => try arith.sub(sema, block, resolved_type, lhs_val, rhs_val, src, lhs_src, rhs_src), + .subwrap => try arith.subWrap(sema, resolved_type, lhs_val, rhs_val), + .sub_sat => try arith.subSat(sema, resolved_type, lhs_val, rhs_val), + .mul => try arith.mul(sema, block, resolved_type, lhs_val, rhs_val, src, lhs_src, rhs_src), + .mulwrap => try arith.mulWrap(sema, resolved_type, lhs_val, rhs_val), + .mul_sat => try arith.mulSat(sema, resolved_type, lhs_val, rhs_val), + else => unreachable, + }; + return Air.internedToRef(result_val.toIntern()); + } + } + + const air_tag: Air.Inst.Tag, const air_tag_safe: Air.Inst.Tag, const allow_undef: bool = switch (zir_tag) { + .add, .add_unsafe => .{ if (block.float_mode == .optimized) .add_optimized else .add, .add_safe, !is_int }, + .addwrap => .{ .add_wrap, .add_wrap, true }, + .add_sat => .{ .add_sat, .add_sat, true }, + .sub => .{ if (block.float_mode == .optimized) .sub_optimized else .sub, .sub_safe, !is_int }, + .subwrap => .{ .sub_wrap, .sub_wrap, true }, + .sub_sat => .{ .sub_sat, .sub_sat, true }, + .mul => .{ if (block.float_mode == .optimized) .mul_optimized else .mul, .mul_safe, !is_int }, + .mulwrap => .{ .mul_wrap, .mul_wrap, true }, + .mul_sat => .{ .mul_sat, .mul_sat, true }, + else => unreachable, + }; + + if (allow_undef) { + if (maybe_lhs_val) |lhs_val| { + if (lhs_val.isUndefDeep(zcu)) return pt.undefRef(resolved_type); + } + if (maybe_rhs_val) |rhs_val| { + if (rhs_val.isUndefDeep(zcu)) return pt.undefRef(resolved_type); + } + } else { + if (maybe_lhs_val) |lhs_val| { + if (lhs_val.anyScalarIsUndef(zcu)) return sema.failWithUseOfUndef(block, lhs_src); + } + if (maybe_rhs_val) |rhs_val| { + if (rhs_val.anyScalarIsUndef(zcu)) return sema.failWithUseOfUndef(block, rhs_src); + } + } if (block.wantSafety() and want_safety and scalar_tag == .int) { if (zcu.backendSupportsFeature(.safety_checked_instructions)) { @@ -24124,7 +23464,7 @@ fn zirTruncate(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai } } - if (try sema.resolveValueIntable(operand)) |val| { + if (try sema.resolveValueResolveLazy(operand)) |val| { if (val.isUndef(zcu)) return pt.undefRef(dest_ty); if (!dest_is_vector) { return Air.internedToRef((try pt.getCoerced( @@ -25087,8 +24427,8 @@ fn zirReduce(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air. .Xor => accum = try accum.bitwiseXor(elem_val, scalar_ty, sema.arena, pt), .Min => accum = accum.numberMin(elem_val, zcu), .Max => accum = accum.numberMax(elem_val, zcu), - .Add => accum = try sema.numberAddWrapScalar(accum, elem_val, scalar_ty), - .Mul => accum = try accum.numberMulWrap(elem_val, scalar_ty, sema.arena, pt), + .Add => accum = try arith.addMaybeWrap(sema, scalar_ty, accum, elem_val), + .Mul => accum = try arith.mulMaybeWrap(sema, scalar_ty, accum, elem_val), } } return Air.internedToRef(accum.toIntern()); @@ -25485,14 +24825,14 @@ fn zirAtomicRmw(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A const new_val = switch (op) { // zig fmt: off .Xchg => operand_val, - .Add => try sema.numberAddWrapScalar(stored_val, operand_val, elem_ty), - .Sub => try sema.numberSubWrapScalar(stored_val, operand_val, elem_ty), - .And => try stored_val.bitwiseAnd (operand_val, elem_ty, sema.arena, pt ), - .Nand => try stored_val.bitwiseNand (operand_val, elem_ty, sema.arena, pt ), - .Or => try stored_val.bitwiseOr (operand_val, elem_ty, sema.arena, pt ), - .Xor => try stored_val.bitwiseXor (operand_val, elem_ty, sema.arena, pt ), - .Max => stored_val.numberMax (operand_val, zcu), - .Min => stored_val.numberMin (operand_val, zcu), + .Add => try arith.addMaybeWrap(sema, elem_ty, stored_val, operand_val), + .Sub => try arith.subMaybeWrap(sema, elem_ty, stored_val, operand_val), + .And => try stored_val.bitwiseAnd (operand_val, elem_ty, sema.arena, pt ), + .Nand => try stored_val.bitwiseNand (operand_val, elem_ty, sema.arena, pt ), + .Or => try stored_val.bitwiseOr (operand_val, elem_ty, sema.arena, pt ), + .Xor => try stored_val.bitwiseXor (operand_val, elem_ty, sema.arena, pt ), + .Max => stored_val.numberMax (operand_val, zcu), + .Min => stored_val.numberMin (operand_val, zcu), // zig fmt: on }; try sema.storePtrVal(block, src, ptr_val, new_val, elem_ty); @@ -31437,16 +30777,12 @@ fn storePtr2( }; const maybe_operand_val = try sema.resolveValue(operand); - const runtime_src = if (try sema.resolveDefinedValue(block, ptr_src, ptr)) |ptr_val| rs: { - const operand_val = maybe_operand_val orelse { - try sema.checkPtrIsNotComptimeMutable(block, ptr_val, ptr_src, operand_src); - break :rs operand_src; - }; - if (sema.isComptimeMutablePtr(ptr_val)) { - try sema.storePtrVal(block, src, ptr_val, operand_val, elem_ty); - return; - } else break :rs ptr_src; - } else ptr_src; + const runtime_src = rs: { + const ptr_val = try sema.resolveDefinedValue(block, ptr_src, ptr) orelse break :rs ptr_src; + if (!sema.isComptimeMutablePtr(ptr_val)) break :rs ptr_src; + const operand_val = maybe_operand_val orelse return sema.fail(block, ptr_src, "cannot store runtime value in compile time variable", .{}); + return sema.storePtrVal(block, src, ptr_val, operand_val, elem_ty); + }; // We're performing the store at runtime; as such, we need to make sure the pointee type // is not comptime-only. We can hit this case with a `@ptrFromInt` pointer. @@ -36719,13 +36055,19 @@ fn unionFields( break :blk val; } else blk: { - const val = if (last_tag_val) |val| - try sema.intAdd(val, Value.one_comptime_int, int_tag_ty, undefined) - else - try pt.intValue(int_tag_ty, 0); - last_tag_val = val; - - break :blk val; + if (last_tag_val) |last_tag| { + const result = try arith.incrementDefinedInt(sema, int_tag_ty, last_tag); + if (result.overflow) return sema.fail( + &block_scope, + value_src, + "enumeration value '{}' too large for type '{}'", + .{ result.val.fmtValueSema(pt, sema), int_tag_ty.fmt(pt) }, + ); + last_tag_val = result.val; + } else { + last_tag_val = try pt.intValue(int_tag_ty, 0); + } + break :blk last_tag_val.?; }; const gop = enum_field_vals.getOrPutAssumeCapacity(enum_tag_val.toIntern()); if (gop.found_existing) { @@ -37532,260 +36874,6 @@ fn structFieldIndex( return sema.failWithBadStructFieldAccess(block, struct_ty, struct_type, field_src, field_name); } -/// If the value overflowed the type, returns a comptime_int (or vector thereof) instead, setting -/// overflow_idx to the vector index the overflow was at (or 0 for a scalar). -fn intAdd(sema: *Sema, lhs: Value, rhs: Value, ty: Type, overflow_idx: *?usize) !Value { - const pt = sema.pt; - var overflow: usize = undefined; - return sema.intAddInner(lhs, rhs, ty, &overflow) catch |err| switch (err) { - error.Overflow => { - const is_vec = ty.isVector(pt.zcu); - overflow_idx.* = if (is_vec) overflow else 0; - const safe_ty = if (is_vec) try pt.vectorType(.{ - .len = ty.vectorLen(pt.zcu), - .child = .comptime_int_type, - }) else Type.comptime_int; - return sema.intAddInner(lhs, rhs, safe_ty, undefined) catch |err1| switch (err1) { - error.Overflow => unreachable, - else => |e| return e, - }; - }, - else => |e| return e, - }; -} - -fn intAddInner(sema: *Sema, lhs: Value, rhs: Value, ty: Type, overflow_idx: *usize) !Value { - const pt = sema.pt; - const zcu = pt.zcu; - if (ty.zigTypeTag(zcu) == .vector) { - const result_data = try sema.arena.alloc(InternPool.Index, ty.vectorLen(zcu)); - const scalar_ty = ty.scalarType(zcu); - for (result_data, 0..) |*scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - const val = sema.intAddScalar(lhs_elem, rhs_elem, scalar_ty) catch |err| switch (err) { - error.Overflow => { - overflow_idx.* = i; - return error.Overflow; - }, - else => |e| return e, - }; - scalar.* = val.toIntern(); - } - return Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = ty.toIntern(), - .storage = .{ .elems = result_data }, - } })); - } - return sema.intAddScalar(lhs, rhs, ty); -} - -fn intAddScalar(sema: *Sema, lhs: Value, rhs: Value, scalar_ty: Type) !Value { - const pt = sema.pt; - if (scalar_ty.toIntern() != .comptime_int_type) { - const res = try sema.intAddWithOverflowScalar(lhs, rhs, scalar_ty); - if (res.overflow_bit.compareAllWithZero(.neq, pt.zcu)) return error.Overflow; - return res.wrapped_result; - } - // TODO is this a performance issue? maybe we should try the operation without - // resorting to BigInt first. - var lhs_space: Value.BigIntSpace = undefined; - var rhs_space: Value.BigIntSpace = undefined; - const lhs_bigint = try lhs.toBigIntSema(&lhs_space, pt); - const rhs_bigint = try rhs.toBigIntSema(&rhs_space, pt); - const limbs = try sema.arena.alloc( - std.math.big.Limb, - @max(lhs_bigint.limbs.len, rhs_bigint.limbs.len) + 1, - ); - var result_bigint = std.math.big.int.Mutable{ .limbs = limbs, .positive = undefined, .len = undefined }; - result_bigint.add(lhs_bigint, rhs_bigint); - return pt.intValue_big(scalar_ty, result_bigint.toConst()); -} - -/// Supports both floats and ints; handles undefined. -fn numberAddWrapScalar( - sema: *Sema, - lhs: Value, - rhs: Value, - ty: Type, -) !Value { - const pt = sema.pt; - const zcu = pt.zcu; - if (lhs.isUndef(zcu) or rhs.isUndef(zcu)) return pt.undefValue(ty); - - if (ty.zigTypeTag(zcu) == .comptime_int) { - return sema.intAdd(lhs, rhs, ty, undefined); - } - - if (ty.isAnyFloat()) { - return Value.floatAdd(lhs, rhs, ty, sema.arena, pt); - } - - const overflow_result = try sema.intAddWithOverflow(lhs, rhs, ty); - return overflow_result.wrapped_result; -} - -/// If the value overflowed the type, returns a comptime_int (or vector thereof) instead, setting -/// overflow_idx to the vector index the overflow was at (or 0 for a scalar). -fn intSub(sema: *Sema, lhs: Value, rhs: Value, ty: Type, overflow_idx: *?usize) !Value { - const pt = sema.pt; - var overflow: usize = undefined; - return sema.intSubInner(lhs, rhs, ty, &overflow) catch |err| switch (err) { - error.Overflow => { - const is_vec = ty.isVector(pt.zcu); - overflow_idx.* = if (is_vec) overflow else 0; - const safe_ty = if (is_vec) try pt.vectorType(.{ - .len = ty.vectorLen(pt.zcu), - .child = .comptime_int_type, - }) else Type.comptime_int; - return sema.intSubInner(lhs, rhs, safe_ty, undefined) catch |err1| switch (err1) { - error.Overflow => unreachable, - else => |e| return e, - }; - }, - else => |e| return e, - }; -} - -fn intSubInner(sema: *Sema, lhs: Value, rhs: Value, ty: Type, overflow_idx: *usize) !Value { - const pt = sema.pt; - if (ty.zigTypeTag(pt.zcu) == .vector) { - const result_data = try sema.arena.alloc(InternPool.Index, ty.vectorLen(pt.zcu)); - const scalar_ty = ty.scalarType(pt.zcu); - for (result_data, 0..) |*scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - const val = sema.intSubScalar(lhs_elem, rhs_elem, scalar_ty) catch |err| switch (err) { - error.Overflow => { - overflow_idx.* = i; - return error.Overflow; - }, - else => |e| return e, - }; - scalar.* = val.toIntern(); - } - return Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = ty.toIntern(), - .storage = .{ .elems = result_data }, - } })); - } - return sema.intSubScalar(lhs, rhs, ty); -} - -fn intSubScalar(sema: *Sema, lhs: Value, rhs: Value, scalar_ty: Type) !Value { - const pt = sema.pt; - const zcu = pt.zcu; - if (scalar_ty.toIntern() != .comptime_int_type) { - const res = try sema.intSubWithOverflowScalar(lhs, rhs, scalar_ty); - if (res.overflow_bit.compareAllWithZero(.neq, zcu)) return error.Overflow; - return res.wrapped_result; - } - // TODO is this a performance issue? maybe we should try the operation without - // resorting to BigInt first. - var lhs_space: Value.BigIntSpace = undefined; - var rhs_space: Value.BigIntSpace = undefined; - const lhs_bigint = try lhs.toBigIntSema(&lhs_space, pt); - const rhs_bigint = try rhs.toBigIntSema(&rhs_space, pt); - const limbs = try sema.arena.alloc( - std.math.big.Limb, - @max(lhs_bigint.limbs.len, rhs_bigint.limbs.len) + 1, - ); - var result_bigint = std.math.big.int.Mutable{ .limbs = limbs, .positive = undefined, .len = undefined }; - result_bigint.sub(lhs_bigint, rhs_bigint); - return pt.intValue_big(scalar_ty, result_bigint.toConst()); -} - -/// Supports both floats and ints; handles undefined. -fn numberSubWrapScalar( - sema: *Sema, - lhs: Value, - rhs: Value, - ty: Type, -) !Value { - const pt = sema.pt; - const zcu = pt.zcu; - if (lhs.isUndef(zcu) or rhs.isUndef(zcu)) return pt.undefValue(ty); - - if (ty.zigTypeTag(zcu) == .comptime_int) { - return sema.intSub(lhs, rhs, ty, undefined); - } - - if (ty.isAnyFloat()) { - return Value.floatSub(lhs, rhs, ty, sema.arena, pt); - } - - const overflow_result = try sema.intSubWithOverflow(lhs, rhs, ty); - return overflow_result.wrapped_result; -} - -fn intSubWithOverflow( - sema: *Sema, - lhs: Value, - rhs: Value, - ty: Type, -) !Value.OverflowArithmeticResult { - const pt = sema.pt; - const zcu = pt.zcu; - if (ty.zigTypeTag(zcu) == .vector) { - const vec_len = ty.vectorLen(zcu); - const overflowed_data = try sema.arena.alloc(InternPool.Index, vec_len); - const result_data = try sema.arena.alloc(InternPool.Index, vec_len); - const scalar_ty = ty.scalarType(zcu); - for (overflowed_data, result_data, 0..) |*of, *scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - const of_math_result = try sema.intSubWithOverflowScalar(lhs_elem, rhs_elem, scalar_ty); - of.* = of_math_result.overflow_bit.toIntern(); - scalar.* = of_math_result.wrapped_result.toIntern(); - } - return Value.OverflowArithmeticResult{ - .overflow_bit = Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = (try pt.vectorType(.{ .len = vec_len, .child = .u1_type })).toIntern(), - .storage = .{ .elems = overflowed_data }, - } })), - .wrapped_result = Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = ty.toIntern(), - .storage = .{ .elems = result_data }, - } })), - }; - } - return sema.intSubWithOverflowScalar(lhs, rhs, ty); -} - -fn intSubWithOverflowScalar( - sema: *Sema, - lhs: Value, - rhs: Value, - ty: Type, -) !Value.OverflowArithmeticResult { - const pt = sema.pt; - const zcu = pt.zcu; - const info = ty.intInfo(zcu); - - if (lhs.isUndef(zcu) or rhs.isUndef(zcu)) { - return .{ - .overflow_bit = try pt.undefValue(Type.u1), - .wrapped_result = try pt.undefValue(ty), - }; - } - - var lhs_space: Value.BigIntSpace = undefined; - var rhs_space: Value.BigIntSpace = undefined; - const lhs_bigint = try lhs.toBigIntSema(&lhs_space, pt); - const rhs_bigint = try rhs.toBigIntSema(&rhs_space, pt); - const limbs = try sema.arena.alloc( - std.math.big.Limb, - std.math.big.int.calcTwosCompLimbCount(info.bits), - ); - var result_bigint = std.math.big.int.Mutable{ .limbs = limbs, .positive = undefined, .len = undefined }; - const overflowed = result_bigint.subWrap(lhs_bigint, rhs_bigint, info.signedness, info.bits); - const wrapped_result = try pt.intValue_big(ty, result_bigint.toConst()); - return Value.OverflowArithmeticResult{ - .overflow_bit = try pt.intValue(Type.u1, @intFromBool(overflowed)), - .wrapped_result = wrapped_result, - }; -} - const IntFromFloatMode = enum { exact, truncate }; fn intFromFloat( @@ -37982,74 +37070,6 @@ fn enumHasInt(sema: *Sema, ty: Type, int: Value) CompileError!bool { return enum_type.tagValueIndex(&zcu.intern_pool, int_coerced.toIntern()) != null; } -fn intAddWithOverflow( - sema: *Sema, - lhs: Value, - rhs: Value, - ty: Type, -) !Value.OverflowArithmeticResult { - const pt = sema.pt; - const zcu = pt.zcu; - if (ty.zigTypeTag(zcu) == .vector) { - const vec_len = ty.vectorLen(zcu); - const overflowed_data = try sema.arena.alloc(InternPool.Index, vec_len); - const result_data = try sema.arena.alloc(InternPool.Index, vec_len); - const scalar_ty = ty.scalarType(zcu); - for (overflowed_data, result_data, 0..) |*of, *scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - const of_math_result = try sema.intAddWithOverflowScalar(lhs_elem, rhs_elem, scalar_ty); - of.* = of_math_result.overflow_bit.toIntern(); - scalar.* = of_math_result.wrapped_result.toIntern(); - } - return Value.OverflowArithmeticResult{ - .overflow_bit = Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = (try pt.vectorType(.{ .len = vec_len, .child = .u1_type })).toIntern(), - .storage = .{ .elems = overflowed_data }, - } })), - .wrapped_result = Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = ty.toIntern(), - .storage = .{ .elems = result_data }, - } })), - }; - } - return sema.intAddWithOverflowScalar(lhs, rhs, ty); -} - -fn intAddWithOverflowScalar( - sema: *Sema, - lhs: Value, - rhs: Value, - ty: Type, -) !Value.OverflowArithmeticResult { - const pt = sema.pt; - const zcu = pt.zcu; - const info = ty.intInfo(zcu); - - if (lhs.isUndef(zcu) or rhs.isUndef(zcu)) { - return .{ - .overflow_bit = try pt.undefValue(Type.u1), - .wrapped_result = try pt.undefValue(ty), - }; - } - - var lhs_space: Value.BigIntSpace = undefined; - var rhs_space: Value.BigIntSpace = undefined; - const lhs_bigint = try lhs.toBigIntSema(&lhs_space, pt); - const rhs_bigint = try rhs.toBigIntSema(&rhs_space, pt); - const limbs = try sema.arena.alloc( - std.math.big.Limb, - std.math.big.int.calcTwosCompLimbCount(info.bits), - ); - var result_bigint = std.math.big.int.Mutable{ .limbs = limbs, .positive = undefined, .len = undefined }; - const overflowed = result_bigint.addWrap(lhs_bigint, rhs_bigint, info.signedness, info.bits); - const result = try pt.intValue_big(ty, result_bigint.toConst()); - return Value.OverflowArithmeticResult{ - .overflow_bit = try pt.intValue(Type.u1, @intFromBool(overflowed)), - .wrapped_result = result, - }; -} - /// Asserts the values are comparable. Both operands have type `ty`. /// For vectors, returns true if the comparison is true for ALL elements. /// @@ -38736,12 +37756,13 @@ fn resolveDeclaredEnumInner( } break :overflow false; } else if (any_values) overflow: { - var overflow: ?usize = null; - last_tag_val = if (last_tag_val) |val| - try sema.intAdd(val, try pt.intValue(int_tag_ty, 1), int_tag_ty, &overflow) - else - try pt.intValue(int_tag_ty, 0); - if (overflow != null) break :overflow true; + if (last_tag_val) |last_tag| { + const result = try arith.incrementDefinedInt(sema, int_tag_ty, last_tag); + last_tag_val = result.val; + if (result.overflow) break :overflow true; + } else { + last_tag_val = try pt.intValue(int_tag_ty, 0); + } if (wip_ty.nextField(ip, field_name, last_tag_val.?.toIntern())) |conflict| { assert(conflict.kind == .value); // AstGen validated names are unique const other_field_src: LazySrcLoc = .{ diff --git a/src/Sema/arith.zig b/src/Sema/arith.zig new file mode 100644 index 0000000000..0c66ad9a91 --- /dev/null +++ b/src/Sema/arith.zig @@ -0,0 +1,1609 @@ +//! This file encapsules all arithmetic operations on comptime-known integers, floats, and vectors. +//! +//! It is only used in cases where both operands are comptime-known; a single comptime-known operand +//! is handled directly by `Sema.zig`. +//! +//! Functions starting with `int`, `comptimeInt`, or `float` are low-level primitives which operate +//! on defined scalar values; generally speaking, they are at the bottom of this file and non-`pub`. + +/// Asserts that `ty` is a scalar integer type, and that `prev_val` is of type `ty`. +/// Returns a value one greater than `prev_val`. If this would overflow `ty,` then the +/// return value has `overflow` set, and `val` is instead a `comptime_int`. +pub fn incrementDefinedInt( + sema: *Sema, + ty: Type, + prev_val: Value, +) CompileError!struct { overflow: bool, val: Value } { + const pt = sema.pt; + const zcu = pt.zcu; + assert(prev_val.typeOf(zcu).toIntern() == ty.toIntern()); + assert(!prev_val.isUndef(zcu)); + const res = try intAdd(sema, prev_val, try pt.intValue(ty, 1), ty); + return .{ .overflow = res.overflow, .val = res.val }; +} + +/// `val` is of type `ty`. +/// `ty` is a float, comptime_float, or vector thereof. +pub fn negateFloat( + sema: *Sema, + ty: Type, + val: Value, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + if (val.isUndef(zcu)) return val; + switch (ty.zigTypeTag(zcu)) { + .vector => { + const scalar_ty = ty.childType(zcu); + const len = ty.vectorLen(zcu); + const result_elems = try sema.arena.alloc(InternPool.Index, len); + for (result_elems, 0..) |*result_elem, elem_idx| { + const elem = try val.elemValue(pt, elem_idx); + if (elem.isUndef(zcu)) { + result_elem.* = elem.toIntern(); + } else { + result_elem.* = (try floatNeg(sema, elem, scalar_ty)).toIntern(); + } + } + const result_val = try pt.intern(.{ .aggregate = .{ + .ty = ty.toIntern(), + .storage = .{ .elems = result_elems }, + } }); + return .fromInterned(result_val); + }, + .float, .comptime_float => return floatNeg(sema, val, ty), + else => unreachable, + } +} + +/// Wraps on integers, but accepts floats. +/// `lhs_val` and `rhs_val` are both of type `ty`. +/// `ty` is an int, float, comptime_int, or comptime_float; *not* a vector. +pub fn addMaybeWrap( + sema: *Sema, + ty: Type, + lhs: Value, + rhs: Value, +) CompileError!Value { + const zcu = sema.pt.zcu; + if (lhs.isUndef(zcu)) return lhs; + if (lhs.isUndef(zcu)) return rhs; + switch (ty.zigTypeTag(zcu)) { + .int, .comptime_int => return (try intAddWithOverflow(sema, lhs, rhs, ty)).wrapped_result, + .float, .comptime_float => return floatAdd(sema, lhs, rhs, ty), + else => unreachable, + } +} + +/// Wraps on integers, but accepts floats. +/// `lhs_val` and `rhs_val` are both of type `ty`. +/// `ty` is an int, float, comptime_int, or comptime_float; *not* a vector. +pub fn subMaybeWrap( + sema: *Sema, + ty: Type, + lhs: Value, + rhs: Value, +) CompileError!Value { + const zcu = sema.pt.zcu; + if (lhs.isUndef(zcu)) return lhs; + if (lhs.isUndef(zcu)) return rhs; + switch (ty.zigTypeTag(zcu)) { + .int, .comptime_int => return (try intSubWithOverflow(sema, lhs, rhs, ty)).wrapped_result, + .float, .comptime_float => return floatSub(sema, lhs, rhs, ty), + else => unreachable, + } +} + +/// Wraps on integers, but accepts floats. +/// `lhs_val` and `rhs_val` are both of type `ty`. +/// `ty` is an int, float, comptime_int, or comptime_float; *not* a vector. +pub fn mulMaybeWrap( + sema: *Sema, + ty: Type, + lhs: Value, + rhs: Value, +) CompileError!Value { + const zcu = sema.pt.zcu; + if (lhs.isUndef(zcu)) return lhs; + if (lhs.isUndef(zcu)) return rhs; + switch (ty.zigTypeTag(zcu)) { + .int, .comptime_int => return (try intMulWithOverflow(sema, lhs, rhs, ty)).wrapped_result, + .float, .comptime_float => return floatMul(sema, lhs, rhs, ty), + else => unreachable, + } +} + +/// `lhs` and `rhs` are of type `ty`. +/// `ty` is an int, comptime_int, or vector thereof. +pub fn addWithOverflow( + sema: *Sema, + ty: Type, + lhs: Value, + rhs: Value, +) CompileError!Value.OverflowArithmeticResult { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .int, .comptime_int => return addWithOverflowScalar(sema, ty, lhs, rhs), + .vector => { + const scalar_ty = ty.childType(zcu); + const len = ty.vectorLen(zcu); + switch (scalar_ty.zigTypeTag(zcu)) { + .int, .comptime_int => {}, + else => unreachable, + } + const overflow_bits = try sema.arena.alloc(InternPool.Index, len); + const wrapped_results = try sema.arena.alloc(InternPool.Index, len); + for (overflow_bits, wrapped_results, 0..) |*ob, *wr, elem_idx| { + const lhs_elem = try lhs.elemValue(pt, elem_idx); + const rhs_elem = try rhs.elemValue(pt, elem_idx); + const elem_result = try addWithOverflowScalar(sema, scalar_ty, lhs_elem, rhs_elem); + ob.* = elem_result.overflow_bit.toIntern(); + wr.* = elem_result.wrapped_result.toIntern(); + } + return .{ + .overflow_bit = .fromInterned(try pt.intern(.{ .aggregate = .{ + .ty = (try pt.vectorType(.{ .len = len, .child = .u1_type })).toIntern(), + .storage = .{ .elems = overflow_bits }, + } })), + .wrapped_result = .fromInterned(try pt.intern(.{ .aggregate = .{ + .ty = ty.toIntern(), + .storage = .{ .elems = wrapped_results }, + } })), + }; + }, + else => unreachable, + } +} +fn addWithOverflowScalar( + sema: *Sema, + ty: Type, + lhs: Value, + rhs: Value, +) CompileError!Value.OverflowArithmeticResult { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .int, .comptime_int => {}, + else => unreachable, + } + if (lhs.isUndef(zcu) or rhs.isUndef(zcu)) return .{ + .overflow_bit = try pt.undefValue(.u1), + .wrapped_result = try pt.undefValue(ty), + }; + return intAddWithOverflow(sema, lhs, rhs, ty); +} + +/// `lhs` and `rhs` are of type `ty`. +/// `ty` is an int, comptime_int, or vector thereof. +pub fn subWithOverflow( + sema: *Sema, + ty: Type, + lhs: Value, + rhs: Value, +) CompileError!Value.OverflowArithmeticResult { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .int, .comptime_int => return subWithOverflowScalar(sema, ty, lhs, rhs), + .vector => { + const scalar_ty = ty.childType(zcu); + const len = ty.vectorLen(zcu); + switch (scalar_ty.zigTypeTag(zcu)) { + .int, .comptime_int => {}, + else => unreachable, + } + const overflow_bits = try sema.arena.alloc(InternPool.Index, len); + const wrapped_results = try sema.arena.alloc(InternPool.Index, len); + for (overflow_bits, wrapped_results, 0..) |*ob, *wr, elem_idx| { + const lhs_elem = try lhs.elemValue(pt, elem_idx); + const rhs_elem = try rhs.elemValue(pt, elem_idx); + const elem_result = try subWithOverflowScalar(sema, scalar_ty, lhs_elem, rhs_elem); + ob.* = elem_result.overflow_bit.toIntern(); + wr.* = elem_result.wrapped_result.toIntern(); + } + return .{ + .overflow_bit = .fromInterned(try pt.intern(.{ .aggregate = .{ + .ty = (try pt.vectorType(.{ .len = len, .child = .u1_type })).toIntern(), + .storage = .{ .elems = overflow_bits }, + } })), + .wrapped_result = .fromInterned(try pt.intern(.{ .aggregate = .{ + .ty = ty.toIntern(), + .storage = .{ .elems = wrapped_results }, + } })), + }; + }, + else => unreachable, + } +} +fn subWithOverflowScalar( + sema: *Sema, + ty: Type, + lhs: Value, + rhs: Value, +) CompileError!Value.OverflowArithmeticResult { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .int, .comptime_int => {}, + else => unreachable, + } + if (lhs.isUndef(zcu) or rhs.isUndef(zcu)) return .{ + .overflow_bit = try pt.undefValue(.u1), + .wrapped_result = try pt.undefValue(ty), + }; + return intSubWithOverflow(sema, lhs, rhs, ty); +} + +/// `lhs` and `rhs` are of type `ty`. +/// `ty` is an int, comptime_int, or vector thereof. +pub fn mulWithOverflow( + sema: *Sema, + ty: Type, + lhs: Value, + rhs: Value, +) CompileError!Value.OverflowArithmeticResult { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .int, .comptime_int => return mulWithOverflowScalar(sema, ty, lhs, rhs), + .vector => { + const scalar_ty = ty.childType(zcu); + const len = ty.vectorLen(zcu); + switch (scalar_ty.zigTypeTag(zcu)) { + .int, .comptime_int => {}, + else => unreachable, + } + const overflow_bits = try sema.arena.alloc(InternPool.Index, len); + const wrapped_results = try sema.arena.alloc(InternPool.Index, len); + for (overflow_bits, wrapped_results, 0..) |*ob, *wr, elem_idx| { + const lhs_elem = try lhs.elemValue(pt, elem_idx); + const rhs_elem = try rhs.elemValue(pt, elem_idx); + const elem_result = try mulWithOverflowScalar(sema, scalar_ty, lhs_elem, rhs_elem); + ob.* = elem_result.overflow_bit.toIntern(); + wr.* = elem_result.wrapped_result.toIntern(); + } + return .{ + .overflow_bit = .fromInterned(try pt.intern(.{ .aggregate = .{ + .ty = (try pt.vectorType(.{ .len = len, .child = .u1_type })).toIntern(), + .storage = .{ .elems = overflow_bits }, + } })), + .wrapped_result = .fromInterned(try pt.intern(.{ .aggregate = .{ + .ty = ty.toIntern(), + .storage = .{ .elems = wrapped_results }, + } })), + }; + }, + else => unreachable, + } +} +fn mulWithOverflowScalar( + sema: *Sema, + ty: Type, + lhs: Value, + rhs: Value, +) CompileError!Value.OverflowArithmeticResult { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .int, .comptime_int => {}, + else => unreachable, + } + if (lhs.isUndef(zcu) or rhs.isUndef(zcu)) return .{ + .overflow_bit = try pt.undefValue(.u1), + .wrapped_result = try pt.undefValue(ty), + }; + return intMulWithOverflow(sema, lhs, rhs, ty); +} + +/// Applies the `+` operator to comptime-known values. +/// `lhs_val` and `rhs_val` are both of type `ty`. +/// `ty` is an int, float, comptime_int, comptime_float, or vector. +pub fn add( + sema: *Sema, + block: *Block, + ty: Type, + lhs_val: Value, + rhs_val: Value, + src: LazySrcLoc, + lhs_src: LazySrcLoc, + rhs_src: LazySrcLoc, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .vector => { + const elem_ty = ty.childType(zcu); + const len = ty.vectorLen(zcu); + + const elem_vals = try sema.arena.alloc(InternPool.Index, len); + for (elem_vals, 0..) |*result_elem, elem_idx| { + const lhs_elem = try lhs_val.elemValue(pt, elem_idx); + const rhs_elem = try rhs_val.elemValue(pt, elem_idx); + result_elem.* = (try addScalar(sema, block, elem_ty, lhs_elem, rhs_elem, src, lhs_src, rhs_src, elem_idx)).toIntern(); + } + + const result_val = try pt.intern(.{ .aggregate = .{ + .ty = ty.toIntern(), + .storage = .{ .elems = elem_vals }, + } }); + return .fromInterned(result_val); + }, + else => return addScalar(sema, block, ty, lhs_val, rhs_val, src, lhs_src, rhs_src, null), + } +} +fn addScalar( + sema: *Sema, + block: *Block, + ty: Type, + lhs_val: Value, + rhs_val: Value, + src: LazySrcLoc, + lhs_src: LazySrcLoc, + rhs_src: LazySrcLoc, + vec_idx: ?usize, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + const is_int = switch (ty.zigTypeTag(zcu)) { + .int, .comptime_int => true, + .float, .comptime_float => false, + else => unreachable, + }; + + if (is_int) { + if (lhs_val.isUndef(zcu)) return sema.failWithUseOfUndef(block, lhs_src); + if (rhs_val.isUndef(zcu)) return sema.failWithUseOfUndef(block, rhs_src); + const res = try intAdd(sema, lhs_val, rhs_val, ty); + if (res.overflow) return sema.failWithIntegerOverflow(block, src, ty, res.val, vec_idx); + return res.val; + } else { + if (lhs_val.isUndef(zcu)) return lhs_val; + if (rhs_val.isUndef(zcu)) return rhs_val; + return floatAdd(sema, lhs_val, rhs_val, ty); + } +} + +/// Applies the `+%` operator to comptime-known values. +/// `lhs_val` and `rhs_val` are both of type `ty`. +/// `ty` is an int, comptime_int, or vector thereof. +pub fn addWrap( + sema: *Sema, + ty: Type, + lhs_val: Value, + rhs_val: Value, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .vector => { + const elem_ty = ty.childType(zcu); + const len = ty.vectorLen(zcu); + + const elem_vals = try sema.arena.alloc(InternPool.Index, len); + for (elem_vals, 0..) |*result_elem, elem_idx| { + const lhs_elem = try lhs_val.elemValue(pt, elem_idx); + const rhs_elem = try rhs_val.elemValue(pt, elem_idx); + result_elem.* = (try addWrapScalar(sema, elem_ty, lhs_elem, rhs_elem)).toIntern(); + } + + const result_val = try pt.intern(.{ .aggregate = .{ + .ty = ty.toIntern(), + .storage = .{ .elems = elem_vals }, + } }); + return .fromInterned(result_val); + }, + else => return addWrapScalar(sema, ty, lhs_val, rhs_val), + } +} +fn addWrapScalar( + sema: *Sema, + ty: Type, + lhs_val: Value, + rhs_val: Value, +) CompileError!Value { + return (try addWithOverflowScalar(sema, ty, lhs_val, rhs_val)).wrapped_result; +} + +/// Applies the `+|` operator to comptime-known values. +/// `lhs_val` and `rhs_val` are both of type `ty`. +/// `ty` is an int, comptime_int, or vector thereof. +pub fn addSat( + sema: *Sema, + ty: Type, + lhs_val: Value, + rhs_val: Value, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .vector => { + const elem_ty = ty.childType(zcu); + const len = ty.vectorLen(zcu); + + const elem_vals = try sema.arena.alloc(InternPool.Index, len); + for (elem_vals, 0..) |*result_elem, elem_idx| { + const lhs_elem = try lhs_val.elemValue(pt, elem_idx); + const rhs_elem = try rhs_val.elemValue(pt, elem_idx); + result_elem.* = (try addSatScalar(sema, elem_ty, lhs_elem, rhs_elem)).toIntern(); + } + + const result_val = try pt.intern(.{ .aggregate = .{ + .ty = ty.toIntern(), + .storage = .{ .elems = elem_vals }, + } }); + return .fromInterned(result_val); + }, + else => return addSatScalar(sema, ty, lhs_val, rhs_val), + } +} +fn addSatScalar( + sema: *Sema, + ty: Type, + lhs_val: Value, + rhs_val: Value, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + const is_comptime_int = switch (ty.zigTypeTag(zcu)) { + .int => false, + .comptime_int => true, + else => unreachable, + }; + if (lhs_val.isUndef(zcu)) return lhs_val; + if (rhs_val.isUndef(zcu)) return rhs_val; + if (is_comptime_int) { + const res = try intAdd(sema, lhs_val, rhs_val, ty); + assert(!res.overflow); + return res.val; + } else { + return intAddSat(sema, lhs_val, rhs_val, ty); + } +} + +/// Applies the `-` operator to comptime-known values. +/// `lhs_val` and `rhs_val` are both of type `ty`. +/// `ty` is an int, float, comptime_int, comptime_float, or vector. +pub fn sub( + sema: *Sema, + block: *Block, + ty: Type, + lhs_val: Value, + rhs_val: Value, + src: LazySrcLoc, + lhs_src: LazySrcLoc, + rhs_src: LazySrcLoc, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .vector => { + const elem_ty = ty.childType(zcu); + const len = ty.vectorLen(zcu); + + const elem_vals = try sema.arena.alloc(InternPool.Index, len); + for (elem_vals, 0..) |*result_elem, elem_idx| { + const lhs_elem = try lhs_val.elemValue(pt, elem_idx); + const rhs_elem = try rhs_val.elemValue(pt, elem_idx); + result_elem.* = (try subScalar(sema, block, elem_ty, lhs_elem, rhs_elem, src, lhs_src, rhs_src, elem_idx)).toIntern(); + } + + const result_val = try pt.intern(.{ .aggregate = .{ + .ty = ty.toIntern(), + .storage = .{ .elems = elem_vals }, + } }); + return .fromInterned(result_val); + }, + else => return subScalar(sema, block, ty, lhs_val, rhs_val, src, lhs_src, rhs_src, null), + } +} +fn subScalar( + sema: *Sema, + block: *Block, + ty: Type, + lhs_val: Value, + rhs_val: Value, + src: LazySrcLoc, + lhs_src: LazySrcLoc, + rhs_src: LazySrcLoc, + vec_idx: ?usize, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + const is_int = switch (ty.zigTypeTag(zcu)) { + .int, .comptime_int => true, + .float, .comptime_float => false, + else => unreachable, + }; + + if (is_int) { + if (lhs_val.isUndef(zcu)) return sema.failWithUseOfUndef(block, lhs_src); + if (rhs_val.isUndef(zcu)) return sema.failWithUseOfUndef(block, rhs_src); + const res = try intSub(sema, lhs_val, rhs_val, ty); + if (res.overflow) return sema.failWithIntegerOverflow(block, src, ty, res.val, vec_idx); + return res.val; + } else { + if (lhs_val.isUndef(zcu)) return lhs_val; + if (rhs_val.isUndef(zcu)) return rhs_val; + return floatSub(sema, lhs_val, rhs_val, ty); + } +} + +/// Applies the `-%` operator to comptime-known values. +/// `lhs_val` and `rhs_val` are both of type `ty`. +/// `ty` is an int, comptime_int, or vector thereof. +pub fn subWrap( + sema: *Sema, + ty: Type, + lhs_val: Value, + rhs_val: Value, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .vector => { + const elem_ty = ty.childType(zcu); + const len = ty.vectorLen(zcu); + + const elem_vals = try sema.arena.alloc(InternPool.Index, len); + for (elem_vals, 0..) |*result_elem, elem_idx| { + const lhs_elem = try lhs_val.elemValue(pt, elem_idx); + const rhs_elem = try rhs_val.elemValue(pt, elem_idx); + result_elem.* = (try subWrapScalar(sema, elem_ty, lhs_elem, rhs_elem)).toIntern(); + } + + const result_val = try pt.intern(.{ .aggregate = .{ + .ty = ty.toIntern(), + .storage = .{ .elems = elem_vals }, + } }); + return .fromInterned(result_val); + }, + else => return subWrapScalar(sema, ty, lhs_val, rhs_val), + } +} +fn subWrapScalar( + sema: *Sema, + ty: Type, + lhs_val: Value, + rhs_val: Value, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .int, .comptime_int => {}, + else => unreachable, + } + if (lhs_val.isUndef(zcu)) return lhs_val; + if (rhs_val.isUndef(zcu)) return rhs_val; + const result = try intSubWithOverflow(sema, lhs_val, rhs_val, ty); + return result.wrapped_result; +} + +/// Applies the `-|` operator to comptime-known values. +/// `lhs_val` and `rhs_val` are both of type `ty`. +/// `ty` is an int, comptime_int, or vector thereof. +pub fn subSat( + sema: *Sema, + ty: Type, + lhs_val: Value, + rhs_val: Value, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .vector => { + const elem_ty = ty.childType(zcu); + const len = ty.vectorLen(zcu); + + const elem_vals = try sema.arena.alloc(InternPool.Index, len); + for (elem_vals, 0..) |*result_elem, elem_idx| { + const lhs_elem = try lhs_val.elemValue(pt, elem_idx); + const rhs_elem = try rhs_val.elemValue(pt, elem_idx); + result_elem.* = (try subSatScalar(sema, elem_ty, lhs_elem, rhs_elem)).toIntern(); + } + + const result_val = try pt.intern(.{ .aggregate = .{ + .ty = ty.toIntern(), + .storage = .{ .elems = elem_vals }, + } }); + return .fromInterned(result_val); + }, + else => return subSatScalar(sema, ty, lhs_val, rhs_val), + } +} +fn subSatScalar( + sema: *Sema, + ty: Type, + lhs_val: Value, + rhs_val: Value, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + const is_comptime_int = switch (ty.zigTypeTag(zcu)) { + .int => false, + .comptime_int => true, + else => unreachable, + }; + if (lhs_val.isUndef(zcu)) return lhs_val; + if (rhs_val.isUndef(zcu)) return rhs_val; + if (is_comptime_int) { + const res = try intSub(sema, lhs_val, rhs_val, ty); + assert(!res.overflow); + return res.val; + } else { + return intSubSat(sema, lhs_val, rhs_val, ty); + } +} + +/// Applies the `*` operator to comptime-known values. +/// `lhs_val` and `rhs_val` are fully-resolved values of type `ty`. +/// `ty` is an int, float, comptime_int, comptime_float, or vector. +pub fn mul( + sema: *Sema, + block: *Block, + ty: Type, + lhs_val: Value, + rhs_val: Value, + src: LazySrcLoc, + lhs_src: LazySrcLoc, + rhs_src: LazySrcLoc, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .vector => { + const elem_ty = ty.childType(zcu); + const len = ty.vectorLen(zcu); + + const elem_vals = try sema.arena.alloc(InternPool.Index, len); + for (elem_vals, 0..) |*result_elem, elem_idx| { + const lhs_elem = try lhs_val.elemValue(pt, elem_idx); + const rhs_elem = try rhs_val.elemValue(pt, elem_idx); + result_elem.* = (try mulScalar(sema, block, elem_ty, lhs_elem, rhs_elem, src, lhs_src, rhs_src, elem_idx)).toIntern(); + } + + const result_val = try pt.intern(.{ .aggregate = .{ + .ty = ty.toIntern(), + .storage = .{ .elems = elem_vals }, + } }); + return .fromInterned(result_val); + }, + else => return mulScalar(sema, block, ty, lhs_val, rhs_val, src, lhs_src, rhs_src, null), + } +} +fn mulScalar( + sema: *Sema, + block: *Block, + ty: Type, + lhs_val: Value, + rhs_val: Value, + src: LazySrcLoc, + lhs_src: LazySrcLoc, + rhs_src: LazySrcLoc, + vec_idx: ?usize, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + const is_int = switch (ty.zigTypeTag(zcu)) { + .int, .comptime_int => true, + .float, .comptime_float => false, + else => unreachable, + }; + + if (is_int) { + if (lhs_val.isUndef(zcu)) return sema.failWithUseOfUndef(block, lhs_src); + if (rhs_val.isUndef(zcu)) return sema.failWithUseOfUndef(block, rhs_src); + const res = try intMul(sema, lhs_val, rhs_val, ty); + if (res.overflow) return sema.failWithIntegerOverflow(block, src, ty, res.val, vec_idx); + return res.val; + } else { + if (lhs_val.isUndef(zcu)) return lhs_val; + if (rhs_val.isUndef(zcu)) return rhs_val; + return floatMul(sema, lhs_val, rhs_val, ty); + } +} + +/// Applies the `*%` operator to comptime-known values. +/// `lhs_val` and `rhs_val` are both of type `ty`. +/// `ty` is an int, comptime_int, or vector thereof. +pub fn mulWrap( + sema: *Sema, + ty: Type, + lhs_val: Value, + rhs_val: Value, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .vector => { + const elem_ty = ty.childType(zcu); + const len = ty.vectorLen(zcu); + + const elem_vals = try sema.arena.alloc(InternPool.Index, len); + for (elem_vals, 0..) |*result_elem, elem_idx| { + const lhs_elem = try lhs_val.elemValue(pt, elem_idx); + const rhs_elem = try rhs_val.elemValue(pt, elem_idx); + result_elem.* = (try mulWrapScalar(sema, elem_ty, lhs_elem, rhs_elem)).toIntern(); + } + + const result_val = try pt.intern(.{ .aggregate = .{ + .ty = ty.toIntern(), + .storage = .{ .elems = elem_vals }, + } }); + return .fromInterned(result_val); + }, + else => return mulWrapScalar(sema, ty, lhs_val, rhs_val), + } +} +fn mulWrapScalar( + sema: *Sema, + ty: Type, + lhs_val: Value, + rhs_val: Value, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .int, .comptime_int => {}, + else => unreachable, + } + if (lhs_val.isUndef(zcu)) return lhs_val; + if (rhs_val.isUndef(zcu)) return rhs_val; + const result = try intMulWithOverflow(sema, lhs_val, rhs_val, ty); + return result.wrapped_result; +} + +/// Applies the `*|` operator to comptime-known values. +/// `lhs_val` and `rhs_val` are both of type `ty`. +/// `ty` is an int, comptime_int, or vector thereof. +pub fn mulSat( + sema: *Sema, + ty: Type, + lhs_val: Value, + rhs_val: Value, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .vector => { + const elem_ty = ty.childType(zcu); + const len = ty.vectorLen(zcu); + + const elem_vals = try sema.arena.alloc(InternPool.Index, len); + for (elem_vals, 0..) |*result_elem, elem_idx| { + const lhs_elem = try lhs_val.elemValue(pt, elem_idx); + const rhs_elem = try rhs_val.elemValue(pt, elem_idx); + result_elem.* = (try mulSatScalar(sema, elem_ty, lhs_elem, rhs_elem)).toIntern(); + } + + const result_val = try pt.intern(.{ .aggregate = .{ + .ty = ty.toIntern(), + .storage = .{ .elems = elem_vals }, + } }); + return .fromInterned(result_val); + }, + else => return mulSatScalar(sema, ty, lhs_val, rhs_val), + } +} +fn mulSatScalar( + sema: *Sema, + ty: Type, + lhs_val: Value, + rhs_val: Value, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + const is_comptime_int = switch (ty.zigTypeTag(zcu)) { + .int => false, + .comptime_int => true, + else => unreachable, + }; + if (lhs_val.isUndef(zcu)) return lhs_val; + if (rhs_val.isUndef(zcu)) return rhs_val; + if (is_comptime_int) { + const res = try intMul(sema, lhs_val, rhs_val, ty); + assert(!res.overflow); + return res.val; + } else { + return intMulSat(sema, lhs_val, rhs_val, ty); + } +} + +pub const DivOp = enum { div, div_trunc, div_floor, div_exact }; + +/// Applies the `/` operator to comptime-known values. +/// `lhs_val` and `rhs_val` are fully-resolved values of type `ty`. +/// `ty` is an int, float, comptime_int, comptime_float, or vector. +pub fn div( + sema: *Sema, + block: *Block, + ty: Type, + lhs_val: Value, + rhs_val: Value, + src: LazySrcLoc, + lhs_src: LazySrcLoc, + rhs_src: LazySrcLoc, + op: DivOp, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .vector => { + const elem_ty = ty.childType(zcu); + const len = ty.vectorLen(zcu); + + const elem_vals = try sema.arena.alloc(InternPool.Index, len); + for (elem_vals, 0..) |*result_elem, elem_idx| { + const lhs_elem = try lhs_val.elemValue(pt, elem_idx); + const rhs_elem = try rhs_val.elemValue(pt, elem_idx); + result_elem.* = (try divScalar(sema, block, elem_ty, lhs_elem, rhs_elem, src, lhs_src, rhs_src, op, elem_idx)).toIntern(); + } + + const result_val = try pt.intern(.{ .aggregate = .{ + .ty = ty.toIntern(), + .storage = .{ .elems = elem_vals }, + } }); + return .fromInterned(result_val); + }, + else => return divScalar(sema, block, ty, lhs_val, rhs_val, src, lhs_src, rhs_src, op, null), + } +} +fn divScalar( + sema: *Sema, + block: *Block, + ty: Type, + lhs_val: Value, + rhs_val: Value, + src: LazySrcLoc, + lhs_src: LazySrcLoc, + rhs_src: LazySrcLoc, + op: DivOp, + vec_idx: ?usize, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + const is_int = switch (ty.zigTypeTag(zcu)) { + .int, .comptime_int => true, + .float, .comptime_float => false, + else => unreachable, + }; + + if (is_int) { + if (rhs_val.eqlScalarNum(.zero_comptime_int, zcu)) return sema.failWithDivideByZero(block, rhs_src); + + if (lhs_val.isUndef(zcu)) return sema.failWithUseOfUndef(block, lhs_src); + if (rhs_val.isUndef(zcu)) return sema.failWithUseOfUndef(block, rhs_src); + + switch (op) { + .div, .div_trunc => { + const res = try intDivTrunc(sema, lhs_val, rhs_val, ty); + if (res.overflow) return sema.failWithIntegerOverflow(block, src, ty, res.val, vec_idx); + return res.val; + }, + .div_floor => { + const res = try intDivFloor(sema, lhs_val, rhs_val, ty); + if (res.overflow) return sema.failWithIntegerOverflow(block, src, ty, res.val, vec_idx); + return res.val; + }, + .div_exact => switch (try intDivExact(sema, lhs_val, rhs_val, ty)) { + .remainder => return sema.fail(block, src, "exact division produced remainder", .{}), + .overflow => |val| return sema.failWithIntegerOverflow(block, src, ty, val, vec_idx), + .success => |val| return val, + }, + } + } else { + const allow_div_zero = switch (op) { + .div, .div_trunc, .div_floor => ty.toIntern() != .comptime_float_type and block.float_mode == .strict, + .div_exact => false, + }; + if (!allow_div_zero) { + if (rhs_val.eqlScalarNum(.zero_comptime_int, zcu)) return sema.failWithDivideByZero(block, rhs_src); + } + + const can_exhibit_ib = !allow_div_zero or op == .div_exact; + if (can_exhibit_ib) { + if (lhs_val.isUndef(zcu)) return sema.failWithUseOfUndef(block, lhs_src); + if (rhs_val.isUndef(zcu)) return sema.failWithUseOfUndef(block, rhs_src); + } else { + if (lhs_val.isUndef(zcu)) return lhs_val; + if (rhs_val.isUndef(zcu)) return rhs_val; + } + + switch (op) { + .div => return floatDiv(sema, lhs_val, rhs_val, ty), + .div_trunc => return floatDivTrunc(sema, lhs_val, rhs_val, ty), + .div_floor => return floatDivFloor(sema, lhs_val, rhs_val, ty), + .div_exact => { + if (!floatDivIsExact(sema, lhs_val, rhs_val, ty)) { + return sema.fail(block, src, "exact division produced remainder", .{}); + } + return floatDivTrunc(sema, lhs_val, rhs_val, ty); + }, + } + } +} + +pub const ModRemOp = enum { mod, rem }; + +/// Applies `@mod` or `@rem` to comptime-known values. +/// `lhs_val` and `rhs_val` are fully-resolved values of type `ty`. +/// `ty` is an int, float, comptime_int, comptime_float, or vector. +pub fn modRem( + sema: *Sema, + block: *Block, + ty: Type, + lhs_val: Value, + rhs_val: Value, + lhs_src: LazySrcLoc, + rhs_src: LazySrcLoc, + op: ModRemOp, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.zigTypeTag(zcu)) { + .vector => { + const elem_ty = ty.childType(zcu); + const len = ty.vectorLen(zcu); + + const elem_vals = try sema.arena.alloc(InternPool.Index, len); + for (elem_vals, 0..) |*result_elem, elem_idx| { + const lhs_elem = try lhs_val.elemValue(pt, elem_idx); + const rhs_elem = try rhs_val.elemValue(pt, elem_idx); + result_elem.* = (try modRemScalar(sema, block, elem_ty, lhs_elem, rhs_elem, lhs_src, rhs_src, op, elem_idx)).toIntern(); + } + + const result_val = try pt.intern(.{ .aggregate = .{ + .ty = ty.toIntern(), + .storage = .{ .elems = elem_vals }, + } }); + return .fromInterned(result_val); + }, + else => return modRemScalar(sema, block, ty, lhs_val, rhs_val, lhs_src, rhs_src, op, null), + } +} +fn modRemScalar( + sema: *Sema, + block: *Block, + ty: Type, + lhs_val: Value, + rhs_val: Value, + lhs_src: LazySrcLoc, + rhs_src: LazySrcLoc, + op: ModRemOp, + vec_idx: ?usize, +) CompileError!Value { + const pt = sema.pt; + const zcu = pt.zcu; + const is_int = switch (ty.zigTypeTag(zcu)) { + .int, .comptime_int => true, + .float, .comptime_float => false, + else => unreachable, + }; + + _ = vec_idx; // TODO: use this in the "use of undefined" error + + const allow_div_zero = !is_int and block.float_mode == .strict; + if (allow_div_zero) { + if (lhs_val.isUndef(zcu)) return lhs_val; + if (rhs_val.isUndef(zcu)) return rhs_val; + } else { + if (lhs_val.isUndef(zcu)) return sema.failWithUseOfUndef(block, lhs_src); + if (rhs_val.isUndef(zcu)) return sema.failWithUseOfUndef(block, rhs_src); + if (rhs_val.eqlScalarNum(.zero_comptime_int, zcu)) return sema.failWithDivideByZero(block, rhs_src); + } + + if (is_int) { + switch (op) { + .mod => return intMod(sema, lhs_val, rhs_val, ty), + .rem => return intRem(sema, lhs_val, rhs_val, ty), + } + } else { + switch (op) { + .mod => return floatMod(sema, lhs_val, rhs_val, ty), + .rem => return floatRem(sema, lhs_val, rhs_val, ty), + } + } +} + +/// If the value overflowed the type, returns a comptime_int instead. +/// Only supports scalars. +fn intAdd(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !struct { overflow: bool, val: Value } { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.toIntern()) { + .comptime_int_type => return .{ .overflow = false, .val = try comptimeIntAdd(sema, lhs, rhs) }, + else => { + const res = try intAddWithOverflowInner(sema, lhs, rhs, ty); + return switch (res.overflow_bit.toUnsignedInt(zcu)) { + 0 => .{ .overflow = false, .val = res.wrapped_result }, + 1 => .{ .overflow = true, .val = try comptimeIntAdd(sema, lhs, rhs) }, + else => unreachable, + }; + }, + } +} +/// Add two integers, returning a `comptime_int` regardless of the input types. +fn comptimeIntAdd(sema: *Sema, lhs: Value, rhs: Value) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + // TODO is this a performance issue? maybe we should try the operation without + // resorting to BigInt first. + var lhs_space: Value.BigIntSpace = undefined; + var rhs_space: Value.BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, zcu); + const rhs_bigint = rhs.toBigInt(&rhs_space, zcu); + const limbs = try sema.arena.alloc( + std.math.big.Limb, + @max(lhs_bigint.limbs.len, rhs_bigint.limbs.len) + 1, + ); + var result_bigint: BigIntMutable = .{ .limbs = limbs, .positive = undefined, .len = undefined }; + result_bigint.add(lhs_bigint, rhs_bigint); + return pt.intValue_big(.comptime_int, result_bigint.toConst()); +} +fn intAddWithOverflow(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value.OverflowArithmeticResult { + switch (ty.toIntern()) { + .comptime_int_type => return .{ + .overflow_bit = try sema.pt.intValue(.u1, 0), + .wrapped_result = try comptimeIntAdd(sema, lhs, rhs), + }, + else => return intAddWithOverflowInner(sema, lhs, rhs, ty), + } +} +/// Like `intAddWithOverflow`, but asserts that `ty` is not `Type.comptime_int`. +fn intAddWithOverflowInner(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value.OverflowArithmeticResult { + assert(ty.toIntern() != .comptime_int_type); + const pt = sema.pt; + const zcu = pt.zcu; + const info = ty.intInfo(zcu); + var lhs_space: Value.BigIntSpace = undefined; + var rhs_space: Value.BigIntSpace = undefined; + const lhs_bigint = try lhs.toBigIntSema(&lhs_space, pt); + const rhs_bigint = try rhs.toBigIntSema(&rhs_space, pt); + const limbs = try sema.arena.alloc( + std.math.big.Limb, + std.math.big.int.calcTwosCompLimbCount(info.bits), + ); + var result_bigint: BigIntMutable = .{ .limbs = limbs, .positive = undefined, .len = undefined }; + const overflowed = result_bigint.addWrap(lhs_bigint, rhs_bigint, info.signedness, info.bits); + return .{ + .overflow_bit = try pt.intValue(.u1, @intFromBool(overflowed)), + .wrapped_result = try pt.intValue_big(ty, result_bigint.toConst()), + }; +} +fn intAddSat(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + const info = ty.intInfo(zcu); + var lhs_space: Value.BigIntSpace = undefined; + var rhs_space: Value.BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, zcu); + const rhs_bigint = rhs.toBigInt(&rhs_space, zcu); + const limbs = try sema.arena.alloc( + std.math.big.Limb, + std.math.big.int.calcTwosCompLimbCount(info.bits), + ); + var result_bigint: BigIntMutable = .{ .limbs = limbs, .positive = undefined, .len = undefined }; + result_bigint.addSat(lhs_bigint, rhs_bigint, info.signedness, info.bits); + return pt.intValue_big(ty, result_bigint.toConst()); +} + +/// If the value overflowed the type, returns a comptime_int instead. +/// Only supports scalars. +fn intSub(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !struct { overflow: bool, val: Value } { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.toIntern()) { + .comptime_int_type => return .{ .overflow = false, .val = try comptimeIntSub(sema, lhs, rhs) }, + else => { + const res = try intSubWithOverflowInner(sema, lhs, rhs, ty); + return switch (res.overflow_bit.toUnsignedInt(zcu)) { + 0 => .{ .overflow = false, .val = res.wrapped_result }, + 1 => .{ .overflow = true, .val = try comptimeIntSub(sema, lhs, rhs) }, + else => unreachable, + }; + }, + } +} +/// Subtract two integers, returning a `comptime_int` regardless of the input types. +fn comptimeIntSub(sema: *Sema, lhs: Value, rhs: Value) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + // TODO is this a performance issue? maybe we should try the operation without + // resorting to BigInt first. + var lhs_space: Value.BigIntSpace = undefined; + var rhs_space: Value.BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, zcu); + const rhs_bigint = rhs.toBigInt(&rhs_space, zcu); + const limbs = try sema.arena.alloc( + std.math.big.Limb, + @max(lhs_bigint.limbs.len, rhs_bigint.limbs.len) + 1, + ); + var result_bigint: BigIntMutable = .{ .limbs = limbs, .positive = undefined, .len = undefined }; + result_bigint.sub(lhs_bigint, rhs_bigint); + return pt.intValue_big(.comptime_int, result_bigint.toConst()); +} +fn intSubWithOverflow(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value.OverflowArithmeticResult { + switch (ty.toIntern()) { + .comptime_int_type => return .{ + .overflow_bit = try sema.pt.intValue(.u1, 0), + .wrapped_result = try comptimeIntSub(sema, lhs, rhs), + }, + else => return intSubWithOverflowInner(sema, lhs, rhs, ty), + } +} +/// Like `intSubWithOverflow`, but asserts that `ty` is not `Type.comptime_int`. +fn intSubWithOverflowInner(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value.OverflowArithmeticResult { + assert(ty.toIntern() != .comptime_int_type); + const pt = sema.pt; + const zcu = pt.zcu; + const info = ty.intInfo(zcu); + var lhs_space: Value.BigIntSpace = undefined; + var rhs_space: Value.BigIntSpace = undefined; + const lhs_bigint = try lhs.toBigIntSema(&lhs_space, pt); + const rhs_bigint = try rhs.toBigIntSema(&rhs_space, pt); + const limbs = try sema.arena.alloc( + std.math.big.Limb, + std.math.big.int.calcTwosCompLimbCount(info.bits), + ); + var result_bigint: BigIntMutable = .{ .limbs = limbs, .positive = undefined, .len = undefined }; + const overflowed = result_bigint.subWrap(lhs_bigint, rhs_bigint, info.signedness, info.bits); + return .{ + .overflow_bit = try pt.intValue(.u1, @intFromBool(overflowed)), + .wrapped_result = try pt.intValue_big(ty, result_bigint.toConst()), + }; +} +fn intSubSat(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + const info = ty.intInfo(zcu); + var lhs_space: Value.BigIntSpace = undefined; + var rhs_space: Value.BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, zcu); + const rhs_bigint = rhs.toBigInt(&rhs_space, zcu); + const limbs = try sema.arena.alloc( + std.math.big.Limb, + std.math.big.int.calcTwosCompLimbCount(info.bits), + ); + var result_bigint: BigIntMutable = .{ .limbs = limbs, .positive = undefined, .len = undefined }; + result_bigint.subSat(lhs_bigint, rhs_bigint, info.signedness, info.bits); + return pt.intValue_big(ty, result_bigint.toConst()); +} + +/// If the value overflowed the type, returns a comptime_int instead. +/// Only supports scalars. +fn intMul(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !struct { overflow: bool, val: Value } { + const pt = sema.pt; + const zcu = pt.zcu; + switch (ty.toIntern()) { + .comptime_int_type => return .{ .overflow = false, .val = try comptimeIntMul(sema, lhs, rhs) }, + else => { + const res = try intMulWithOverflowInner(sema, lhs, rhs, ty); + return switch (res.overflow_bit.toUnsignedInt(zcu)) { + 0 => .{ .overflow = false, .val = res.wrapped_result }, + 1 => .{ .overflow = true, .val = try comptimeIntMul(sema, lhs, rhs) }, + else => unreachable, + }; + }, + } +} +/// Multiply two integers, returning a `comptime_int` regardless of the input types. +fn comptimeIntMul(sema: *Sema, lhs: Value, rhs: Value) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + // TODO is this a performance issue? maybe we should try the operation without + // resorting to BigInt first. + var lhs_space: Value.BigIntSpace = undefined; + var rhs_space: Value.BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, zcu); + const rhs_bigint = rhs.toBigInt(&rhs_space, zcu); + const limbs = try sema.arena.alloc( + std.math.big.Limb, + lhs_bigint.limbs.len + rhs_bigint.limbs.len, + ); + var result_bigint: BigIntMutable = .{ .limbs = limbs, .positive = undefined, .len = undefined }; + const limbs_buffer = try sema.arena.alloc( + std.math.big.Limb, + std.math.big.int.calcMulLimbsBufferLen(lhs_bigint.limbs.len, rhs_bigint.limbs.len, 1), + ); + result_bigint.mul(lhs_bigint, rhs_bigint, limbs_buffer, sema.arena); + return pt.intValue_big(.comptime_int, result_bigint.toConst()); +} +fn intMulWithOverflow(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value.OverflowArithmeticResult { + switch (ty.toIntern()) { + .comptime_int_type => return .{ + .overflow_bit = try sema.pt.intValue(.u1, 0), + .wrapped_result = try comptimeIntMul(sema, lhs, rhs), + }, + else => return intMulWithOverflowInner(sema, lhs, rhs, ty), + } +} +/// Like `intMulWithOverflow`, but asserts that `ty` is not `Type.comptime_int`. +fn intMulWithOverflowInner(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value.OverflowArithmeticResult { + const pt = sema.pt; + const zcu = pt.zcu; + const info = ty.intInfo(zcu); + var lhs_space: Value.BigIntSpace = undefined; + var rhs_space: Value.BigIntSpace = undefined; + const lhs_bigint = try lhs.toBigIntSema(&lhs_space, pt); + const rhs_bigint = try rhs.toBigIntSema(&rhs_space, pt); + const limbs = try sema.arena.alloc( + std.math.big.Limb, + lhs_bigint.limbs.len + rhs_bigint.limbs.len, + ); + var result_bigint: BigIntMutable = .{ .limbs = limbs, .positive = undefined, .len = undefined }; + result_bigint.mulNoAlias(lhs_bigint, rhs_bigint, sema.arena); + const overflowed = !result_bigint.toConst().fitsInTwosComp(info.signedness, info.bits); + if (overflowed) result_bigint.truncate(result_bigint.toConst(), info.signedness, info.bits); + return .{ + .overflow_bit = try pt.intValue(.u1, @intFromBool(overflowed)), + .wrapped_result = try pt.intValue_big(ty, result_bigint.toConst()), + }; +} +fn intMulSat(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + const info = ty.intInfo(zcu); + var lhs_space: Value.BigIntSpace = undefined; + var rhs_space: Value.BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, zcu); + const rhs_bigint = rhs.toBigInt(&rhs_space, zcu); + const limbs = try sema.arena.alloc( + std.math.big.Limb, + lhs_bigint.limbs.len + rhs_bigint.limbs.len, + ); + var result_bigint: BigIntMutable = .{ .limbs = limbs, .positive = undefined, .len = undefined }; + result_bigint.mulNoAlias(lhs_bigint, rhs_bigint, sema.arena); + result_bigint.saturate(result_bigint.toConst(), info.signedness, info.bits); + return pt.intValue_big(ty, result_bigint.toConst()); +} +fn intDivTrunc(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !struct { overflow: bool, val: Value } { + const result = intDivTruncInner(sema, lhs, rhs, ty) catch |err| switch (err) { + error.Overflow => { + const result = intDivTruncInner(sema, lhs, rhs, .comptime_int) catch |err1| switch (err1) { + error.Overflow => unreachable, + else => |e| return e, + }; + return .{ .overflow = true, .val = result }; + }, + else => |e| return e, + }; + return .{ .overflow = false, .val = result }; +} +fn intDivTruncInner(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + var lhs_space: Value.BigIntSpace = undefined; + var rhs_space: Value.BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, zcu); + const rhs_bigint = rhs.toBigInt(&rhs_space, zcu); + const limbs_q = try sema.arena.alloc( + std.math.big.Limb, + lhs_bigint.limbs.len, + ); + const limbs_r = try sema.arena.alloc( + std.math.big.Limb, + rhs_bigint.limbs.len, + ); + const limbs_buf = try sema.arena.alloc( + std.math.big.Limb, + std.math.big.int.calcDivLimbsBufferLen(lhs_bigint.limbs.len, rhs_bigint.limbs.len), + ); + var result_q: BigIntMutable = .{ .limbs = limbs_q, .positive = undefined, .len = undefined }; + var result_r: BigIntMutable = .{ .limbs = limbs_r, .positive = undefined, .len = undefined }; + result_q.divTrunc(&result_r, lhs_bigint, rhs_bigint, limbs_buf); + if (ty.toIntern() != .comptime_int_type) { + const info = ty.intInfo(zcu); + if (!result_q.toConst().fitsInTwosComp(info.signedness, info.bits)) { + return error.Overflow; + } + } + return pt.intValue_big(ty, result_q.toConst()); +} +fn intDivExact(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !union(enum) { + remainder, + overflow: Value, + success: Value, +} { + const pt = sema.pt; + const zcu = pt.zcu; + var lhs_space: Value.BigIntSpace = undefined; + var rhs_space: Value.BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, zcu); + const rhs_bigint = rhs.toBigInt(&rhs_space, zcu); + const limbs_q = try sema.arena.alloc( + std.math.big.Limb, + lhs_bigint.limbs.len, + ); + const limbs_r = try sema.arena.alloc( + std.math.big.Limb, + rhs_bigint.limbs.len, + ); + const limbs_buf = try sema.arena.alloc( + std.math.big.Limb, + std.math.big.int.calcDivLimbsBufferLen(lhs_bigint.limbs.len, rhs_bigint.limbs.len), + ); + var result_q: BigIntMutable = .{ .limbs = limbs_q, .positive = undefined, .len = undefined }; + var result_r: BigIntMutable = .{ .limbs = limbs_r, .positive = undefined, .len = undefined }; + result_q.divTrunc(&result_r, lhs_bigint, rhs_bigint, limbs_buf); + if (!result_r.toConst().eqlZero()) { + return .remainder; + } + if (ty.toIntern() != .comptime_int_type) { + const info = ty.intInfo(zcu); + if (!result_q.toConst().fitsInTwosComp(info.signedness, info.bits)) { + return .{ .overflow = try pt.intValue_big(.comptime_int, result_q.toConst()) }; + } + } + return .{ .success = try pt.intValue_big(ty, result_q.toConst()) }; +} +fn intDivFloor(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !struct { overflow: bool, val: Value } { + const result = intDivFloorInner(sema, lhs, rhs, ty) catch |err| switch (err) { + error.Overflow => { + const result = intDivFloorInner(sema, lhs, rhs, .comptime_int) catch |err1| switch (err1) { + error.Overflow => unreachable, + else => |e| return e, + }; + return .{ .overflow = true, .val = result }; + }, + else => |e| return e, + }; + return .{ .overflow = false, .val = result }; +} +fn intDivFloorInner(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + var lhs_space: Value.BigIntSpace = undefined; + var rhs_space: Value.BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, zcu); + const rhs_bigint = rhs.toBigInt(&rhs_space, zcu); + const limbs_q = try sema.arena.alloc( + std.math.big.Limb, + lhs_bigint.limbs.len, + ); + const limbs_r = try sema.arena.alloc( + std.math.big.Limb, + rhs_bigint.limbs.len, + ); + const limbs_buf = try sema.arena.alloc( + std.math.big.Limb, + std.math.big.int.calcDivLimbsBufferLen(lhs_bigint.limbs.len, rhs_bigint.limbs.len), + ); + var result_q: BigIntMutable = .{ .limbs = limbs_q, .positive = undefined, .len = undefined }; + var result_r: BigIntMutable = .{ .limbs = limbs_r, .positive = undefined, .len = undefined }; + result_q.divFloor(&result_r, lhs_bigint, rhs_bigint, limbs_buf); + if (ty.toIntern() != .comptime_int_type) { + const info = ty.intInfo(zcu); + if (!result_q.toConst().fitsInTwosComp(info.signedness, info.bits)) { + return error.Overflow; + } + } + return pt.intValue_big(ty, result_q.toConst()); +} +fn intMod(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + var lhs_space: Value.BigIntSpace = undefined; + var rhs_space: Value.BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, zcu); + const rhs_bigint = rhs.toBigInt(&rhs_space, zcu); + const limbs_q = try sema.arena.alloc( + std.math.big.Limb, + lhs_bigint.limbs.len, + ); + const limbs_r = try sema.arena.alloc( + std.math.big.Limb, + rhs_bigint.limbs.len, + ); + const limbs_buf = try sema.arena.alloc( + std.math.big.Limb, + std.math.big.int.calcDivLimbsBufferLen(lhs_bigint.limbs.len, rhs_bigint.limbs.len), + ); + var result_q: BigIntMutable = .{ .limbs = limbs_q, .positive = undefined, .len = undefined }; + var result_r: BigIntMutable = .{ .limbs = limbs_r, .positive = undefined, .len = undefined }; + result_q.divFloor(&result_r, lhs_bigint, rhs_bigint, limbs_buf); + return pt.intValue_big(ty, result_r.toConst()); +} +fn intRem(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + var lhs_space: Value.BigIntSpace = undefined; + var rhs_space: Value.BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_space, zcu); + const rhs_bigint = rhs.toBigInt(&rhs_space, zcu); + const limbs_q = try sema.arena.alloc( + std.math.big.Limb, + lhs_bigint.limbs.len, + ); + const limbs_r = try sema.arena.alloc( + std.math.big.Limb, + rhs_bigint.limbs.len, + ); + const limbs_buf = try sema.arena.alloc( + std.math.big.Limb, + std.math.big.int.calcDivLimbsBufferLen(lhs_bigint.limbs.len, rhs_bigint.limbs.len), + ); + var result_q: BigIntMutable = .{ .limbs = limbs_q, .positive = undefined, .len = undefined }; + var result_r: BigIntMutable = .{ .limbs = limbs_r, .positive = undefined, .len = undefined }; + result_q.divTrunc(&result_r, lhs_bigint, rhs_bigint, limbs_buf); + return pt.intValue_big(ty, result_r.toConst()); +} + +fn floatAdd(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + const target = zcu.getTarget(); + const storage: InternPool.Key.Float.Storage = switch (ty.floatBits(target)) { + 16 => .{ .f16 = lhs.toFloat(f16, zcu) + rhs.toFloat(f16, zcu) }, + 32 => .{ .f32 = lhs.toFloat(f32, zcu) + rhs.toFloat(f32, zcu) }, + 64 => .{ .f64 = lhs.toFloat(f64, zcu) + rhs.toFloat(f64, zcu) }, + 80 => .{ .f80 = lhs.toFloat(f80, zcu) + rhs.toFloat(f80, zcu) }, + 128 => .{ .f128 = lhs.toFloat(f128, zcu) + rhs.toFloat(f128, zcu) }, + else => unreachable, + }; + return .fromInterned(try pt.intern(.{ .float = .{ + .ty = ty.toIntern(), + .storage = storage, + } })); +} +fn floatSub(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + const target = zcu.getTarget(); + const storage: InternPool.Key.Float.Storage = switch (ty.floatBits(target)) { + 16 => .{ .f16 = lhs.toFloat(f16, zcu) - rhs.toFloat(f16, zcu) }, + 32 => .{ .f32 = lhs.toFloat(f32, zcu) - rhs.toFloat(f32, zcu) }, + 64 => .{ .f64 = lhs.toFloat(f64, zcu) - rhs.toFloat(f64, zcu) }, + 80 => .{ .f80 = lhs.toFloat(f80, zcu) - rhs.toFloat(f80, zcu) }, + 128 => .{ .f128 = lhs.toFloat(f128, zcu) - rhs.toFloat(f128, zcu) }, + else => unreachable, + }; + return .fromInterned(try pt.intern(.{ .float = .{ + .ty = ty.toIntern(), + .storage = storage, + } })); +} +fn floatMul(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + const target = zcu.getTarget(); + const storage: InternPool.Key.Float.Storage = switch (ty.floatBits(target)) { + 16 => .{ .f16 = lhs.toFloat(f16, zcu) * rhs.toFloat(f16, zcu) }, + 32 => .{ .f32 = lhs.toFloat(f32, zcu) * rhs.toFloat(f32, zcu) }, + 64 => .{ .f64 = lhs.toFloat(f64, zcu) * rhs.toFloat(f64, zcu) }, + 80 => .{ .f80 = lhs.toFloat(f80, zcu) * rhs.toFloat(f80, zcu) }, + 128 => .{ .f128 = lhs.toFloat(f128, zcu) * rhs.toFloat(f128, zcu) }, + else => unreachable, + }; + return .fromInterned(try pt.intern(.{ .float = .{ + .ty = ty.toIntern(), + .storage = storage, + } })); +} +fn floatDiv(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + const target = zcu.getTarget(); + const storage: InternPool.Key.Float.Storage = switch (ty.floatBits(target)) { + 16 => .{ .f16 = lhs.toFloat(f16, zcu) / rhs.toFloat(f16, zcu) }, + 32 => .{ .f32 = lhs.toFloat(f32, zcu) / rhs.toFloat(f32, zcu) }, + 64 => .{ .f64 = lhs.toFloat(f64, zcu) / rhs.toFloat(f64, zcu) }, + 80 => .{ .f80 = lhs.toFloat(f80, zcu) / rhs.toFloat(f80, zcu) }, + 128 => .{ .f128 = lhs.toFloat(f128, zcu) / rhs.toFloat(f128, zcu) }, + else => unreachable, + }; + return .fromInterned(try pt.intern(.{ .float = .{ + .ty = ty.toIntern(), + .storage = storage, + } })); +} +fn floatDivTrunc(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + const target = zcu.getTarget(); + const storage: InternPool.Key.Float.Storage = switch (ty.floatBits(target)) { + 16 => .{ .f16 = @divTrunc(lhs.toFloat(f16, zcu), rhs.toFloat(f16, zcu)) }, + 32 => .{ .f32 = @divTrunc(lhs.toFloat(f32, zcu), rhs.toFloat(f32, zcu)) }, + 64 => .{ .f64 = @divTrunc(lhs.toFloat(f64, zcu), rhs.toFloat(f64, zcu)) }, + 80 => .{ .f80 = @divTrunc(lhs.toFloat(f80, zcu), rhs.toFloat(f80, zcu)) }, + 128 => .{ .f128 = @divTrunc(lhs.toFloat(f128, zcu), rhs.toFloat(f128, zcu)) }, + else => unreachable, + }; + return .fromInterned(try pt.intern(.{ .float = .{ + .ty = ty.toIntern(), + .storage = storage, + } })); +} +fn floatDivFloor(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + const target = zcu.getTarget(); + const storage: InternPool.Key.Float.Storage = switch (ty.floatBits(target)) { + 16 => .{ .f16 = @divFloor(lhs.toFloat(f16, zcu), rhs.toFloat(f16, zcu)) }, + 32 => .{ .f32 = @divFloor(lhs.toFloat(f32, zcu), rhs.toFloat(f32, zcu)) }, + 64 => .{ .f64 = @divFloor(lhs.toFloat(f64, zcu), rhs.toFloat(f64, zcu)) }, + 80 => .{ .f80 = @divFloor(lhs.toFloat(f80, zcu), rhs.toFloat(f80, zcu)) }, + 128 => .{ .f128 = @divFloor(lhs.toFloat(f128, zcu), rhs.toFloat(f128, zcu)) }, + else => unreachable, + }; + return .fromInterned(try pt.intern(.{ .float = .{ + .ty = ty.toIntern(), + .storage = storage, + } })); +} +fn floatDivIsExact(sema: *Sema, lhs: Value, rhs: Value, ty: Type) bool { + const zcu = sema.pt.zcu; + const target = zcu.getTarget(); + return switch (ty.floatBits(target)) { + 16 => @mod(lhs.toFloat(f16, zcu), rhs.toFloat(f16, zcu)) == 0, + 32 => @mod(lhs.toFloat(f32, zcu), rhs.toFloat(f32, zcu)) == 0, + 64 => @mod(lhs.toFloat(f64, zcu), rhs.toFloat(f64, zcu)) == 0, + 80 => @mod(lhs.toFloat(f80, zcu), rhs.toFloat(f80, zcu)) == 0, + 128 => @mod(lhs.toFloat(f128, zcu), rhs.toFloat(f128, zcu)) == 0, + else => unreachable, + }; +} +fn floatNeg(sema: *Sema, val: Value, ty: Type) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + const target = zcu.getTarget(); + const storage: InternPool.Key.Float.Storage = switch (ty.floatBits(target)) { + 16 => .{ .f16 = -val.toFloat(f16, zcu) }, + 32 => .{ .f32 = -val.toFloat(f32, zcu) }, + 64 => .{ .f64 = -val.toFloat(f64, zcu) }, + 80 => .{ .f80 = -val.toFloat(f80, zcu) }, + 128 => .{ .f128 = -val.toFloat(f128, zcu) }, + else => unreachable, + }; + return .fromInterned(try pt.intern(.{ .float = .{ + .ty = ty.toIntern(), + .storage = storage, + } })); +} +fn floatMod(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + const target = zcu.getTarget(); + const storage: InternPool.Key.Float.Storage = switch (ty.floatBits(target)) { + 16 => .{ .f16 = @mod(lhs.toFloat(f16, zcu), rhs.toFloat(f16, zcu)) }, + 32 => .{ .f32 = @mod(lhs.toFloat(f32, zcu), rhs.toFloat(f32, zcu)) }, + 64 => .{ .f64 = @mod(lhs.toFloat(f64, zcu), rhs.toFloat(f64, zcu)) }, + 80 => .{ .f80 = @mod(lhs.toFloat(f80, zcu), rhs.toFloat(f80, zcu)) }, + 128 => .{ .f128 = @mod(lhs.toFloat(f128, zcu), rhs.toFloat(f128, zcu)) }, + else => unreachable, + }; + return .fromInterned(try pt.intern(.{ .float = .{ + .ty = ty.toIntern(), + .storage = storage, + } })); +} +fn floatRem(sema: *Sema, lhs: Value, rhs: Value, ty: Type) !Value { + const pt = sema.pt; + const zcu = pt.zcu; + const target = zcu.getTarget(); + const storage: InternPool.Key.Float.Storage = switch (ty.floatBits(target)) { + 16 => .{ .f16 = @rem(lhs.toFloat(f16, zcu), rhs.toFloat(f16, zcu)) }, + 32 => .{ .f32 = @rem(lhs.toFloat(f32, zcu), rhs.toFloat(f32, zcu)) }, + 64 => .{ .f64 = @rem(lhs.toFloat(f64, zcu), rhs.toFloat(f64, zcu)) }, + 80 => .{ .f80 = @rem(lhs.toFloat(f80, zcu), rhs.toFloat(f80, zcu)) }, + 128 => .{ .f128 = @rem(lhs.toFloat(f128, zcu), rhs.toFloat(f128, zcu)) }, + else => unreachable, + }; + return .fromInterned(try pt.intern(.{ .float = .{ + .ty = ty.toIntern(), + .storage = storage, + } })); +} + +const Sema = @import("../Sema.zig"); +const Block = Sema.Block; +const InternPool = @import("../InternPool.zig"); +const Type = @import("../Type.zig"); +const Value = @import("../Value.zig"); +const Zcu = @import("../Zcu.zig"); +const CompileError = Zcu.CompileError; +const LazySrcLoc = Zcu.LazySrcLoc; + +const std = @import("std"); +const assert = std.debug.assert; +const Allocator = std.mem.Allocator; +const BigIntMutable = std.math.big.int.Mutable; diff --git a/src/Value.zig b/src/Value.zig index 40e5331c4e..7357c0f225 100644 --- a/src/Value.zig +++ b/src/Value.zig @@ -895,7 +895,7 @@ pub fn readFromPackedMemory( } /// Asserts that the value is a float or an integer. -pub fn toFloat(val: Value, comptime T: type, zcu: *Zcu) T { +pub fn toFloat(val: Value, comptime T: type, zcu: *const Zcu) T { return switch (zcu.intern_pool.indexToKey(val.toIntern())) { .int => |int| switch (int.storage) { .big_int => |big_int| big_int.toFloat(T), @@ -1415,17 +1415,63 @@ pub fn unionValue(val: Value, zcu: *Zcu) Value { }; } -pub fn isUndef(val: Value, zcu: *Zcu) bool { +pub fn isUndef(val: Value, zcu: *const Zcu) bool { return zcu.intern_pool.isUndef(val.toIntern()); } /// TODO: check for cases such as array that is not marked undef but all the element /// values are marked undef, or struct that is not marked undef but all fields are marked /// undef, etc. -pub fn isUndefDeep(val: Value, zcu: *Zcu) bool { +pub fn isUndefDeep(val: Value, zcu: *const Zcu) bool { return val.isUndef(zcu); } +/// `val` must have a numeric or vector type. +/// Returns whether `val` is undefined or contains any undefined elements. +pub fn anyScalarIsUndef(val: Value, zcu: *const Zcu) bool { + switch (zcu.intern_pool.indexToKey(val.toIntern())) { + .undef => return true, + .int, .float => return false, + .aggregate => |agg| { + assert(Type.fromInterned(agg.ty).zigTypeTag(zcu) == .vector); + for (agg.storage.values()) |elem_val| { + if (Value.fromInterned(elem_val).isUndef(zcu)) return true; + } + return false; + }, + else => unreachable, + } +} + +/// `val` must have a numeric or vector type. +/// Returns whether `val` contains any elements equal to zero. +/// Asserts that `val` is not `undefined`, nor a vector containing any `undefined` elements. +pub fn anyScalarIsZero(val: Value, zcu: *Zcu) bool { + assert(!val.anyScalarIsUndef(zcu)); + + switch (zcu.intern_pool.indexToKey(val.toIntern())) { + .int, .float => return val.eqlScalarNum(.zero_comptime_int, zcu), + .aggregate => |agg| { + assert(Type.fromInterned(agg.ty).zigTypeTag(zcu) == .vector); + switch (agg.storage) { + .bytes => |str| { + const len = Type.fromInterned(agg.ty).vectorLen(zcu); + const slice = str.toSlice(len, &zcu.intern_pool); + return std.mem.indexOfScalar(u8, slice, 0) != null; + }, + .elems => |elems| { + for (elems) |elem| { + if (Value.fromInterned(elem).isUndef(zcu)) return true; + } + return false; + }, + .repeated_elem => |elem| return Value.fromInterned(elem).isUndef(zcu), + } + }, + else => unreachable, + } +} + /// Asserts the value is not undefined and not unreachable. /// C pointers with an integer value of 0 are also considered null. pub fn isNull(val: Value, zcu: *Zcu) bool { @@ -1572,295 +1618,6 @@ pub const OverflowArithmeticResult = struct { wrapped_result: Value, }; -/// Supports (vectors of) integers only; asserts neither operand is undefined. -pub fn intAddSat( - lhs: Value, - rhs: Value, - ty: Type, - arena: Allocator, - pt: Zcu.PerThread, -) !Value { - if (ty.zigTypeTag(pt.zcu) == .vector) { - const result_data = try arena.alloc(InternPool.Index, ty.vectorLen(pt.zcu)); - const scalar_ty = ty.scalarType(pt.zcu); - for (result_data, 0..) |*scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - scalar.* = (try intAddSatScalar(lhs_elem, rhs_elem, scalar_ty, arena, pt)).toIntern(); - } - return Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = ty.toIntern(), - .storage = .{ .elems = result_data }, - } })); - } - return intAddSatScalar(lhs, rhs, ty, arena, pt); -} - -/// Supports integers only; asserts neither operand is undefined. -pub fn intAddSatScalar( - lhs: Value, - rhs: Value, - ty: Type, - arena: Allocator, - pt: Zcu.PerThread, -) !Value { - const zcu = pt.zcu; - assert(!lhs.isUndef(zcu)); - assert(!rhs.isUndef(zcu)); - - const info = ty.intInfo(zcu); - - var lhs_space: Value.BigIntSpace = undefined; - var rhs_space: Value.BigIntSpace = undefined; - const lhs_bigint = lhs.toBigInt(&lhs_space, zcu); - const rhs_bigint = rhs.toBigInt(&rhs_space, zcu); - const limbs = try arena.alloc( - std.math.big.Limb, - std.math.big.int.calcTwosCompLimbCount(info.bits), - ); - var result_bigint = BigIntMutable{ .limbs = limbs, .positive = undefined, .len = undefined }; - result_bigint.addSat(lhs_bigint, rhs_bigint, info.signedness, info.bits); - return pt.intValue_big(ty, result_bigint.toConst()); -} - -/// Supports (vectors of) integers only; asserts neither operand is undefined. -pub fn intSubSat( - lhs: Value, - rhs: Value, - ty: Type, - arena: Allocator, - pt: Zcu.PerThread, -) !Value { - if (ty.zigTypeTag(pt.zcu) == .vector) { - const result_data = try arena.alloc(InternPool.Index, ty.vectorLen(pt.zcu)); - const scalar_ty = ty.scalarType(pt.zcu); - for (result_data, 0..) |*scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - scalar.* = (try intSubSatScalar(lhs_elem, rhs_elem, scalar_ty, arena, pt)).toIntern(); - } - return Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = ty.toIntern(), - .storage = .{ .elems = result_data }, - } })); - } - return intSubSatScalar(lhs, rhs, ty, arena, pt); -} - -/// Supports integers only; asserts neither operand is undefined. -pub fn intSubSatScalar( - lhs: Value, - rhs: Value, - ty: Type, - arena: Allocator, - pt: Zcu.PerThread, -) !Value { - const zcu = pt.zcu; - - assert(!lhs.isUndef(zcu)); - assert(!rhs.isUndef(zcu)); - - const info = ty.intInfo(zcu); - - var lhs_space: Value.BigIntSpace = undefined; - var rhs_space: Value.BigIntSpace = undefined; - const lhs_bigint = lhs.toBigInt(&lhs_space, zcu); - const rhs_bigint = rhs.toBigInt(&rhs_space, zcu); - const limbs = try arena.alloc( - std.math.big.Limb, - std.math.big.int.calcTwosCompLimbCount(info.bits), - ); - var result_bigint = BigIntMutable{ .limbs = limbs, .positive = undefined, .len = undefined }; - result_bigint.subSat(lhs_bigint, rhs_bigint, info.signedness, info.bits); - return pt.intValue_big(ty, result_bigint.toConst()); -} - -pub fn intMulWithOverflow( - lhs: Value, - rhs: Value, - ty: Type, - arena: Allocator, - pt: Zcu.PerThread, -) !OverflowArithmeticResult { - const zcu = pt.zcu; - if (ty.zigTypeTag(zcu) == .vector) { - const vec_len = ty.vectorLen(zcu); - const overflowed_data = try arena.alloc(InternPool.Index, vec_len); - const result_data = try arena.alloc(InternPool.Index, vec_len); - const scalar_ty = ty.scalarType(zcu); - for (overflowed_data, result_data, 0..) |*of, *scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - const of_math_result = try intMulWithOverflowScalar(lhs_elem, rhs_elem, scalar_ty, arena, pt); - of.* = of_math_result.overflow_bit.toIntern(); - scalar.* = of_math_result.wrapped_result.toIntern(); - } - return OverflowArithmeticResult{ - .overflow_bit = Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = (try pt.vectorType(.{ .len = vec_len, .child = .u1_type })).toIntern(), - .storage = .{ .elems = overflowed_data }, - } })), - .wrapped_result = Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = ty.toIntern(), - .storage = .{ .elems = result_data }, - } })), - }; - } - return intMulWithOverflowScalar(lhs, rhs, ty, arena, pt); -} - -pub fn intMulWithOverflowScalar( - lhs: Value, - rhs: Value, - ty: Type, - arena: Allocator, - pt: Zcu.PerThread, -) !OverflowArithmeticResult { - const zcu = pt.zcu; - const info = ty.intInfo(zcu); - - if (lhs.isUndef(zcu) or rhs.isUndef(zcu)) { - return .{ - .overflow_bit = try pt.undefValue(Type.u1), - .wrapped_result = try pt.undefValue(ty), - }; - } - - var lhs_space: Value.BigIntSpace = undefined; - var rhs_space: Value.BigIntSpace = undefined; - const lhs_bigint = lhs.toBigInt(&lhs_space, zcu); - const rhs_bigint = rhs.toBigInt(&rhs_space, zcu); - const limbs = try arena.alloc( - std.math.big.Limb, - lhs_bigint.limbs.len + rhs_bigint.limbs.len, - ); - var result_bigint = BigIntMutable{ .limbs = limbs, .positive = undefined, .len = undefined }; - const limbs_buffer = try arena.alloc( - std.math.big.Limb, - std.math.big.int.calcMulLimbsBufferLen(lhs_bigint.limbs.len, rhs_bigint.limbs.len, 1), - ); - result_bigint.mul(lhs_bigint, rhs_bigint, limbs_buffer, arena); - - const overflowed = !result_bigint.toConst().fitsInTwosComp(info.signedness, info.bits); - if (overflowed) { - result_bigint.truncate(result_bigint.toConst(), info.signedness, info.bits); - } - - return OverflowArithmeticResult{ - .overflow_bit = try pt.intValue(Type.u1, @intFromBool(overflowed)), - .wrapped_result = try pt.intValue_big(ty, result_bigint.toConst()), - }; -} - -/// Supports both (vectors of) floats and ints; handles undefined scalars. -pub fn numberMulWrap( - lhs: Value, - rhs: Value, - ty: Type, - arena: Allocator, - pt: Zcu.PerThread, -) !Value { - const zcu = pt.zcu; - if (ty.zigTypeTag(zcu) == .vector) { - const result_data = try arena.alloc(InternPool.Index, ty.vectorLen(zcu)); - const scalar_ty = ty.scalarType(zcu); - for (result_data, 0..) |*scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - scalar.* = (try numberMulWrapScalar(lhs_elem, rhs_elem, scalar_ty, arena, pt)).toIntern(); - } - return Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = ty.toIntern(), - .storage = .{ .elems = result_data }, - } })); - } - return numberMulWrapScalar(lhs, rhs, ty, arena, pt); -} - -/// Supports both floats and ints; handles undefined. -pub fn numberMulWrapScalar( - lhs: Value, - rhs: Value, - ty: Type, - arena: Allocator, - pt: Zcu.PerThread, -) !Value { - const zcu = pt.zcu; - if (lhs.isUndef(zcu) or rhs.isUndef(zcu)) return Value.undef; - - if (ty.zigTypeTag(zcu) == .comptime_int) { - return intMul(lhs, rhs, ty, undefined, arena, pt); - } - - if (ty.isAnyFloat()) { - return floatMul(lhs, rhs, ty, arena, pt); - } - - const overflow_result = try intMulWithOverflow(lhs, rhs, ty, arena, pt); - return overflow_result.wrapped_result; -} - -/// Supports (vectors of) integers only; asserts neither operand is undefined. -pub fn intMulSat( - lhs: Value, - rhs: Value, - ty: Type, - arena: Allocator, - pt: Zcu.PerThread, -) !Value { - if (ty.zigTypeTag(pt.zcu) == .vector) { - const result_data = try arena.alloc(InternPool.Index, ty.vectorLen(pt.zcu)); - const scalar_ty = ty.scalarType(pt.zcu); - for (result_data, 0..) |*scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - scalar.* = (try intMulSatScalar(lhs_elem, rhs_elem, scalar_ty, arena, pt)).toIntern(); - } - return Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = ty.toIntern(), - .storage = .{ .elems = result_data }, - } })); - } - return intMulSatScalar(lhs, rhs, ty, arena, pt); -} - -/// Supports (vectors of) integers only; asserts neither operand is undefined. -pub fn intMulSatScalar( - lhs: Value, - rhs: Value, - ty: Type, - arena: Allocator, - pt: Zcu.PerThread, -) !Value { - const zcu = pt.zcu; - - assert(!lhs.isUndef(zcu)); - assert(!rhs.isUndef(zcu)); - - const info = ty.intInfo(zcu); - - var lhs_space: Value.BigIntSpace = undefined; - var rhs_space: Value.BigIntSpace = undefined; - const lhs_bigint = lhs.toBigInt(&lhs_space, zcu); - const rhs_bigint = rhs.toBigInt(&rhs_space, zcu); - const limbs = try arena.alloc( - std.math.big.Limb, - @max( - // For the saturate - std.math.big.int.calcTwosCompLimbCount(info.bits), - lhs_bigint.limbs.len + rhs_bigint.limbs.len, - ), - ); - var result_bigint = BigIntMutable{ .limbs = limbs, .positive = undefined, .len = undefined }; - const limbs_buffer = try arena.alloc( - std.math.big.Limb, - std.math.big.int.calcMulLimbsBufferLen(lhs_bigint.limbs.len, rhs_bigint.limbs.len, 1), - ); - result_bigint.mul(lhs_bigint, rhs_bigint, limbs_buffer, arena); - result_bigint.saturate(result_bigint.toConst(), info.signedness, info.bits); - return pt.intValue_big(ty, result_bigint.toConst()); -} - /// Supports both floats and ints; handles undefined. pub fn numberMax(lhs: Value, rhs: Value, zcu: *Zcu) Value { if (lhs.isUndef(zcu) or rhs.isUndef(zcu)) return undef; @@ -2126,143 +1883,6 @@ pub fn bitwiseXorScalar(lhs: Value, rhs: Value, ty: Type, arena: Allocator, pt: return pt.intValue_big(ty, result_bigint.toConst()); } -/// If the value overflowed the type, returns a comptime_int (or vector thereof) instead, setting -/// overflow_idx to the vector index the overflow was at (or 0 for a scalar). -pub fn intDiv(lhs: Value, rhs: Value, ty: Type, overflow_idx: *?usize, allocator: Allocator, pt: Zcu.PerThread) !Value { - var overflow: usize = undefined; - return intDivInner(lhs, rhs, ty, &overflow, allocator, pt) catch |err| switch (err) { - error.Overflow => { - const is_vec = ty.isVector(pt.zcu); - overflow_idx.* = if (is_vec) overflow else 0; - const safe_ty = if (is_vec) try pt.vectorType(.{ - .len = ty.vectorLen(pt.zcu), - .child = .comptime_int_type, - }) else Type.comptime_int; - return intDivInner(lhs, rhs, safe_ty, undefined, allocator, pt) catch |err1| switch (err1) { - error.Overflow => unreachable, - else => |e| return e, - }; - }, - else => |e| return e, - }; -} - -fn intDivInner(lhs: Value, rhs: Value, ty: Type, overflow_idx: *usize, allocator: Allocator, pt: Zcu.PerThread) !Value { - if (ty.zigTypeTag(pt.zcu) == .vector) { - const result_data = try allocator.alloc(InternPool.Index, ty.vectorLen(pt.zcu)); - const scalar_ty = ty.scalarType(pt.zcu); - for (result_data, 0..) |*scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - const val = intDivScalar(lhs_elem, rhs_elem, scalar_ty, allocator, pt) catch |err| switch (err) { - error.Overflow => { - overflow_idx.* = i; - return error.Overflow; - }, - else => |e| return e, - }; - scalar.* = val.toIntern(); - } - return Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = ty.toIntern(), - .storage = .{ .elems = result_data }, - } })); - } - return intDivScalar(lhs, rhs, ty, allocator, pt); -} - -pub fn intDivScalar(lhs: Value, rhs: Value, ty: Type, allocator: Allocator, pt: Zcu.PerThread) !Value { - // TODO is this a performance issue? maybe we should try the operation without - // resorting to BigInt first. - const zcu = pt.zcu; - var lhs_space: Value.BigIntSpace = undefined; - var rhs_space: Value.BigIntSpace = undefined; - const lhs_bigint = lhs.toBigInt(&lhs_space, zcu); - const rhs_bigint = rhs.toBigInt(&rhs_space, zcu); - const limbs_q = try allocator.alloc( - std.math.big.Limb, - lhs_bigint.limbs.len, - ); - const limbs_r = try allocator.alloc( - std.math.big.Limb, - rhs_bigint.limbs.len, - ); - const limbs_buffer = try allocator.alloc( - std.math.big.Limb, - std.math.big.int.calcDivLimbsBufferLen(lhs_bigint.limbs.len, rhs_bigint.limbs.len), - ); - var result_q = BigIntMutable{ .limbs = limbs_q, .positive = undefined, .len = undefined }; - var result_r = BigIntMutable{ .limbs = limbs_r, .positive = undefined, .len = undefined }; - result_q.divTrunc(&result_r, lhs_bigint, rhs_bigint, limbs_buffer); - if (ty.toIntern() != .comptime_int_type) { - const info = ty.intInfo(pt.zcu); - if (!result_q.toConst().fitsInTwosComp(info.signedness, info.bits)) { - return error.Overflow; - } - } - return pt.intValue_big(ty, result_q.toConst()); -} - -pub fn intDivFloor(lhs: Value, rhs: Value, ty: Type, allocator: Allocator, pt: Zcu.PerThread) !Value { - if (ty.zigTypeTag(pt.zcu) == .vector) { - const result_data = try allocator.alloc(InternPool.Index, ty.vectorLen(pt.zcu)); - const scalar_ty = ty.scalarType(pt.zcu); - for (result_data, 0..) |*scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - scalar.* = (try intDivFloorScalar(lhs_elem, rhs_elem, scalar_ty, allocator, pt)).toIntern(); - } - return Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = ty.toIntern(), - .storage = .{ .elems = result_data }, - } })); - } - return intDivFloorScalar(lhs, rhs, ty, allocator, pt); -} - -pub fn intDivFloorScalar(lhs: Value, rhs: Value, ty: Type, allocator: Allocator, pt: Zcu.PerThread) !Value { - // TODO is this a performance issue? maybe we should try the operation without - // resorting to BigInt first. - const zcu = pt.zcu; - var lhs_space: Value.BigIntSpace = undefined; - var rhs_space: Value.BigIntSpace = undefined; - const lhs_bigint = lhs.toBigInt(&lhs_space, zcu); - const rhs_bigint = rhs.toBigInt(&rhs_space, zcu); - const limbs_q = try allocator.alloc( - std.math.big.Limb, - lhs_bigint.limbs.len, - ); - const limbs_r = try allocator.alloc( - std.math.big.Limb, - rhs_bigint.limbs.len, - ); - const limbs_buffer = try allocator.alloc( - std.math.big.Limb, - std.math.big.int.calcDivLimbsBufferLen(lhs_bigint.limbs.len, rhs_bigint.limbs.len), - ); - var result_q = BigIntMutable{ .limbs = limbs_q, .positive = undefined, .len = undefined }; - var result_r = BigIntMutable{ .limbs = limbs_r, .positive = undefined, .len = undefined }; - result_q.divFloor(&result_r, lhs_bigint, rhs_bigint, limbs_buffer); - return pt.intValue_big(ty, result_q.toConst()); -} - -pub fn intMod(lhs: Value, rhs: Value, ty: Type, allocator: Allocator, pt: Zcu.PerThread) !Value { - if (ty.zigTypeTag(pt.zcu) == .vector) { - const result_data = try allocator.alloc(InternPool.Index, ty.vectorLen(pt.zcu)); - const scalar_ty = ty.scalarType(pt.zcu); - for (result_data, 0..) |*scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - scalar.* = (try intModScalar(lhs_elem, rhs_elem, scalar_ty, allocator, pt)).toIntern(); - } - return Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = ty.toIntern(), - .storage = .{ .elems = result_data }, - } })); - } - return intModScalar(lhs, rhs, ty, allocator, pt); -} - pub fn intModScalar(lhs: Value, rhs: Value, ty: Type, allocator: Allocator, pt: Zcu.PerThread) !Value { // TODO is this a performance issue? maybe we should try the operation without // resorting to BigInt first. @@ -2386,80 +2006,6 @@ pub fn floatModScalar(lhs: Value, rhs: Value, float_type: Type, pt: Zcu.PerThrea } })); } -/// If the value overflowed the type, returns a comptime_int (or vector thereof) instead, setting -/// overflow_idx to the vector index the overflow was at (or 0 for a scalar). -pub fn intMul(lhs: Value, rhs: Value, ty: Type, overflow_idx: *?usize, allocator: Allocator, pt: Zcu.PerThread) !Value { - const zcu = pt.zcu; - var overflow: usize = undefined; - return intMulInner(lhs, rhs, ty, &overflow, allocator, pt) catch |err| switch (err) { - error.Overflow => { - const is_vec = ty.isVector(zcu); - overflow_idx.* = if (is_vec) overflow else 0; - const safe_ty = if (is_vec) try pt.vectorType(.{ - .len = ty.vectorLen(zcu), - .child = .comptime_int_type, - }) else Type.comptime_int; - return intMulInner(lhs, rhs, safe_ty, undefined, allocator, pt) catch |err1| switch (err1) { - error.Overflow => unreachable, - else => |e| return e, - }; - }, - else => |e| return e, - }; -} - -fn intMulInner(lhs: Value, rhs: Value, ty: Type, overflow_idx: *usize, allocator: Allocator, pt: Zcu.PerThread) !Value { - const zcu = pt.zcu; - if (ty.zigTypeTag(zcu) == .vector) { - const result_data = try allocator.alloc(InternPool.Index, ty.vectorLen(zcu)); - const scalar_ty = ty.scalarType(zcu); - for (result_data, 0..) |*scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - const val = intMulScalar(lhs_elem, rhs_elem, scalar_ty, allocator, pt) catch |err| switch (err) { - error.Overflow => { - overflow_idx.* = i; - return error.Overflow; - }, - else => |e| return e, - }; - scalar.* = val.toIntern(); - } - return Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = ty.toIntern(), - .storage = .{ .elems = result_data }, - } })); - } - return intMulScalar(lhs, rhs, ty, allocator, pt); -} - -pub fn intMulScalar(lhs: Value, rhs: Value, ty: Type, allocator: Allocator, pt: Zcu.PerThread) !Value { - const zcu = pt.zcu; - if (ty.toIntern() != .comptime_int_type) { - const res = try intMulWithOverflowScalar(lhs, rhs, ty, allocator, pt); - if (res.overflow_bit.compareAllWithZero(.neq, zcu)) return error.Overflow; - return res.wrapped_result; - } - // TODO is this a performance issue? maybe we should try the operation without - // resorting to BigInt first. - var lhs_space: Value.BigIntSpace = undefined; - var rhs_space: Value.BigIntSpace = undefined; - const lhs_bigint = lhs.toBigInt(&lhs_space, zcu); - const rhs_bigint = rhs.toBigInt(&rhs_space, zcu); - const limbs = try allocator.alloc( - std.math.big.Limb, - lhs_bigint.limbs.len + rhs_bigint.limbs.len, - ); - var result_bigint = BigIntMutable{ .limbs = limbs, .positive = undefined, .len = undefined }; - const limbs_buffer = try allocator.alloc( - std.math.big.Limb, - std.math.big.int.calcMulLimbsBufferLen(lhs_bigint.limbs.len, rhs_bigint.limbs.len, 1), - ); - defer allocator.free(limbs_buffer); - result_bigint.mul(lhs_bigint, rhs_bigint, limbs_buffer, allocator); - return pt.intValue_big(ty, result_bigint.toConst()); -} - pub fn intTrunc(val: Value, ty: Type, allocator: Allocator, signedness: std.builtin.Signedness, bits: u16, pt: Zcu.PerThread) !Value { const zcu = pt.zcu; if (ty.zigTypeTag(zcu) == .vector) { @@ -2773,318 +2319,6 @@ pub fn shrScalar(lhs: Value, rhs: Value, ty: Type, allocator: Allocator, pt: Zcu return pt.intValue_big(ty, result_bigint.toConst()); } -pub fn floatNeg( - val: Value, - float_type: Type, - arena: Allocator, - pt: Zcu.PerThread, -) !Value { - const zcu = pt.zcu; - if (float_type.zigTypeTag(zcu) == .vector) { - const result_data = try arena.alloc(InternPool.Index, float_type.vectorLen(zcu)); - const scalar_ty = float_type.scalarType(zcu); - for (result_data, 0..) |*scalar, i| { - const elem_val = try val.elemValue(pt, i); - scalar.* = (try floatNegScalar(elem_val, scalar_ty, pt)).toIntern(); - } - return Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = float_type.toIntern(), - .storage = .{ .elems = result_data }, - } })); - } - return floatNegScalar(val, float_type, pt); -} - -pub fn floatNegScalar(val: Value, float_type: Type, pt: Zcu.PerThread) !Value { - const zcu = pt.zcu; - const target = zcu.getTarget(); - const storage: InternPool.Key.Float.Storage = switch (float_type.floatBits(target)) { - 16 => .{ .f16 = -val.toFloat(f16, zcu) }, - 32 => .{ .f32 = -val.toFloat(f32, zcu) }, - 64 => .{ .f64 = -val.toFloat(f64, zcu) }, - 80 => .{ .f80 = -val.toFloat(f80, zcu) }, - 128 => .{ .f128 = -val.toFloat(f128, zcu) }, - else => unreachable, - }; - return Value.fromInterned(try pt.intern(.{ .float = .{ - .ty = float_type.toIntern(), - .storage = storage, - } })); -} - -pub fn floatAdd( - lhs: Value, - rhs: Value, - float_type: Type, - arena: Allocator, - pt: Zcu.PerThread, -) !Value { - const zcu = pt.zcu; - if (float_type.zigTypeTag(zcu) == .vector) { - const result_data = try arena.alloc(InternPool.Index, float_type.vectorLen(zcu)); - const scalar_ty = float_type.scalarType(zcu); - for (result_data, 0..) |*scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - scalar.* = (try floatAddScalar(lhs_elem, rhs_elem, scalar_ty, pt)).toIntern(); - } - return Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = float_type.toIntern(), - .storage = .{ .elems = result_data }, - } })); - } - return floatAddScalar(lhs, rhs, float_type, pt); -} - -pub fn floatAddScalar( - lhs: Value, - rhs: Value, - float_type: Type, - pt: Zcu.PerThread, -) !Value { - const zcu = pt.zcu; - const target = zcu.getTarget(); - const storage: InternPool.Key.Float.Storage = switch (float_type.floatBits(target)) { - 16 => .{ .f16 = lhs.toFloat(f16, zcu) + rhs.toFloat(f16, zcu) }, - 32 => .{ .f32 = lhs.toFloat(f32, zcu) + rhs.toFloat(f32, zcu) }, - 64 => .{ .f64 = lhs.toFloat(f64, zcu) + rhs.toFloat(f64, zcu) }, - 80 => .{ .f80 = lhs.toFloat(f80, zcu) + rhs.toFloat(f80, zcu) }, - 128 => .{ .f128 = lhs.toFloat(f128, zcu) + rhs.toFloat(f128, zcu) }, - else => unreachable, - }; - return Value.fromInterned(try pt.intern(.{ .float = .{ - .ty = float_type.toIntern(), - .storage = storage, - } })); -} - -pub fn floatSub( - lhs: Value, - rhs: Value, - float_type: Type, - arena: Allocator, - pt: Zcu.PerThread, -) !Value { - const zcu = pt.zcu; - if (float_type.zigTypeTag(zcu) == .vector) { - const result_data = try arena.alloc(InternPool.Index, float_type.vectorLen(zcu)); - const scalar_ty = float_type.scalarType(zcu); - for (result_data, 0..) |*scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - scalar.* = (try floatSubScalar(lhs_elem, rhs_elem, scalar_ty, pt)).toIntern(); - } - return Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = float_type.toIntern(), - .storage = .{ .elems = result_data }, - } })); - } - return floatSubScalar(lhs, rhs, float_type, pt); -} - -pub fn floatSubScalar( - lhs: Value, - rhs: Value, - float_type: Type, - pt: Zcu.PerThread, -) !Value { - const zcu = pt.zcu; - const target = zcu.getTarget(); - const storage: InternPool.Key.Float.Storage = switch (float_type.floatBits(target)) { - 16 => .{ .f16 = lhs.toFloat(f16, zcu) - rhs.toFloat(f16, zcu) }, - 32 => .{ .f32 = lhs.toFloat(f32, zcu) - rhs.toFloat(f32, zcu) }, - 64 => .{ .f64 = lhs.toFloat(f64, zcu) - rhs.toFloat(f64, zcu) }, - 80 => .{ .f80 = lhs.toFloat(f80, zcu) - rhs.toFloat(f80, zcu) }, - 128 => .{ .f128 = lhs.toFloat(f128, zcu) - rhs.toFloat(f128, zcu) }, - else => unreachable, - }; - return Value.fromInterned(try pt.intern(.{ .float = .{ - .ty = float_type.toIntern(), - .storage = storage, - } })); -} - -pub fn floatDiv( - lhs: Value, - rhs: Value, - float_type: Type, - arena: Allocator, - pt: Zcu.PerThread, -) !Value { - if (float_type.zigTypeTag(pt.zcu) == .vector) { - const result_data = try arena.alloc(InternPool.Index, float_type.vectorLen(pt.zcu)); - const scalar_ty = float_type.scalarType(pt.zcu); - for (result_data, 0..) |*scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - scalar.* = (try floatDivScalar(lhs_elem, rhs_elem, scalar_ty, pt)).toIntern(); - } - return Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = float_type.toIntern(), - .storage = .{ .elems = result_data }, - } })); - } - return floatDivScalar(lhs, rhs, float_type, pt); -} - -pub fn floatDivScalar( - lhs: Value, - rhs: Value, - float_type: Type, - pt: Zcu.PerThread, -) !Value { - const zcu = pt.zcu; - const target = zcu.getTarget(); - const storage: InternPool.Key.Float.Storage = switch (float_type.floatBits(target)) { - 16 => .{ .f16 = lhs.toFloat(f16, zcu) / rhs.toFloat(f16, zcu) }, - 32 => .{ .f32 = lhs.toFloat(f32, zcu) / rhs.toFloat(f32, zcu) }, - 64 => .{ .f64 = lhs.toFloat(f64, zcu) / rhs.toFloat(f64, zcu) }, - 80 => .{ .f80 = lhs.toFloat(f80, zcu) / rhs.toFloat(f80, zcu) }, - 128 => .{ .f128 = lhs.toFloat(f128, zcu) / rhs.toFloat(f128, zcu) }, - else => unreachable, - }; - return Value.fromInterned(try pt.intern(.{ .float = .{ - .ty = float_type.toIntern(), - .storage = storage, - } })); -} - -pub fn floatDivFloor( - lhs: Value, - rhs: Value, - float_type: Type, - arena: Allocator, - pt: Zcu.PerThread, -) !Value { - if (float_type.zigTypeTag(pt.zcu) == .vector) { - const result_data = try arena.alloc(InternPool.Index, float_type.vectorLen(pt.zcu)); - const scalar_ty = float_type.scalarType(pt.zcu); - for (result_data, 0..) |*scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - scalar.* = (try floatDivFloorScalar(lhs_elem, rhs_elem, scalar_ty, pt)).toIntern(); - } - return Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = float_type.toIntern(), - .storage = .{ .elems = result_data }, - } })); - } - return floatDivFloorScalar(lhs, rhs, float_type, pt); -} - -pub fn floatDivFloorScalar( - lhs: Value, - rhs: Value, - float_type: Type, - pt: Zcu.PerThread, -) !Value { - const zcu = pt.zcu; - const target = zcu.getTarget(); - const storage: InternPool.Key.Float.Storage = switch (float_type.floatBits(target)) { - 16 => .{ .f16 = @divFloor(lhs.toFloat(f16, zcu), rhs.toFloat(f16, zcu)) }, - 32 => .{ .f32 = @divFloor(lhs.toFloat(f32, zcu), rhs.toFloat(f32, zcu)) }, - 64 => .{ .f64 = @divFloor(lhs.toFloat(f64, zcu), rhs.toFloat(f64, zcu)) }, - 80 => .{ .f80 = @divFloor(lhs.toFloat(f80, zcu), rhs.toFloat(f80, zcu)) }, - 128 => .{ .f128 = @divFloor(lhs.toFloat(f128, zcu), rhs.toFloat(f128, zcu)) }, - else => unreachable, - }; - return Value.fromInterned(try pt.intern(.{ .float = .{ - .ty = float_type.toIntern(), - .storage = storage, - } })); -} - -pub fn floatDivTrunc( - lhs: Value, - rhs: Value, - float_type: Type, - arena: Allocator, - pt: Zcu.PerThread, -) !Value { - if (float_type.zigTypeTag(pt.zcu) == .vector) { - const result_data = try arena.alloc(InternPool.Index, float_type.vectorLen(pt.zcu)); - const scalar_ty = float_type.scalarType(pt.zcu); - for (result_data, 0..) |*scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - scalar.* = (try floatDivTruncScalar(lhs_elem, rhs_elem, scalar_ty, pt)).toIntern(); - } - return Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = float_type.toIntern(), - .storage = .{ .elems = result_data }, - } })); - } - return floatDivTruncScalar(lhs, rhs, float_type, pt); -} - -pub fn floatDivTruncScalar( - lhs: Value, - rhs: Value, - float_type: Type, - pt: Zcu.PerThread, -) !Value { - const zcu = pt.zcu; - const target = zcu.getTarget(); - const storage: InternPool.Key.Float.Storage = switch (float_type.floatBits(target)) { - 16 => .{ .f16 = @divTrunc(lhs.toFloat(f16, zcu), rhs.toFloat(f16, zcu)) }, - 32 => .{ .f32 = @divTrunc(lhs.toFloat(f32, zcu), rhs.toFloat(f32, zcu)) }, - 64 => .{ .f64 = @divTrunc(lhs.toFloat(f64, zcu), rhs.toFloat(f64, zcu)) }, - 80 => .{ .f80 = @divTrunc(lhs.toFloat(f80, zcu), rhs.toFloat(f80, zcu)) }, - 128 => .{ .f128 = @divTrunc(lhs.toFloat(f128, zcu), rhs.toFloat(f128, zcu)) }, - else => unreachable, - }; - return Value.fromInterned(try pt.intern(.{ .float = .{ - .ty = float_type.toIntern(), - .storage = storage, - } })); -} - -pub fn floatMul( - lhs: Value, - rhs: Value, - float_type: Type, - arena: Allocator, - pt: Zcu.PerThread, -) !Value { - const zcu = pt.zcu; - if (float_type.zigTypeTag(zcu) == .vector) { - const result_data = try arena.alloc(InternPool.Index, float_type.vectorLen(zcu)); - const scalar_ty = float_type.scalarType(zcu); - for (result_data, 0..) |*scalar, i| { - const lhs_elem = try lhs.elemValue(pt, i); - const rhs_elem = try rhs.elemValue(pt, i); - scalar.* = (try floatMulScalar(lhs_elem, rhs_elem, scalar_ty, pt)).toIntern(); - } - return Value.fromInterned(try pt.intern(.{ .aggregate = .{ - .ty = float_type.toIntern(), - .storage = .{ .elems = result_data }, - } })); - } - return floatMulScalar(lhs, rhs, float_type, pt); -} - -pub fn floatMulScalar( - lhs: Value, - rhs: Value, - float_type: Type, - pt: Zcu.PerThread, -) !Value { - const zcu = pt.zcu; - const target = zcu.getTarget(); - const storage: InternPool.Key.Float.Storage = switch (float_type.floatBits(target)) { - 16 => .{ .f16 = lhs.toFloat(f16, zcu) * rhs.toFloat(f16, zcu) }, - 32 => .{ .f32 = lhs.toFloat(f32, zcu) * rhs.toFloat(f32, zcu) }, - 64 => .{ .f64 = lhs.toFloat(f64, zcu) * rhs.toFloat(f64, zcu) }, - 80 => .{ .f80 = lhs.toFloat(f80, zcu) * rhs.toFloat(f80, zcu) }, - 128 => .{ .f128 = lhs.toFloat(f128, zcu) * rhs.toFloat(f128, zcu) }, - else => unreachable, - }; - return Value.fromInterned(try pt.intern(.{ .float = .{ - .ty = float_type.toIntern(), - .storage = storage, - } })); -} - pub fn sqrt(val: Value, float_type: Type, arena: Allocator, pt: Zcu.PerThread) !Value { if (float_type.zigTypeTag(pt.zcu) == .vector) { const result_data = try arena.alloc(InternPool.Index, float_type.vectorLen(pt.zcu)); @@ -4805,3 +4039,29 @@ pub fn doPointersOverlap(ptr_val_a: Value, ptr_val_b: Value, elem_count: u64, zc return bytes_diff < need_bytes_diff; } } + +/// `lhs` and `rhs` are both scalar numeric values (int or float). +/// Supports comparisons between heterogeneous types. +/// If `lhs` or `rhs` is undef, returns `false`. +pub fn eqlScalarNum(lhs: Value, rhs: Value, zcu: *Zcu) bool { + if (lhs.isUndef(zcu)) return false; + if (rhs.isUndef(zcu)) return false; + + if (lhs.isFloat(zcu) or rhs.isFloat(zcu)) { + const lhs_f128 = lhs.toFloat(f128, zcu); + const rhs_f128 = rhs.toFloat(f128, zcu); + return lhs_f128 == rhs_f128; + } + + if (lhs.getUnsignedInt(zcu)) |lhs_u64| { + if (rhs.getUnsignedInt(zcu)) |rhs_u64| { + return lhs_u64 == rhs_u64; + } + } + + var lhs_bigint_space: BigIntSpace = undefined; + var rhs_bigint_space: BigIntSpace = undefined; + const lhs_bigint = lhs.toBigInt(&lhs_bigint_space, zcu); + const rhs_bigint = rhs.toBigInt(&rhs_bigint_space, zcu); + return lhs_bigint.eql(rhs_bigint); +} diff --git a/src/Zcu.zig b/src/Zcu.zig index 28b7ba1b65..86963f9328 100644 --- a/src/Zcu.zig +++ b/src/Zcu.zig @@ -1716,9 +1716,25 @@ pub const SrcLoc = struct { const node = node_off.toAbsolute(src_loc.base_node); switch (tree.nodeTag(node)) { - .assign => { - return tree.nodeToSpan(tree.nodeData(node).node_and_node[0]); - }, + .assign, + .assign_mul, + .assign_div, + .assign_mod, + .assign_add, + .assign_sub, + .assign_shl, + .assign_shl_sat, + .assign_shr, + .assign_bit_and, + .assign_bit_xor, + .assign_bit_or, + .assign_mul_wrap, + .assign_add_wrap, + .assign_sub_wrap, + .assign_mul_sat, + .assign_add_sat, + .assign_sub_sat, + => return tree.nodeToSpan(tree.nodeData(node).node_and_node[0]), else => return tree.nodeToSpan(node), } }, @@ -1727,9 +1743,25 @@ pub const SrcLoc = struct { const node = node_off.toAbsolute(src_loc.base_node); switch (tree.nodeTag(node)) { - .assign => { - return tree.nodeToSpan(tree.nodeData(node).node_and_node[1]); - }, + .assign, + .assign_mul, + .assign_div, + .assign_mod, + .assign_add, + .assign_sub, + .assign_shl, + .assign_shl_sat, + .assign_shr, + .assign_bit_and, + .assign_bit_xor, + .assign_bit_or, + .assign_mul_wrap, + .assign_add_wrap, + .assign_sub_wrap, + .assign_mul_sat, + .assign_add_sat, + .assign_sub_sat, + => return tree.nodeToSpan(tree.nodeData(node).node_and_node[1]), else => return tree.nodeToSpan(node), } }, @@ -2209,9 +2241,9 @@ pub const LazySrcLoc = struct { node_offset_field_default: Ast.Node.Offset, /// The source location points to the type of an array or struct initializer. node_offset_init_ty: Ast.Node.Offset, - /// The source location points to the LHS of an assignment. + /// The source location points to the LHS of an assignment (or assign-op, e.g. `+=`). node_offset_store_ptr: Ast.Node.Offset, - /// The source location points to the RHS of an assignment. + /// The source location points to the RHS of an assignment (or assign-op, e.g. `+=`). node_offset_store_operand: Ast.Node.Offset, /// The source location points to the operand of a `return` statement, or /// the `return` itself if there is no explicit operand. diff --git a/test/behavior/floatop.zig b/test/behavior/floatop.zig index 4b11f61f19..1225e312e6 100644 --- a/test/behavior/floatop.zig +++ b/test/behavior/floatop.zig @@ -1696,10 +1696,6 @@ test "comptime fixed-width float non-zero divided by zero produces signed Inf" { } } -test "comptime_float zero divided by zero produces zero" { - try expect((0.0 / 0.0) == 0.0); -} - test "comptime float compared with runtime int" { const f = 10.0; var i: usize = 0; diff --git a/test/behavior/math.zig b/test/behavior/math.zig index 14063323ba..76c55c2549 100644 --- a/test/behavior/math.zig +++ b/test/behavior/math.zig @@ -1265,12 +1265,6 @@ test "allow signed integer division/remainder when values are comptime-known and try expect(5 % 3 == 2); try expect(-6 % 3 == 0); - - var undef: i32 = undefined; - _ = &undef; - if (0 % undef != 0) { - @compileError("0 as numerator should return comptime zero independent of denominator"); - } } test "quad hex float literal parsing accurate" { @@ -1861,3 +1855,134 @@ test "runtime int comparison to inf is comptime-known" { comptime S.doTheTest(f64, 123); comptime S.doTheTest(f128, 123); } + +test "float divide by zero" { + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest; + + const S = struct { + fn doTheTest(comptime F: type, zero: F, one: F) !void { + try expect(math.isPositiveInf(@divTrunc(one, zero))); + try expect(math.isPositiveInf(@divFloor(one, zero))); + + try expect(math.isNan(@rem(one, zero))); + try expect(math.isNan(@mod(one, zero))); + } + }; + + try S.doTheTest(f16, 0, 1); + comptime S.doTheTest(f16, 0, 1) catch unreachable; + + try S.doTheTest(f32, 0, 1); + comptime S.doTheTest(f32, 0, 1) catch unreachable; + + try S.doTheTest(f64, 0, 1); + comptime S.doTheTest(f64, 0, 1) catch unreachable; + + try S.doTheTest(f80, 0, 1); + comptime S.doTheTest(f80, 0, 1) catch unreachable; + + try S.doTheTest(f128, 0, 1); + comptime S.doTheTest(f128, 0, 1) catch unreachable; +} + +test "partially-runtime integer vector division would be illegal if vector elements were reordered" { + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; + + var lhs: @Vector(2, i8) = .{ -128, 5 }; + const rhs: @Vector(2, i8) = .{ 1, -1 }; + + const expected: @Vector(2, i8) = .{ -128, -5 }; + + lhs = lhs; // suppress error + + const trunc = @divTrunc(lhs, rhs); + try expect(trunc[0] == expected[0]); + try expect(trunc[1] == expected[1]); + + const floor = @divFloor(lhs, rhs); + try expect(floor[0] == expected[0]); + try expect(floor[1] == expected[1]); + + const exact = @divExact(lhs, rhs); + try expect(exact[0] == expected[0]); + try expect(exact[1] == expected[1]); +} + +test "float vector division of comptime zero by runtime nan is nan" { + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest; + + const ct_zero: @Vector(1, f32) = .{0}; + var rt_nan: @Vector(1, f32) = .{math.nan(f32)}; + + rt_nan = rt_nan; // suppress error + + try expect(math.isNan((@divTrunc(ct_zero, rt_nan))[0])); + try expect(math.isNan((@divFloor(ct_zero, rt_nan))[0])); + try expect(math.isNan((ct_zero / rt_nan)[0])); +} + +test "float vector multiplication of comptime zero by runtime nan is nan" { + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; + + const ct_zero: @Vector(1, f32) = .{0}; + var rt_nan: @Vector(1, f32) = .{math.nan(f32)}; + + rt_nan = rt_nan; // suppress error + + try expect(math.isNan((ct_zero * rt_nan)[0])); + try expect(math.isNan((rt_nan * ct_zero)[0])); +} + +test "comptime float vector division of zero by nan is nan" { + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; + + const ct_zero: @Vector(1, f32) = .{0}; + const ct_nan: @Vector(1, f32) = .{math.nan(f32)}; + + comptime assert(math.isNan((@divTrunc(ct_zero, ct_nan))[0])); + comptime assert(math.isNan((@divFloor(ct_zero, ct_nan))[0])); + comptime assert(math.isNan((ct_zero / ct_nan)[0])); +} + +test "comptime float vector multiplication of zero by nan is nan" { + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; + + const ct_zero: @Vector(1, f32) = .{0}; + const ct_nan: @Vector(1, f32) = .{math.nan(f32)}; + + comptime assert(math.isNan((ct_zero * ct_nan)[0])); + comptime assert(math.isNan((ct_nan * ct_zero)[0])); +} diff --git a/test/behavior/vector.zig b/test/behavior/vector.zig index d55d416608..df372be1ad 100644 --- a/test/behavior/vector.zig +++ b/test/behavior/vector.zig @@ -1316,6 +1316,8 @@ test "zero multiplicand" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO const zeros = @Vector(2, u32){ 0.0, 0.0 }; var ones = @Vector(2, u32){ 1.0, 1.0 }; diff --git a/test/behavior/x86_64/math.zig b/test/behavior/x86_64/math.zig index 99d11d5616..36b0717bf0 100644 --- a/test/behavior/x86_64/math.zig +++ b/test/behavior/x86_64/math.zig @@ -21685,20 +21685,7 @@ test mulUnsafe { } inline fn multiply(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs * rhs) { - if (@inComptime() and @typeInfo(Type) == .vector) { - // workaround https://github.com/ziglang/zig/issues/22743 - // TODO: return @select(Scalar(Type), boolAnd(lhs == lhs, rhs == rhs), lhs * rhs, lhs + rhs); - // workaround https://github.com/ziglang/zig/issues/22744 - var res: Type = undefined; - for (0..@typeInfo(Type).vector.len) |i| res[i] = lhs[i] * rhs[i]; - return res; - } - // workaround https://github.com/ziglang/zig/issues/22745 - // TODO: return lhs * rhs; - var rt_lhs = lhs; - var rt_rhs = rhs; - _ = .{ &rt_lhs, &rt_rhs }; - return rt_lhs * rt_rhs; + return lhs * rhs; } test multiply { const test_multiply = binary(multiply, .{}); @@ -21715,24 +21702,8 @@ test divide { try test_divide.testFloatVectors(); } -inline fn divTrunc(comptime Type: type, lhs: Type, rhs: Type) Type { - switch (@typeInfo(Scalar(Type))) { - else => @compileError(@typeName(Type)), - .int => return @divTrunc(lhs, rhs), - .float => { - if (@inComptime()) { - // workaround https://github.com/ziglang/zig/issues/22748 - return @trunc(lhs / rhs); - } - // workaround https://github.com/ziglang/zig/issues/22748 - // workaround https://github.com/ziglang/zig/issues/22749 - // TODO: return @divTrunc(lhs, rhs); - var rt_lhs = lhs; - var rt_rhs = rhs; - _ = .{ &rt_lhs, &rt_rhs }; - return @divTrunc(rt_lhs, rt_rhs); - }, - } +inline fn divTrunc(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@divTrunc(lhs, rhs)) { + return @divTrunc(lhs, rhs); } test divTrunc { const test_div_trunc = binary(divTrunc, .{ .compare = .approx_int }); @@ -21742,24 +21713,8 @@ test divTrunc { try test_div_trunc.testFloatVectors(); } -inline fn divFloor(comptime Type: type, lhs: Type, rhs: Type) Type { - switch (@typeInfo(Scalar(Type))) { - else => @compileError(@typeName(Type)), - .int => return @divFloor(lhs, rhs), - .float => { - if (@inComptime()) { - // workaround https://github.com/ziglang/zig/issues/22748 - return @floor(lhs / rhs); - } - // workaround https://github.com/ziglang/zig/issues/22748 - // workaround https://github.com/ziglang/zig/issues/22749 - // TODO: return @divFloor(lhs, rhs); - var rt_lhs = lhs; - var rt_rhs = rhs; - _ = .{ &rt_lhs, &rt_rhs }; - return @divFloor(rt_lhs, rt_rhs); - }, - } +inline fn divFloor(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@divFloor(lhs, rhs)) { + return @divFloor(lhs, rhs); } test divFloor { const test_div_floor = binary(divFloor, .{ .compare = .approx_int }); @@ -21767,31 +21722,8 @@ test divFloor { try test_div_floor.testFloatVectors(); } -// workaround https://github.com/ziglang/zig/issues/22748 -// TODO: @TypeOf(@rem(lhs, rhs)) -inline fn rem(comptime Type: type, lhs: Type, rhs: Type) Type { - switch (@typeInfo(Scalar(Type))) { - else => @compileError(@typeName(Type)), - .int => return @rem(lhs, rhs), - .float => { - if (@inComptime()) { - // workaround https://github.com/ziglang/zig/issues/22748 - switch (@typeInfo(Type)) { - else => return if (rhs != 0) @rem(lhs, rhs) else nan(Type), - .vector => |info| { - var res: Type = undefined; - inline for (0..info.len) |i| res[i] = if (rhs[i] != 0) @rem(lhs[i], rhs[i]) else nan(Scalar(Type)); - return res; - }, - } - } - // workaround https://github.com/ziglang/zig/issues/22748 - // TODO: return @rem(lhs, rhs); - var rt_rhs = rhs; - _ = &rt_rhs; - return @rem(lhs, rt_rhs); - }, - } +inline fn rem(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@rem(lhs, rhs)) { + return @rem(lhs, rhs); } test rem { const test_rem = binary(rem, .{}); @@ -21801,25 +21733,16 @@ test rem { try test_rem.testFloatVectors(); } -inline fn mod(comptime Type: type, lhs: Type, rhs: Type) Type { +inline fn mod(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@mod(lhs, rhs)) { + // workaround llvm backend bugs if (@inComptime()) { const scalarMod = struct { fn scalarMod(scalar_lhs: Scalar(Type), scalar_rhs: Scalar(Type)) Scalar(Type) { - // workaround https://github.com/ziglang/zig/issues/22748 - if (scalar_rhs == 0) return nan(Scalar(Type)); const scalar_rem = @rem(scalar_lhs, scalar_rhs); return if (scalar_rem == 0 or math.signbit(scalar_rem) == math.signbit(scalar_rhs)) scalar_rem else scalar_rem + scalar_rhs; } }.scalarMod; - // workaround https://github.com/ziglang/zig/issues/22748 switch (@typeInfo(Type)) { - // workaround llvm backend bugs - // TODO: else => return if (rhs != 0) @mod(lhs, rhs) else nan(Type), - // TODO: .vector => |info| { - // TODO: var res: Type = undefined; - // TODO: inline for (0..info.len) |i| res[i] = if (rhs[i] != 0) @mod(lhs[i], rhs[i]) else nan(Scalar(Type)); - // TODO: return res; - // TODO: }, else => return scalarMod(lhs, rhs), .vector => |info| { var res: Type = undefined; @@ -21828,11 +21751,7 @@ inline fn mod(comptime Type: type, lhs: Type, rhs: Type) Type { }, } } - // workaround https://github.com/ziglang/zig/issues/22748 - // TODO: return @mod(lhs, rhs); - var rt_rhs = rhs; - _ = &rt_rhs; - return @mod(lhs, rt_rhs); + return @mod(lhs, rhs); } test mod { const test_mod = binary(mod, .{}); diff --git a/test/cases/compile_errors/add_assign_on_undefined_value.zig b/test/cases/compile_errors/add_assign_on_undefined_value.zig index b2d183c006..998f4b07f0 100644 --- a/test/cases/compile_errors/add_assign_on_undefined_value.zig +++ b/test/cases/compile_errors/add_assign_on_undefined_value.zig @@ -4,7 +4,5 @@ comptime { } // error -// backend=stage2 -// target=native // -// :3:10: error: use of undefined value here causes undefined behavior +// :3:5: error: use of undefined value here causes undefined behavior diff --git a/test/cases/compile_errors/add_on_undefined_value.zig b/test/cases/compile_errors/add_on_undefined_value.zig deleted file mode 100644 index eb081a8510..0000000000 --- a/test/cases/compile_errors/add_on_undefined_value.zig +++ /dev/null @@ -1,24 +0,0 @@ -comptime { - const undef: i64 = undefined; - const not_undef: i64 = 32; - - // If either of the operands are zero, then the other operand is returned. - @compileLog(undef + 0); - @compileLog(not_undef + 0); - @compileLog(0 + undef); - @compileLog(0 + not_undef); - - _ = undef + undef; -} - -// error -// backend=stage2 -// target=native -// -// :11:17: error: use of undefined value here causes undefined behavior -// -// Compile Log Output: -// @as(i64, undefined) -// @as(i64, 32) -// @as(i64, undefined) -// @as(i64, 32) diff --git a/test/cases/compile_errors/assign_to_constant_destructure.zig b/test/cases/compile_errors/assign_to_constant_destructure.zig index 7a416d54cb..7f4d93cc0d 100644 --- a/test/cases/compile_errors/assign_to_constant_destructure.zig +++ b/test/cases/compile_errors/assign_to_constant_destructure.zig @@ -9,7 +9,5 @@ export fn a() void { } // error -// backend=stage2 -// target=native // -// :8:7: error: cannot assign to constant +// :8:5: error: cannot assign to constant diff --git a/test/cases/compile_errors/assign_to_constant_variable.zig b/test/cases/compile_errors/assign_to_constant_variable.zig index dca2caf9de..0082e365ea 100644 --- a/test/cases/compile_errors/assign_to_constant_variable.zig +++ b/test/cases/compile_errors/assign_to_constant_variable.zig @@ -72,24 +72,22 @@ export fn entry18() void { } // error -// backend=stage2 -// target=native // // :3:5: error: cannot assign to constant -// :7:7: error: cannot assign to constant -// :11:7: error: cannot assign to constant -// :15:7: error: cannot assign to constant -// :19:7: error: cannot assign to constant -// :23:7: error: cannot assign to constant -// :27:7: error: cannot assign to constant -// :31:7: error: cannot assign to constant -// :35:7: error: cannot assign to constant -// :39:7: error: cannot assign to constant -// :43:7: error: cannot assign to constant -// :47:7: error: cannot assign to constant -// :51:7: error: cannot assign to constant -// :55:7: error: cannot assign to constant -// :59:7: error: cannot assign to constant -// :63:7: error: cannot assign to constant -// :67:7: error: cannot assign to constant -// :71:7: error: cannot assign to constant +// :7:5: error: cannot assign to constant +// :11:5: error: cannot assign to constant +// :15:5: error: cannot assign to constant +// :19:5: error: cannot assign to constant +// :23:5: error: cannot assign to constant +// :27:5: error: cannot assign to constant +// :31:5: error: cannot assign to constant +// :35:5: error: cannot assign to constant +// :39:5: error: cannot assign to constant +// :43:5: error: cannot assign to constant +// :47:5: error: cannot assign to constant +// :51:5: error: cannot assign to constant +// :55:5: error: cannot assign to constant +// :59:5: error: cannot assign to constant +// :63:5: error: cannot assign to constant +// :67:5: error: cannot assign to constant +// :71:5: error: cannot assign to constant diff --git a/test/cases/compile_errors/comptime_vector_overflow_shows_the_index.zig b/test/cases/compile_errors/comptime_vector_overflow_shows_the_index.zig index ace946453e..faa96bcbb8 100644 --- a/test/cases/compile_errors/comptime_vector_overflow_shows_the_index.zig +++ b/test/cases/compile_errors/comptime_vector_overflow_shows_the_index.zig @@ -6,8 +6,6 @@ comptime { } // error -// backend=stage2 -// target=native // -// :4:15: error: overflow of vector type '@Vector(4, u8)' with value '.{ 6, 8, 256, 12 }' +// :4:15: error: overflow of integer type 'u8' with value '256' // :4:15: note: when computing vector element at index '2' diff --git a/test/cases/compile_errors/div_assign_on_undefined_value.zig b/test/cases/compile_errors/div_assign_on_undefined_value.zig index d0e4024459..6d5f6f7706 100644 --- a/test/cases/compile_errors/div_assign_on_undefined_value.zig +++ b/test/cases/compile_errors/div_assign_on_undefined_value.zig @@ -4,7 +4,5 @@ comptime { } // error -// backend=stage2 -// target=native // -// :3:10: error: use of undefined value here causes undefined behavior +// :3:5: error: use of undefined value here causes undefined behavior diff --git a/test/cases/compile_errors/div_on_undefined_value.zig b/test/cases/compile_errors/div_on_undefined_value.zig deleted file mode 100644 index bc2cfa158d..0000000000 --- a/test/cases/compile_errors/div_on_undefined_value.zig +++ /dev/null @@ -1,11 +0,0 @@ -comptime { - var a: i64 = undefined; - _ = a / a; - _ = &a; -} - -// error -// backend=stage2 -// target=native -// -// :3:13: error: use of undefined value here causes undefined behavior diff --git a/test/cases/compile_errors/mult_assign_on_undefined_value.zig b/test/cases/compile_errors/mult_assign_on_undefined_value.zig index 5cbc074e25..5b7a50c6bb 100644 --- a/test/cases/compile_errors/mult_assign_on_undefined_value.zig +++ b/test/cases/compile_errors/mult_assign_on_undefined_value.zig @@ -4,7 +4,5 @@ comptime { } // error -// backend=stage2 -// target=native // -// :3:10: error: use of undefined value here causes undefined behavior +// :3:5: error: use of undefined value here causes undefined behavior diff --git a/test/cases/compile_errors/mult_on_undefined_value.zig b/test/cases/compile_errors/mult_on_undefined_value.zig deleted file mode 100644 index 3516253d5c..0000000000 --- a/test/cases/compile_errors/mult_on_undefined_value.zig +++ /dev/null @@ -1,38 +0,0 @@ -comptime { - const undef: i64 = undefined; - const not_undef: i64 = 32; - - // If either of the operands are zero, the result is zero. - @compileLog(undef * 0); - @compileLog(not_undef * 0); - @compileLog(0 * undef); - @compileLog(0 * not_undef); - - // If either of the operands are one, the result is the other - // operand, even if it is undefined. - @compileLog(undef * 1); - @compileLog(not_undef * 1); - @compileLog(1 * undef); - @compileLog(1 * not_undef); - - // If either of the operands are undefined, it's a compile error - // because there is a possible value for which the addition would - // overflow (max_int), causing illegal behavior. - _ = undef * undef; -} - -// error -// backend=stage2 -// target=native -// -// :21:17: error: use of undefined value here causes undefined behavior -// -// Compile Log Output: -// @as(i64, 0) -// @as(i64, 0) -// @as(i64, 0) -// @as(i64, 0) -// @as(i64, undefined) -// @as(i64, 32) -// @as(i64, undefined) -// @as(i64, 32) diff --git a/test/cases/compile_errors/mult_sat_on_undefined_value.zig b/test/cases/compile_errors/mult_sat_on_undefined_value.zig deleted file mode 100644 index 987161c8ed..0000000000 --- a/test/cases/compile_errors/mult_sat_on_undefined_value.zig +++ /dev/null @@ -1,38 +0,0 @@ -comptime { - const undef: i64 = undefined; - const not_undef: i64 = 32; - - // If either of the operands are zero, the result is zero. - @compileLog(undef *| 0); - @compileLog(not_undef *| 0); - @compileLog(0 *| undef); - @compileLog(0 *| not_undef); - - // If either of the operands are one, result is the other operand. - @compileLog(undef *| 1); - @compileLog(not_undef *| 1); - @compileLog(1 *| undef); - @compileLog(1 *| not_undef); - - // If either of the operands are undefined, result is undefined. - @compileLog(undef *| 2); - @compileLog(2 *| undef); -} - -// error -// backend=stage2 -// target=native -// -// :6:5: error: found compile log statement -// -// Compile Log Output: -// @as(i64, 0) -// @as(i64, 0) -// @as(i64, 0) -// @as(i64, 0) -// @as(i64, undefined) -// @as(i64, 32) -// @as(i64, undefined) -// @as(i64, 32) -// @as(i64, undefined) -// @as(i64, undefined) diff --git a/test/cases/compile_errors/mult_wrap_on_undefined_value.zig b/test/cases/compile_errors/mult_wrap_on_undefined_value.zig deleted file mode 100644 index 2ecb6753f6..0000000000 --- a/test/cases/compile_errors/mult_wrap_on_undefined_value.zig +++ /dev/null @@ -1,38 +0,0 @@ -comptime { - const undef: i64 = undefined; - const not_undef: i64 = 32; - - // If either of the operands are zero, the result is zero. - @compileLog(undef *% 0); - @compileLog(not_undef *% 0); - @compileLog(0 *% undef); - @compileLog(0 *% not_undef); - - // If either of the operands are one, result is the other operand. - @compileLog(undef *% 1); - @compileLog(not_undef *% 1); - @compileLog(1 *% undef); - @compileLog(1 *% not_undef); - - // If either of the operands are undefined, result is undefined. - @compileLog(undef *% 2); - @compileLog(2 *% undef); -} - -// error -// backend=stage2 -// target=native -// -// :6:5: error: found compile log statement -// -// Compile Log Output: -// @as(i64, 0) -// @as(i64, 0) -// @as(i64, 0) -// @as(i64, 0) -// @as(i64, undefined) -// @as(i64, 32) -// @as(i64, undefined) -// @as(i64, 32) -// @as(i64, undefined) -// @as(i64, undefined) diff --git a/test/cases/compile_errors/non-pure_function_returns_type.zig b/test/cases/compile_errors/non-pure_function_returns_type.zig index 3b83c73b6c..caa05a39fb 100644 --- a/test/cases/compile_errors/non-pure_function_returns_type.zig +++ b/test/cases/compile_errors/non-pure_function_returns_type.zig @@ -18,8 +18,6 @@ export fn function_with_return_type_type() void { } // error -// backend=stage2 -// target=native // // :3:7: error: unable to evaluate comptime expression // :3:5: note: operation is runtime due to this operand diff --git a/test/cases/compile_errors/signed_integer_remainder_division.zig b/test/cases/compile_errors/signed_integer_remainder_division.zig index 5bc5d34d7e..09520064a5 100644 --- a/test/cases/compile_errors/signed_integer_remainder_division.zig +++ b/test/cases/compile_errors/signed_integer_remainder_division.zig @@ -3,7 +3,5 @@ export fn foo(a: i32, b: i32) i32 { } // error -// backend=stage2 -// target=native // // :2:12: error: remainder division with 'i32' and 'i32': signed integers and floats must use @rem or @mod diff --git a/test/cases/compile_errors/specify_enum_tag_type_that_is_too_small.zig b/test/cases/compile_errors/specify_enum_tag_type_that_is_too_small.zig index 9502032a93..f00c363aae 100644 --- a/test/cases/compile_errors/specify_enum_tag_type_that_is_too_small.zig +++ b/test/cases/compile_errors/specify_enum_tag_type_that_is_too_small.zig @@ -6,12 +6,21 @@ const Small = enum(u2) { Five, }; -export fn entry() void { - _ = Small.One; +const SmallUnion = union(enum(u2)) { + one = 1, + two, + three, + four, +}; + +comptime { + _ = Small; +} +comptime { + _ = SmallUnion; } // error -// backend=stage2 -// target=native // // :6:5: error: enumeration value '4' too large for type 'u2' +// :13:5: error: enumeration value '4' too large for type 'u2' diff --git a/test/cases/compile_errors/sub_assign_on_undefined_value.zig b/test/cases/compile_errors/sub_assign_on_undefined_value.zig index 0a241106ac..35b8a5a2b9 100644 --- a/test/cases/compile_errors/sub_assign_on_undefined_value.zig +++ b/test/cases/compile_errors/sub_assign_on_undefined_value.zig @@ -4,7 +4,5 @@ comptime { } // error -// backend=stage2 -// target=native // -// :3:10: error: use of undefined value here causes undefined behavior +// :3:5: error: use of undefined value here causes undefined behavior diff --git a/test/cases/compile_errors/sub_on_undefined_value.zig b/test/cases/compile_errors/sub_on_undefined_value.zig deleted file mode 100644 index 5d2510f263..0000000000 --- a/test/cases/compile_errors/sub_on_undefined_value.zig +++ /dev/null @@ -1,20 +0,0 @@ -comptime { - const undef: i64 = undefined; - const not_undef: i64 = 32; - - // If the rhs is zero, then the other operand is returned, even if it is undefined. - @compileLog(undef - 0); - @compileLog(not_undef - 0); - - _ = undef - undef; -} - -// error -// backend=stage2 -// target=native -// -// :9:17: error: use of undefined value here causes undefined behavior -// -// Compile Log Output: -// @as(i64, undefined) -// @as(i64, 32) diff --git a/test/cases/compile_errors/unable_to_evaluate_expr_inside_cimport.zig b/test/cases/compile_errors/unable_to_evaluate_expr_inside_cimport.zig index 5f803f1402..d03d59eb35 100644 --- a/test/cases/compile_errors/unable_to_evaluate_expr_inside_cimport.zig +++ b/test/cases/compile_errors/unable_to_evaluate_expr_inside_cimport.zig @@ -1,5 +1,5 @@ const c = @cImport({ - _ = 1 + foo; + if (foo == 0) {} }); extern var foo: i32; export fn entry() void { @@ -7,9 +7,7 @@ export fn entry() void { } // error -// backend=stage2 -// target=native // -// :2:11: error: unable to evaluate comptime expression -// :2:13: note: operation is runtime due to this operand +// :2:13: error: unable to evaluate comptime expression +// :2:9: note: operation is runtime due to this operand // :1:11: note: operand to '@cImport' is evaluated at comptime diff --git a/test/cases/compile_errors/undef_arith_is_illegal.zig b/test/cases/compile_errors/undef_arith_is_illegal.zig new file mode 100644 index 0000000000..9fbcc78298 --- /dev/null +++ b/test/cases/compile_errors/undef_arith_is_illegal.zig @@ -0,0 +1,6885 @@ +//! For arithmetic operations which can trigger Illegal Behavior, this test evaluates those +//! operations with undefined operands (or partially-undefined vector operands), and ensures that a +//! compile error is emitted as expected. + +comptime { + // Total expected errors: + // 29*22*6 + 26*22*5 = 6688 + + testType(u8); + testType(i8); + testType(u32); + testType(i32); + testType(u500); + testType(i500); + + testType(f16); + testType(f32); + testType(f64); + testType(f80); + testType(f128); +} + +fn testType(comptime Scalar: type) void { + testInner(Scalar, undefined, 1); + testInner(Scalar, undefined, undefined); + testInner(@Vector(2, Scalar), undefined, undefined); + testInner(@Vector(2, Scalar), undefined, .{ 1, 2 }); + testInner(@Vector(2, Scalar), undefined, .{ 1, undefined }); + testInner(@Vector(2, Scalar), undefined, .{ undefined, 2 }); + testInner(@Vector(2, Scalar), undefined, .{ undefined, undefined }); + testInner(@Vector(2, Scalar), .{ 1, undefined }, undefined); + testInner(@Vector(2, Scalar), .{ 1, undefined }, .{ 1, 2 }); + testInner(@Vector(2, Scalar), .{ 1, undefined }, .{ 1, undefined }); + testInner(@Vector(2, Scalar), .{ 1, undefined }, .{ undefined, 2 }); + testInner(@Vector(2, Scalar), .{ 1, undefined }, .{ undefined, undefined }); + testInner(@Vector(2, Scalar), .{ undefined, 2 }, undefined); + testInner(@Vector(2, Scalar), .{ undefined, 2 }, .{ 1, 2 }); + testInner(@Vector(2, Scalar), .{ undefined, 2 }, .{ 1, undefined }); + testInner(@Vector(2, Scalar), .{ undefined, 2 }, .{ undefined, 2 }); + testInner(@Vector(2, Scalar), .{ undefined, 2 }, .{ undefined, undefined }); + testInner(@Vector(2, Scalar), .{ undefined, undefined }, undefined); + testInner(@Vector(2, Scalar), .{ undefined, undefined }, .{ 1, 2 }); + testInner(@Vector(2, Scalar), .{ undefined, undefined }, .{ 1, undefined }); + testInner(@Vector(2, Scalar), .{ undefined, undefined }, .{ undefined, 2 }); + testInner(@Vector(2, Scalar), .{ undefined, undefined }, .{ undefined, undefined }); +} + +/// At the time of writing, this is expected to trigger: +/// * 26 errors if `T` is a float (or vector of floats) +/// * 29 errors if `T` is an int (or vector of ints) +fn testInner(comptime T: type, comptime u: T, comptime maybe_defined: T) void { + const Scalar = switch (@typeInfo(T)) { + .float, .int => T, + .vector => |v| v.child, + else => unreachable, + }; + + const mode: std.builtin.FloatMode = switch (@typeInfo(Scalar)) { + .float => .optimized, + .int => .strict, // it shouldn't matter + else => unreachable, + }; + + _ = struct { + const a: T = maybe_defined; + var b: T = maybe_defined; + + // undef LHS, comptime-known LHS + comptime { + @setFloatMode(mode); + _ = u / a; + } + comptime { + @setFloatMode(mode); + _ = @divFloor(u, a); + } + comptime { + @setFloatMode(mode); + _ = @divTrunc(u, a); + } + comptime { + // Don't need to set float mode, because this can be IB anyway + _ = @divExact(u, a); + } + comptime { + @setFloatMode(mode); + _ = u % a; + } + comptime { + @setFloatMode(mode); + _ = @mod(u, a); + } + comptime { + @setFloatMode(mode); + _ = @rem(u, a); + } + + // undef LHS, runtime-known LHS + comptime { + @setFloatMode(mode); + _ = u / b; + } + comptime { + @setFloatMode(mode); + _ = @divFloor(u, b); + } + comptime { + @setFloatMode(mode); + _ = @divTrunc(u, b); + } + comptime { + // Don't need to set float mode, because this can be IB anyway + _ = @divExact(u, b); + } + comptime { + @setFloatMode(mode); + _ = @mod(u, b); + } + comptime { + @setFloatMode(mode); + _ = @rem(u, b); + } + + // undef RHS, comptime-known LHS + comptime { + @setFloatMode(mode); + _ = a / u; + } + comptime { + @setFloatMode(mode); + _ = @divFloor(a, u); + } + comptime { + @setFloatMode(mode); + _ = @divTrunc(a, u); + } + comptime { + // Don't need to set float mode, because this can be IB anyway + _ = @divExact(a, u); + } + comptime { + @setFloatMode(mode); + _ = a % u; + } + comptime { + @setFloatMode(mode); + _ = @mod(a, u); + } + comptime { + @setFloatMode(mode); + _ = @rem(a, u); + } + + // undef RHS, runtime-known LHS + comptime { + @setFloatMode(mode); + _ = b / u; + } + comptime { + @setFloatMode(mode); + _ = @divFloor(b, u); + } + comptime { + @setFloatMode(mode); + _ = @divTrunc(b, u); + } + comptime { + // Don't need to set float mode, because this can be IB anyway + _ = @divExact(b, u); + } + comptime { + @setFloatMode(mode); + _ = @mod(b, u); + } + comptime { + @setFloatMode(mode); + _ = @rem(b, u); + } + + // The following tests should only fail for integer types. + + comptime { + _ = u + a; + } + comptime { + _ = u - a; + } + comptime { + _ = u * a; + } + }; +} + +const std = @import("std"); + +// error +// +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:17: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :71:21: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:27: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :75:30: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:27: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :79:30: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:27: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :83:30: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:17: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :87:21: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:22: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :91:25: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:22: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :95:25: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :101:17: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :105:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :109:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :113:27: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :117:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :121:22: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:17: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :127:21: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:27: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :131:30: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:27: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :135:30: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:27: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :139:30: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:17: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :143:21: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:22: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :147:25: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:22: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :151:25: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :157:21: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :161:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :165:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :169:30: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :173:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :177:25: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:17: error: use of undefined value here causes undefined behavior +// :183:21: error: use of undefined value here causes undefined behavior +// :183:21: error: use of undefined value here causes undefined behavior +// :183:21: error: use of undefined value here causes undefined behavior +// :183:21: error: use of undefined value here causes undefined behavior +// :183:21: error: use of undefined value here causes undefined behavior +// :183:21: error: use of undefined value here causes undefined behavior +// :183:21: error: use of undefined value here causes undefined behavior +// :183:21: error: use of undefined value here causes undefined behavior +// :183:21: error: use of undefined value here causes undefined behavior +// :183:21: error: use of undefined value here causes undefined behavior +// :183:21: error: use of undefined value here causes undefined behavior +// :183:21: error: use of undefined value here causes undefined behavior +// :183:21: error: use of undefined value here causes undefined behavior +// :183:21: error: use of undefined value here causes undefined behavior +// :183:21: error: use of undefined value here causes undefined behavior +// :183:21: error: use of undefined value here causes undefined behavior +// :183:21: error: use of undefined value here causes undefined behavior +// :183:21: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:17: error: use of undefined value here causes undefined behavior +// :186:21: error: use of undefined value here causes undefined behavior +// :186:21: error: use of undefined value here causes undefined behavior +// :186:21: error: use of undefined value here causes undefined behavior +// :186:21: error: use of undefined value here causes undefined behavior +// :186:21: error: use of undefined value here causes undefined behavior +// :186:21: error: use of undefined value here causes undefined behavior +// :186:21: error: use of undefined value here causes undefined behavior +// :186:21: error: use of undefined value here causes undefined behavior +// :186:21: error: use of undefined value here causes undefined behavior +// :186:21: error: use of undefined value here causes undefined behavior +// :186:21: error: use of undefined value here causes undefined behavior +// :186:21: error: use of undefined value here causes undefined behavior +// :186:21: error: use of undefined value here causes undefined behavior +// :186:21: error: use of undefined value here causes undefined behavior +// :186:21: error: use of undefined value here causes undefined behavior +// :186:21: error: use of undefined value here causes undefined behavior +// :186:21: error: use of undefined value here causes undefined behavior +// :186:21: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:17: error: use of undefined value here causes undefined behavior +// :189:21: error: use of undefined value here causes undefined behavior +// :189:21: error: use of undefined value here causes undefined behavior +// :189:21: error: use of undefined value here causes undefined behavior +// :189:21: error: use of undefined value here causes undefined behavior +// :189:21: error: use of undefined value here causes undefined behavior +// :189:21: error: use of undefined value here causes undefined behavior +// :189:21: error: use of undefined value here causes undefined behavior +// :189:21: error: use of undefined value here causes undefined behavior +// :189:21: error: use of undefined value here causes undefined behavior +// :189:21: error: use of undefined value here causes undefined behavior +// :189:21: error: use of undefined value here causes undefined behavior +// :189:21: error: use of undefined value here causes undefined behavior +// :189:21: error: use of undefined value here causes undefined behavior +// :189:21: error: use of undefined value here causes undefined behavior +// :189:21: error: use of undefined value here causes undefined behavior +// :189:21: error: use of undefined value here causes undefined behavior +// :189:21: error: use of undefined value here causes undefined behavior +// :189:21: error: use of undefined value here causes undefined behavior diff --git a/test/cases/compile_errors/undef_arith_returns_undef.zig b/test/cases/compile_errors/undef_arith_returns_undef.zig new file mode 100644 index 0000000000..502d6611b3 --- /dev/null +++ b/test/cases/compile_errors/undef_arith_returns_undef.zig @@ -0,0 +1,2047 @@ +//! For arithmetic operations which cannot trigger Illegal Behavior, this test evaluates those +//! operations with undefined operands (or partially-undefined vector operands), and then uses +//! `@compileLog` to validate the results are as expected in terms of comptime-known undefined. + +export fn entry() void { + testInt(u8); + testInt(i8); + testInt(u32); + testInt(i32); + testInt(u500); + testInt(i500); + + testFloat(f16); + testFloat(f32); + testFloat(f64); + testFloat(f80); + testFloat(f128); +} + +fn testInt(comptime Int: type) void { + testIntWithValue(Int, 3); // all comptime-known + testIntWithValue(Int, struct { + var rt: Int = 0; + }.rt); // partially runtime-known +} + +fn testFloat(comptime Float: type) void { + testFloatWithValue(Float, 3.0); // all comptime-known + testFloatWithValue(Float, struct { + var rt: Float = 0.0; + }.rt); // partially runtime-known +} + +inline fn testIntWithValue(comptime Int: type, x: Int) void { + const V = @Vector(2, Int); + const u: Int = undefined; + + // Wrapping addition + + @compileLog(x +% u); // undef + @compileLog(u +% x); // undef + + @compileLog(V{ x, u } +% V{ x, x }); // { 6, undef } + @compileLog(V{ u, x } +% V{ x, x }); // { undef, 6 } + @compileLog(V{ u, u } +% V{ x, x }); // { undef, undef } + + @compileLog(V{ x, x } +% V{ x, u }); // { 6, undef } + @compileLog(V{ x, u } +% V{ x, u }); // { 6, undef } + @compileLog(V{ u, x } +% V{ x, u }); // { undef, undef } + @compileLog(V{ u, u } +% V{ x, u }); // { undef, undef } + + @compileLog(V{ x, x } +% V{ u, x }); // { undef, 6 } + @compileLog(V{ x, u } +% V{ u, x }); // { undef, undef } + @compileLog(V{ u, x } +% V{ u, x }); // { undef, 6 } + @compileLog(V{ u, u } +% V{ u, x }); // { undef, undef } + + @compileLog(V{ x, x } +% V{ u, u }); // { undef, undef } + @compileLog(V{ x, u } +% V{ u, u }); // { undef, undef } + @compileLog(V{ u, x } +% V{ u, u }); // { undef, undef } + @compileLog(V{ u, u } +% V{ u, u }); // { undef, undef } + + // Saturating addition + + @compileLog(x +| u); // undef + @compileLog(u +| x); // undef + + @compileLog(V{ x, u } +| V{ x, x }); // { 6, undef } + @compileLog(V{ u, x } +| V{ x, x }); // { undef, 6 } + @compileLog(V{ u, u } +| V{ x, x }); // { undef, undef } + + @compileLog(V{ x, x } +| V{ x, u }); // { 6, undef } + @compileLog(V{ x, u } +| V{ x, u }); // { 6, undef } + @compileLog(V{ u, x } +| V{ x, u }); // { undef, undef } + @compileLog(V{ u, u } +| V{ x, u }); // { undef, undef } + + @compileLog(V{ x, x } +| V{ u, x }); // { undef, 6 } + @compileLog(V{ x, u } +| V{ u, x }); // { undef, undef } + @compileLog(V{ u, x } +| V{ u, x }); // { undef, 6 } + @compileLog(V{ u, u } +| V{ u, x }); // { undef, undef } + + @compileLog(V{ x, x } +| V{ u, u }); // { undef, undef } + @compileLog(V{ x, u } +| V{ u, u }); // { undef, undef } + @compileLog(V{ u, x } +| V{ u, u }); // { undef, undef } + @compileLog(V{ u, u } +| V{ u, u }); // { undef, undef } + + // Wrapping subtraction + + @compileLog(x -% u); // undef + @compileLog(u -% x); // undef + + @compileLog(V{ x, u } -% V{ x, x }); // { 0, undef } + @compileLog(V{ u, x } -% V{ x, x }); // { undef, 0 } + @compileLog(V{ u, u } -% V{ x, x }); // { undef, undef } + + @compileLog(V{ x, x } -% V{ x, u }); // { 0, undef } + @compileLog(V{ x, u } -% V{ x, u }); // { 0, undef } + @compileLog(V{ u, x } -% V{ x, u }); // { undef, undef } + @compileLog(V{ u, u } -% V{ x, u }); // { undef, undef } + + @compileLog(V{ x, x } -% V{ u, x }); // { undef, 0 } + @compileLog(V{ x, u } -% V{ u, x }); // { undef, undef } + @compileLog(V{ u, x } -% V{ u, x }); // { undef, 0 } + @compileLog(V{ u, u } -% V{ u, x }); // { undef, undef } + + @compileLog(V{ x, x } -% V{ u, u }); // { undef, undef } + @compileLog(V{ x, u } -% V{ u, u }); // { undef, undef } + @compileLog(V{ u, x } -% V{ u, u }); // { undef, undef } + @compileLog(V{ u, u } -% V{ u, u }); // { undef, undef } + + // Saturating subtraction + + @compileLog(x -| u); // undef + @compileLog(u -| x); // undef + + @compileLog(V{ x, u } -| V{ x, x }); // { 0, undef } + @compileLog(V{ u, x } -| V{ x, x }); // { undef, 0 } + @compileLog(V{ u, u } -| V{ x, x }); // { undef, undef } + + @compileLog(V{ x, x } -| V{ x, u }); // { 0, undef } + @compileLog(V{ x, u } -| V{ x, u }); // { 0, undef } + @compileLog(V{ u, x } -| V{ x, u }); // { undef, undef } + @compileLog(V{ u, u } -| V{ x, u }); // { undef, undef } + + @compileLog(V{ x, x } -| V{ u, x }); // { undef, 0 } + @compileLog(V{ x, u } -| V{ u, x }); // { undef, undef } + @compileLog(V{ u, x } -| V{ u, x }); // { undef, 0 } + @compileLog(V{ u, u } -| V{ u, x }); // { undef, undef } + + @compileLog(V{ x, x } -| V{ u, u }); // { undef, undef } + @compileLog(V{ x, u } -| V{ u, u }); // { undef, undef } + @compileLog(V{ u, x } -| V{ u, u }); // { undef, undef } + @compileLog(V{ u, u } -| V{ u, u }); // { undef, undef } + + // Wrapping multiplication + + @compileLog(x *% u); // undef + @compileLog(u *% x); // undef + + @compileLog(V{ x, u } *% V{ x, x }); // { 9, undef } + @compileLog(V{ u, x } *% V{ x, x }); // { undef, 9 } + @compileLog(V{ u, u } *% V{ x, x }); // { undef, undef } + + @compileLog(V{ x, x } *% V{ x, u }); // { 9, undef } + @compileLog(V{ x, u } *% V{ x, u }); // { 9, undef } + @compileLog(V{ u, x } *% V{ x, u }); // { undef, undef } + @compileLog(V{ u, u } *% V{ x, u }); // { undef, undef } + + @compileLog(V{ x, x } *% V{ u, x }); // { undef, 9 } + @compileLog(V{ x, u } *% V{ u, x }); // { undef, undef } + @compileLog(V{ u, x } *% V{ u, x }); // { undef, 9 } + @compileLog(V{ u, u } *% V{ u, x }); // { undef, undef } + + @compileLog(V{ x, x } *% V{ u, u }); // { undef, undef } + @compileLog(V{ x, u } *% V{ u, u }); // { undef, undef } + @compileLog(V{ u, x } *% V{ u, u }); // { undef, undef } + @compileLog(V{ u, u } *% V{ u, u }); // { undef, undef } + + // Saturating multiplication + + @compileLog(x *| u); // undef + @compileLog(u *| x); // undef + + @compileLog(V{ x, u } *| V{ x, x }); // { 9, undef } + @compileLog(V{ u, x } *| V{ x, x }); // { undef, 9 } + @compileLog(V{ u, u } *| V{ x, x }); // { undef, undef } + + @compileLog(V{ x, x } *| V{ x, u }); // { 9, undef } + @compileLog(V{ x, u } *| V{ x, u }); // { 9, undef } + @compileLog(V{ u, x } *| V{ x, u }); // { undef, undef } + @compileLog(V{ u, u } *| V{ x, u }); // { undef, undef } + + @compileLog(V{ x, x } *| V{ u, x }); // { undef, 9 } + @compileLog(V{ x, u } *| V{ u, x }); // { undef, undef } + @compileLog(V{ u, x } *| V{ u, x }); // { undef, 9 } + @compileLog(V{ u, u } *| V{ u, x }); // { undef, undef } + + @compileLog(V{ x, x } *| V{ u, u }); // { undef, undef } + @compileLog(V{ x, u } *| V{ u, u }); // { undef, undef } + @compileLog(V{ u, x } *| V{ u, u }); // { undef, undef } + @compileLog(V{ u, u } *| V{ u, u }); // { undef, undef } +} + +inline fn testFloatWithValue(comptime Float: type, x: Float) void { + const V = @Vector(2, Float); + const u: Float = undefined; + + // Addition + + @compileLog(x + u); // undef + @compileLog(u + x); // undef + + @compileLog(V{ x, u } + V{ x, x }); // { 6, undef } + @compileLog(V{ u, x } + V{ x, x }); // { undef, 6 } + @compileLog(V{ u, u } + V{ x, x }); // { undef, undef } + + @compileLog(V{ x, x } + V{ x, u }); // { 6, undef } + @compileLog(V{ x, u } + V{ x, u }); // { 6, undef } + @compileLog(V{ u, x } + V{ x, u }); // { undef, undef } + @compileLog(V{ u, u } + V{ x, u }); // { undef, undef } + + @compileLog(V{ x, x } + V{ u, x }); // { undef, 6 } + @compileLog(V{ x, u } + V{ u, x }); // { undef, undef } + @compileLog(V{ u, x } + V{ u, x }); // { undef, 6 } + @compileLog(V{ u, u } + V{ u, x }); // { undef, undef } + + @compileLog(V{ x, x } + V{ u, u }); // { undef, undef } + @compileLog(V{ x, u } + V{ u, u }); // { undef, undef } + @compileLog(V{ u, x } + V{ u, u }); // { undef, undef } + @compileLog(V{ u, u } + V{ u, u }); // { undef, undef } + + // Subtraction + + @compileLog(x - u); // undef + @compileLog(u - x); // undef + + @compileLog(V{ x, u } - V{ x, x }); // { 0, undef } + @compileLog(V{ u, x } - V{ x, x }); // { undef, 0 } + @compileLog(V{ u, u } - V{ x, x }); // { undef, undef } + + @compileLog(V{ x, x } - V{ x, u }); // { 0, undef } + @compileLog(V{ x, u } - V{ x, u }); // { 0, undef } + @compileLog(V{ u, x } - V{ x, u }); // { undef, undef } + @compileLog(V{ u, u } - V{ x, u }); // { undef, undef } + + @compileLog(V{ x, x } - V{ u, x }); // { undef, 0 } + @compileLog(V{ x, u } - V{ u, x }); // { undef, undef } + @compileLog(V{ u, x } - V{ u, x }); // { undef, 0 } + @compileLog(V{ u, u } - V{ u, x }); // { undef, undef } + + @compileLog(V{ x, x } - V{ u, u }); // { undef, undef } + @compileLog(V{ x, u } - V{ u, u }); // { undef, undef } + @compileLog(V{ u, x } - V{ u, u }); // { undef, undef } + @compileLog(V{ u, u } - V{ u, u }); // { undef, undef } + + // Multiplication + + @compileLog(x * u); // undef + @compileLog(u * x); // undef + + @compileLog(V{ x, u } * V{ x, x }); // { 9, undef } + @compileLog(V{ u, x } * V{ x, x }); // { undef, 9 } + @compileLog(V{ u, u } * V{ x, x }); // { undef, undef } + + @compileLog(V{ x, x } * V{ x, u }); // { 9, undef } + @compileLog(V{ x, u } * V{ x, u }); // { 9, undef } + @compileLog(V{ u, x } * V{ x, u }); // { undef, undef } + @compileLog(V{ u, u } * V{ x, u }); // { undef, undef } + + @compileLog(V{ x, x } * V{ u, x }); // { undef, 9 } + @compileLog(V{ x, u } * V{ u, x }); // { undef, undef } + @compileLog(V{ u, x } * V{ u, x }); // { undef, 9 } + @compileLog(V{ u, u } * V{ u, x }); // { undef, undef } + + @compileLog(V{ x, x } * V{ u, u }); // { undef, undef } + @compileLog(V{ x, u } * V{ u, u }); // { undef, undef } + @compileLog(V{ u, x } * V{ u, u }); // { undef, undef } + @compileLog(V{ u, u } * V{ u, u }); // { undef, undef } + + // Negation + + @compileLog(-u); // undef + @compileLog(-V{ x, u }); // { -3, undef } + @compileLog(-V{ u, x }); // { undef, -3 } + @compileLog(-V{ u, u }); // { undef, undef } +} + +// error +// +// :40:5: error: found compile log statement +// :40:5: note: also here (5 times) +// :189:5: note: also here (5 times) +// +// Compile Log Output: +// @as(u8, undefined) +// @as(u8, undefined) +// @as(@Vector(2, u8), .{ 6, undefined }) +// @as(@Vector(2, u8), .{ undefined, 6 }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ 6, undefined }) +// @as(@Vector(2, u8), .{ 6, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, 6 }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, 6 }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(u8, undefined) +// @as(u8, undefined) +// @as(@Vector(2, u8), .{ 6, undefined }) +// @as(@Vector(2, u8), .{ undefined, 6 }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ 6, undefined }) +// @as(@Vector(2, u8), .{ 6, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, 6 }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, 6 }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(u8, undefined) +// @as(u8, undefined) +// @as(@Vector(2, u8), .{ 0, undefined }) +// @as(@Vector(2, u8), .{ undefined, 0 }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ 0, undefined }) +// @as(@Vector(2, u8), .{ 0, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, 0 }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, 0 }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(u8, undefined) +// @as(u8, undefined) +// @as(@Vector(2, u8), .{ 0, undefined }) +// @as(@Vector(2, u8), .{ undefined, 0 }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ 0, undefined }) +// @as(@Vector(2, u8), .{ 0, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, 0 }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, 0 }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(u8, undefined) +// @as(u8, undefined) +// @as(@Vector(2, u8), .{ 9, undefined }) +// @as(@Vector(2, u8), .{ undefined, 9 }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ 9, undefined }) +// @as(@Vector(2, u8), .{ 9, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, 9 }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, 9 }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(u8, undefined) +// @as(u8, undefined) +// @as(@Vector(2, u8), .{ 9, undefined }) +// @as(@Vector(2, u8), .{ undefined, 9 }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ 9, undefined }) +// @as(@Vector(2, u8), .{ 9, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, 9 }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, 9 }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(u8, undefined) +// @as(u8, undefined) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(u8, undefined) +// @as(u8, undefined) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(u8, undefined) +// @as(u8, undefined) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(u8, undefined) +// @as(u8, undefined) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(u8, undefined) +// @as(u8, undefined) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(u8, undefined) +// @as(u8, undefined) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), [runtime value]) +// @as(@Vector(2, u8), .{ undefined, undefined }) +// @as(i8, undefined) +// @as(i8, undefined) +// @as(@Vector(2, i8), .{ 6, undefined }) +// @as(@Vector(2, i8), .{ undefined, 6 }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ 6, undefined }) +// @as(@Vector(2, i8), .{ 6, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, 6 }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, 6 }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(i8, undefined) +// @as(i8, undefined) +// @as(@Vector(2, i8), .{ 6, undefined }) +// @as(@Vector(2, i8), .{ undefined, 6 }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ 6, undefined }) +// @as(@Vector(2, i8), .{ 6, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, 6 }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, 6 }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(i8, undefined) +// @as(i8, undefined) +// @as(@Vector(2, i8), .{ 0, undefined }) +// @as(@Vector(2, i8), .{ undefined, 0 }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ 0, undefined }) +// @as(@Vector(2, i8), .{ 0, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, 0 }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, 0 }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(i8, undefined) +// @as(i8, undefined) +// @as(@Vector(2, i8), .{ 0, undefined }) +// @as(@Vector(2, i8), .{ undefined, 0 }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ 0, undefined }) +// @as(@Vector(2, i8), .{ 0, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, 0 }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, 0 }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(i8, undefined) +// @as(i8, undefined) +// @as(@Vector(2, i8), .{ 9, undefined }) +// @as(@Vector(2, i8), .{ undefined, 9 }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ 9, undefined }) +// @as(@Vector(2, i8), .{ 9, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, 9 }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, 9 }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(i8, undefined) +// @as(i8, undefined) +// @as(@Vector(2, i8), .{ 9, undefined }) +// @as(@Vector(2, i8), .{ undefined, 9 }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ 9, undefined }) +// @as(@Vector(2, i8), .{ 9, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, 9 }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, 9 }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(i8, undefined) +// @as(i8, undefined) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(i8, undefined) +// @as(i8, undefined) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(i8, undefined) +// @as(i8, undefined) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(i8, undefined) +// @as(i8, undefined) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(i8, undefined) +// @as(i8, undefined) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(i8, undefined) +// @as(i8, undefined) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), [runtime value]) +// @as(@Vector(2, i8), .{ undefined, undefined }) +// @as(u32, undefined) +// @as(u32, undefined) +// @as(@Vector(2, u32), .{ 6, undefined }) +// @as(@Vector(2, u32), .{ undefined, 6 }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ 6, undefined }) +// @as(@Vector(2, u32), .{ 6, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, 6 }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, 6 }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(u32, undefined) +// @as(u32, undefined) +// @as(@Vector(2, u32), .{ 6, undefined }) +// @as(@Vector(2, u32), .{ undefined, 6 }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ 6, undefined }) +// @as(@Vector(2, u32), .{ 6, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, 6 }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, 6 }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(u32, undefined) +// @as(u32, undefined) +// @as(@Vector(2, u32), .{ 0, undefined }) +// @as(@Vector(2, u32), .{ undefined, 0 }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ 0, undefined }) +// @as(@Vector(2, u32), .{ 0, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, 0 }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, 0 }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(u32, undefined) +// @as(u32, undefined) +// @as(@Vector(2, u32), .{ 0, undefined }) +// @as(@Vector(2, u32), .{ undefined, 0 }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ 0, undefined }) +// @as(@Vector(2, u32), .{ 0, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, 0 }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, 0 }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(u32, undefined) +// @as(u32, undefined) +// @as(@Vector(2, u32), .{ 9, undefined }) +// @as(@Vector(2, u32), .{ undefined, 9 }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ 9, undefined }) +// @as(@Vector(2, u32), .{ 9, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, 9 }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, 9 }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(u32, undefined) +// @as(u32, undefined) +// @as(@Vector(2, u32), .{ 9, undefined }) +// @as(@Vector(2, u32), .{ undefined, 9 }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ 9, undefined }) +// @as(@Vector(2, u32), .{ 9, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, 9 }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, 9 }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(u32, undefined) +// @as(u32, undefined) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(u32, undefined) +// @as(u32, undefined) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(u32, undefined) +// @as(u32, undefined) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(u32, undefined) +// @as(u32, undefined) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(u32, undefined) +// @as(u32, undefined) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(u32, undefined) +// @as(u32, undefined) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), [runtime value]) +// @as(@Vector(2, u32), .{ undefined, undefined }) +// @as(i32, undefined) +// @as(i32, undefined) +// @as(@Vector(2, i32), .{ 6, undefined }) +// @as(@Vector(2, i32), .{ undefined, 6 }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ 6, undefined }) +// @as(@Vector(2, i32), .{ 6, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, 6 }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, 6 }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(i32, undefined) +// @as(i32, undefined) +// @as(@Vector(2, i32), .{ 6, undefined }) +// @as(@Vector(2, i32), .{ undefined, 6 }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ 6, undefined }) +// @as(@Vector(2, i32), .{ 6, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, 6 }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, 6 }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(i32, undefined) +// @as(i32, undefined) +// @as(@Vector(2, i32), .{ 0, undefined }) +// @as(@Vector(2, i32), .{ undefined, 0 }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ 0, undefined }) +// @as(@Vector(2, i32), .{ 0, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, 0 }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, 0 }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(i32, undefined) +// @as(i32, undefined) +// @as(@Vector(2, i32), .{ 0, undefined }) +// @as(@Vector(2, i32), .{ undefined, 0 }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ 0, undefined }) +// @as(@Vector(2, i32), .{ 0, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, 0 }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, 0 }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(i32, undefined) +// @as(i32, undefined) +// @as(@Vector(2, i32), .{ 9, undefined }) +// @as(@Vector(2, i32), .{ undefined, 9 }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ 9, undefined }) +// @as(@Vector(2, i32), .{ 9, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, 9 }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, 9 }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(i32, undefined) +// @as(i32, undefined) +// @as(@Vector(2, i32), .{ 9, undefined }) +// @as(@Vector(2, i32), .{ undefined, 9 }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ 9, undefined }) +// @as(@Vector(2, i32), .{ 9, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, 9 }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, 9 }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(i32, undefined) +// @as(i32, undefined) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(i32, undefined) +// @as(i32, undefined) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(i32, undefined) +// @as(i32, undefined) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(i32, undefined) +// @as(i32, undefined) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(i32, undefined) +// @as(i32, undefined) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(i32, undefined) +// @as(i32, undefined) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), [runtime value]) +// @as(@Vector(2, i32), .{ undefined, undefined }) +// @as(u500, undefined) +// @as(u500, undefined) +// @as(@Vector(2, u500), .{ 6, undefined }) +// @as(@Vector(2, u500), .{ undefined, 6 }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ 6, undefined }) +// @as(@Vector(2, u500), .{ 6, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, 6 }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, 6 }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(u500, undefined) +// @as(u500, undefined) +// @as(@Vector(2, u500), .{ 6, undefined }) +// @as(@Vector(2, u500), .{ undefined, 6 }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ 6, undefined }) +// @as(@Vector(2, u500), .{ 6, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, 6 }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, 6 }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(u500, undefined) +// @as(u500, undefined) +// @as(@Vector(2, u500), .{ 0, undefined }) +// @as(@Vector(2, u500), .{ undefined, 0 }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ 0, undefined }) +// @as(@Vector(2, u500), .{ 0, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, 0 }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, 0 }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(u500, undefined) +// @as(u500, undefined) +// @as(@Vector(2, u500), .{ 0, undefined }) +// @as(@Vector(2, u500), .{ undefined, 0 }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ 0, undefined }) +// @as(@Vector(2, u500), .{ 0, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, 0 }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, 0 }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(u500, undefined) +// @as(u500, undefined) +// @as(@Vector(2, u500), .{ 9, undefined }) +// @as(@Vector(2, u500), .{ undefined, 9 }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ 9, undefined }) +// @as(@Vector(2, u500), .{ 9, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, 9 }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, 9 }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(u500, undefined) +// @as(u500, undefined) +// @as(@Vector(2, u500), .{ 9, undefined }) +// @as(@Vector(2, u500), .{ undefined, 9 }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ 9, undefined }) +// @as(@Vector(2, u500), .{ 9, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, 9 }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, 9 }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(u500, undefined) +// @as(u500, undefined) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(u500, undefined) +// @as(u500, undefined) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(u500, undefined) +// @as(u500, undefined) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(u500, undefined) +// @as(u500, undefined) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(u500, undefined) +// @as(u500, undefined) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(u500, undefined) +// @as(u500, undefined) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), [runtime value]) +// @as(@Vector(2, u500), .{ undefined, undefined }) +// @as(i500, undefined) +// @as(i500, undefined) +// @as(@Vector(2, i500), .{ 6, undefined }) +// @as(@Vector(2, i500), .{ undefined, 6 }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ 6, undefined }) +// @as(@Vector(2, i500), .{ 6, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, 6 }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, 6 }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(i500, undefined) +// @as(i500, undefined) +// @as(@Vector(2, i500), .{ 6, undefined }) +// @as(@Vector(2, i500), .{ undefined, 6 }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ 6, undefined }) +// @as(@Vector(2, i500), .{ 6, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, 6 }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, 6 }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(i500, undefined) +// @as(i500, undefined) +// @as(@Vector(2, i500), .{ 0, undefined }) +// @as(@Vector(2, i500), .{ undefined, 0 }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ 0, undefined }) +// @as(@Vector(2, i500), .{ 0, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, 0 }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, 0 }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(i500, undefined) +// @as(i500, undefined) +// @as(@Vector(2, i500), .{ 0, undefined }) +// @as(@Vector(2, i500), .{ undefined, 0 }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ 0, undefined }) +// @as(@Vector(2, i500), .{ 0, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, 0 }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, 0 }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(i500, undefined) +// @as(i500, undefined) +// @as(@Vector(2, i500), .{ 9, undefined }) +// @as(@Vector(2, i500), .{ undefined, 9 }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ 9, undefined }) +// @as(@Vector(2, i500), .{ 9, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, 9 }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, 9 }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(i500, undefined) +// @as(i500, undefined) +// @as(@Vector(2, i500), .{ 9, undefined }) +// @as(@Vector(2, i500), .{ undefined, 9 }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ 9, undefined }) +// @as(@Vector(2, i500), .{ 9, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, 9 }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, 9 }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(i500, undefined) +// @as(i500, undefined) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(i500, undefined) +// @as(i500, undefined) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(i500, undefined) +// @as(i500, undefined) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(i500, undefined) +// @as(i500, undefined) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(i500, undefined) +// @as(i500, undefined) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(i500, undefined) +// @as(i500, undefined) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), [runtime value]) +// @as(@Vector(2, i500), .{ undefined, undefined }) +// @as(f16, undefined) +// @as(f16, undefined) +// @as(@Vector(2, f16), .{ 6, undefined }) +// @as(@Vector(2, f16), .{ undefined, 6 }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ 6, undefined }) +// @as(@Vector(2, f16), .{ 6, undefined }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, 6 }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, 6 }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(f16, undefined) +// @as(f16, undefined) +// @as(@Vector(2, f16), .{ 0, undefined }) +// @as(@Vector(2, f16), .{ undefined, 0 }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ 0, undefined }) +// @as(@Vector(2, f16), .{ 0, undefined }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, 0 }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, 0 }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(f16, undefined) +// @as(f16, undefined) +// @as(@Vector(2, f16), .{ 9, undefined }) +// @as(@Vector(2, f16), .{ undefined, 9 }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ 9, undefined }) +// @as(@Vector(2, f16), .{ 9, undefined }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, 9 }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, 9 }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(f16, undefined) +// @as(@Vector(2, f16), .{ -3, undefined }) +// @as(@Vector(2, f16), .{ undefined, -3 }) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(f16, undefined) +// @as(f16, undefined) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(f16, undefined) +// @as(f16, undefined) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(f16, undefined) +// @as(f16, undefined) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(f16, undefined) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), [runtime value]) +// @as(@Vector(2, f16), .{ undefined, undefined }) +// @as(f32, undefined) +// @as(f32, undefined) +// @as(@Vector(2, f32), .{ 6, undefined }) +// @as(@Vector(2, f32), .{ undefined, 6 }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ 6, undefined }) +// @as(@Vector(2, f32), .{ 6, undefined }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, 6 }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, 6 }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(f32, undefined) +// @as(f32, undefined) +// @as(@Vector(2, f32), .{ 0, undefined }) +// @as(@Vector(2, f32), .{ undefined, 0 }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ 0, undefined }) +// @as(@Vector(2, f32), .{ 0, undefined }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, 0 }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, 0 }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(f32, undefined) +// @as(f32, undefined) +// @as(@Vector(2, f32), .{ 9, undefined }) +// @as(@Vector(2, f32), .{ undefined, 9 }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ 9, undefined }) +// @as(@Vector(2, f32), .{ 9, undefined }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, 9 }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, 9 }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(f32, undefined) +// @as(@Vector(2, f32), .{ -3, undefined }) +// @as(@Vector(2, f32), .{ undefined, -3 }) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(f32, undefined) +// @as(f32, undefined) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(f32, undefined) +// @as(f32, undefined) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(f32, undefined) +// @as(f32, undefined) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(f32, undefined) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), [runtime value]) +// @as(@Vector(2, f32), .{ undefined, undefined }) +// @as(f64, undefined) +// @as(f64, undefined) +// @as(@Vector(2, f64), .{ 6, undefined }) +// @as(@Vector(2, f64), .{ undefined, 6 }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ 6, undefined }) +// @as(@Vector(2, f64), .{ 6, undefined }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, 6 }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, 6 }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(f64, undefined) +// @as(f64, undefined) +// @as(@Vector(2, f64), .{ 0, undefined }) +// @as(@Vector(2, f64), .{ undefined, 0 }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ 0, undefined }) +// @as(@Vector(2, f64), .{ 0, undefined }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, 0 }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, 0 }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(f64, undefined) +// @as(f64, undefined) +// @as(@Vector(2, f64), .{ 9, undefined }) +// @as(@Vector(2, f64), .{ undefined, 9 }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ 9, undefined }) +// @as(@Vector(2, f64), .{ 9, undefined }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, 9 }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, 9 }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(f64, undefined) +// @as(@Vector(2, f64), .{ -3, undefined }) +// @as(@Vector(2, f64), .{ undefined, -3 }) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(f64, undefined) +// @as(f64, undefined) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(f64, undefined) +// @as(f64, undefined) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(f64, undefined) +// @as(f64, undefined) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(f64, undefined) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), [runtime value]) +// @as(@Vector(2, f64), .{ undefined, undefined }) +// @as(f80, undefined) +// @as(f80, undefined) +// @as(@Vector(2, f80), .{ 6, undefined }) +// @as(@Vector(2, f80), .{ undefined, 6 }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ 6, undefined }) +// @as(@Vector(2, f80), .{ 6, undefined }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, 6 }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, 6 }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(f80, undefined) +// @as(f80, undefined) +// @as(@Vector(2, f80), .{ 0, undefined }) +// @as(@Vector(2, f80), .{ undefined, 0 }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ 0, undefined }) +// @as(@Vector(2, f80), .{ 0, undefined }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, 0 }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, 0 }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(f80, undefined) +// @as(f80, undefined) +// @as(@Vector(2, f80), .{ 9, undefined }) +// @as(@Vector(2, f80), .{ undefined, 9 }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ 9, undefined }) +// @as(@Vector(2, f80), .{ 9, undefined }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, 9 }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, 9 }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(f80, undefined) +// @as(@Vector(2, f80), .{ -3, undefined }) +// @as(@Vector(2, f80), .{ undefined, -3 }) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(f80, undefined) +// @as(f80, undefined) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(f80, undefined) +// @as(f80, undefined) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(f80, undefined) +// @as(f80, undefined) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(f80, undefined) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), [runtime value]) +// @as(@Vector(2, f80), .{ undefined, undefined }) +// @as(f128, undefined) +// @as(f128, undefined) +// @as(@Vector(2, f128), .{ 6, undefined }) +// @as(@Vector(2, f128), .{ undefined, 6 }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ 6, undefined }) +// @as(@Vector(2, f128), .{ 6, undefined }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, 6 }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, 6 }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(f128, undefined) +// @as(f128, undefined) +// @as(@Vector(2, f128), .{ 0, undefined }) +// @as(@Vector(2, f128), .{ undefined, 0 }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ 0, undefined }) +// @as(@Vector(2, f128), .{ 0, undefined }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, 0 }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, 0 }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(f128, undefined) +// @as(f128, undefined) +// @as(@Vector(2, f128), .{ 9, undefined }) +// @as(@Vector(2, f128), .{ undefined, 9 }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ 9, undefined }) +// @as(@Vector(2, f128), .{ 9, undefined }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, 9 }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, 9 }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(f128, undefined) +// @as(@Vector(2, f128), .{ -3, undefined }) +// @as(@Vector(2, f128), .{ undefined, -3 }) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(f128, undefined) +// @as(f128, undefined) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(f128, undefined) +// @as(f128, undefined) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(f128, undefined) +// @as(f128, undefined) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), .{ undefined, undefined }) +// @as(f128, undefined) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), [runtime value]) +// @as(@Vector(2, f128), .{ undefined, undefined })