Remove some wuffs_base__make_empty_struct calls
diff --git a/internal/cgen/builtin.go b/internal/cgen/builtin.go
index b7e4947..b525474 100644
--- a/internal/cgen/builtin.go
+++ b/internal/cgen/builtin.go
@@ -29,7 +29,7 @@
errOptimizationNotApplicable = errors.New("cgen: internal error: optimization not applicable")
)
-func (g *gen) writeBuiltinCall(b *buffer, n *a.Expr, depth uint32) error {
+func (g *gen) writeBuiltinCall(b *buffer, n *a.Expr, sideEffectsOnly bool, depth uint32) error {
if n.Operator() != t.IDOpenParen {
return errNoSuchBuiltin
}
@@ -70,7 +70,7 @@
}
b.writes("((wuffs_base__flicks)(")
}
- if err := g.writeExpr(b, o.AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, o.AsArg().Value(), false, depth); err != nil {
return err
}
if i == u64ToFlicksIndex {
@@ -81,9 +81,9 @@
return nil
case t.IDSlice:
- return g.writeBuiltinSlice(b, recv, method.Ident(), n.Args(), depth)
+ return g.writeBuiltinSlice(b, recv, method.Ident(), n.Args(), sideEffectsOnly, depth)
case t.IDTable:
- return g.writeBuiltinTable(b, recv, method.Ident(), n.Args(), depth)
+ return g.writeBuiltinTable(b, recv, method.Ident(), n.Args(), sideEffectsOnly, depth)
default:
return errNoSuchBuiltin
}
@@ -98,9 +98,9 @@
} else {
switch qid[1] {
case t.IDIOReader:
- return g.writeBuiltinIOReader(b, recv, method.Ident(), n.Args(), depth)
+ return g.writeBuiltinIOReader(b, recv, method.Ident(), n.Args(), sideEffectsOnly, depth)
case t.IDIOWriter:
- return g.writeBuiltinIOWriter(b, recv, method.Ident(), n.Args(), depth)
+ return g.writeBuiltinIOWriter(b, recv, method.Ident(), n.Args(), sideEffectsOnly, depth)
case t.IDPixelSwizzler:
switch method.Ident() {
case t.IDLimitedSwizzleU32InterleavedFromReader, t.IDSwizzleInterleavedFromReader:
@@ -111,13 +111,13 @@
b.writes("swizzle_interleaved_from_reader")
}
b.writes("(\n&")
- if err := g.writeExpr(b, recv, depth); err != nil {
+ if err := g.writeExpr(b, recv, false, depth); err != nil {
return err
}
args := n.Args()
for _, o := range args[:len(args)-1] {
b.writes(",\n")
- if err := g.writeExpr(b, o.AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, o.AsArg().Value(), false, depth); err != nil {
return err
}
}
@@ -142,7 +142,7 @@
return nil
}
case t.IDSSE128I:
- return g.writeBuiltinCPUArch(b, recv, method.Ident(), n.Args(), depth)
+ return g.writeBuiltinCPUArch(b, recv, method.Ident(), n.Args(), sideEffectsOnly, depth)
}
}
return errNoSuchBuiltin
@@ -173,7 +173,7 @@
return errNoSuchBuiltin
}
-func (g *gen) writeBuiltinIOReader(b *buffer, recv *a.Expr, method t.ID, args []*a.Node, depth uint32) error {
+func (g *gen) writeBuiltinIOReader(b *buffer, recv *a.Expr, method t.ID, args []*a.Node, sideEffectsOnly bool, depth uint32) error {
recvName, err := g.recvName(recv)
if err != nil {
return err
@@ -184,14 +184,24 @@
b.printf("((uint64_t)(wuffs_base__utf_8__longest_valid_prefix(%s%s,\n"+
"((size_t)(wuffs_base__u64__min(((uint64_t)(%s%s - %s%s)), ",
iopPrefix, recvName, io2Prefix, recvName, iopPrefix, recvName)
- if err := g.writeExpr(b, args[0].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[0].AsArg().Value(), false, depth); err != nil {
return err
}
b.writes("))))))")
return nil
case t.IDUndoByte:
- b.printf("(%s%s--, wuffs_base__make_empty_struct())", iopPrefix, recvName)
+ if !sideEffectsOnly {
+ // Generate a two part expression using the comma operator: "(etc,
+ // return_empty_struct call)". The final part is a function call
+ // (to a static inline function) instead of a struct literal, to
+ // avoid a "expression result unused" compiler error.
+ b.writes("(")
+ }
+ b.printf("%s%s--", iopPrefix, recvName)
+ if !sideEffectsOnly {
+ b.writes(", wuffs_base__make_empty_struct())")
+ }
return nil
case t.IDCanUndoByte:
@@ -205,7 +215,7 @@
case t.IDCountSince:
b.printf("wuffs_base__io__count_since(")
- if err := g.writeExpr(b, args[0].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[0].AsArg().Value(), false, depth); err != nil {
return err
}
b.printf(", ((uint64_t)(%s%s - %s%s)))", iopPrefix, recvName, io0Prefix, recvName)
@@ -222,7 +232,7 @@
case t.IDMatch7:
b.printf("wuffs_base__io_reader__match7(%s%s, %s%s, %s,",
iopPrefix, recvName, io2Prefix, recvName, recvName)
- if err := g.writeExpr(b, args[0].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[0].AsArg().Value(), false, depth); err != nil {
return err
}
b.writeb(')')
@@ -230,7 +240,7 @@
case t.IDPeekU64LEAt:
b.printf("wuffs_base__peek_u64le__no_bounds_check(%s%s + ", iopPrefix, recvName)
- if err := g.writeExpr(b, args[0].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[0].AsArg().Value(), false, depth); err != nil {
return err
}
b.writeb(')')
@@ -243,7 +253,7 @@
case t.IDSince:
b.printf("wuffs_base__io__since(")
- if err := g.writeExpr(b, args[0].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[0].AsArg().Value(), false, depth); err != nil {
return err
}
b.printf(", ((uint64_t)(%s%s - %s%s)), %s%s)",
@@ -251,15 +261,20 @@
return nil
case t.IDSkipU32Fast:
- // Generate a two part expression using the comma operator: "(pointer
- // increment, return_empty_struct call)". The final part is a function
- // call (to a static inline function) instead of a struct literal, to
- // avoid a "expression result unused" compiler error.
- b.printf("(%s%s += ", iopPrefix, recvName)
- if err := g.writeExpr(b, args[0].AsArg().Value(), depth); err != nil {
+ if !sideEffectsOnly {
+ // Generate a two part expression using the comma operator: "(etc,
+ // return_empty_struct call)". The final part is a function call
+ // (to a static inline function) instead of a struct literal, to
+ // avoid a "expression result unused" compiler error.
+ b.writes("(")
+ }
+ b.printf("%s%s += ", iopPrefix, recvName)
+ if err := g.writeExpr(b, args[0].AsArg().Value(), false, depth); err != nil {
return err
}
- b.writes(", wuffs_base__make_empty_struct())")
+ if !sideEffectsOnly {
+ b.writes(", wuffs_base__make_empty_struct())")
+ }
return nil
}
@@ -282,7 +297,7 @@
return g.writeBuiltinIO(b, recv, method, args, depth)
}
-func (g *gen) writeBuiltinIOWriter(b *buffer, recv *a.Expr, method t.ID, args []*a.Node, depth uint32) error {
+func (g *gen) writeBuiltinIOWriter(b *buffer, recv *a.Expr, method t.ID, args []*a.Node, sideEffectsOnly bool, depth uint32) error {
recvName, err := g.recvName(recv)
if err != nil {
return err
@@ -298,7 +313,7 @@
suffix, iopPrefix, recvName, io0Prefix, recvName, io2Prefix, recvName)
for _, o := range args {
b.writes(", ")
- if err := g.writeExpr(b, o.AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, o.AsArg().Value(), false, depth); err != nil {
return err
}
}
@@ -313,7 +328,7 @@
b.printf("wuffs_base__io_writer__limited_copy_u32_from_reader(\n&%s%s, %s%s,",
iopPrefix, recvName, io2Prefix, recvName)
- if err := g.writeExpr(b, args[0].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[0].AsArg().Value(), false, depth); err != nil {
return err
}
b.printf(", &%s%s, %s%s)", iopPrefix, readerName, io2Prefix, readerName)
@@ -331,7 +346,7 @@
case t.IDCountSince:
b.printf("wuffs_base__io__count_since(")
- if err := g.writeExpr(b, args[0].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[0].AsArg().Value(), false, depth); err != nil {
return err
}
b.printf(", ((uint64_t)(%s%s - %s%s)))", iopPrefix, recvName, io0Prefix, recvName)
@@ -348,7 +363,7 @@
case t.IDSince:
b.printf("wuffs_base__io__since(")
- if err := g.writeExpr(b, args[0].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[0].AsArg().Value(), false, depth); err != nil {
return err
}
b.printf(", ((uint64_t)(%s%s - %s%s)), %s%s)",
@@ -359,18 +374,21 @@
if method >= writeFastMethodsBase {
if m := method - writeFastMethodsBase; m < t.ID(len(writeFastMethods)) {
if p := writeFastMethods[m]; p.n != 0 {
- // Generate a three part expression using the comma operator:
- // "(store, pointer increment, return_empty_struct call)". The
- // final part is a function call (to a static inline function)
- // instead of a struct literal, to avoid a "expression result
- // unused" compiler error.
- b.printf("(wuffs_base__poke_u%d%ce__no_bounds_check(%s%s,",
+ // Generate a two/three part expression using the comma
+ // operator: "(store, pointer increment, return_empty_struct
+ // call)". The final part is a function call (to a static
+ // inline function) instead of a struct literal, to avoid a
+ // "expression result unused" compiler error.
+ b.printf("(wuffs_base__poke_u%d%ce__no_bounds_check(%s%s, ",
p.n, p.endianness, iopPrefix, recvName)
- if err := g.writeExpr(b, args[0].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[0].AsArg().Value(), false, depth); err != nil {
return err
}
- b.printf("), %s%s += %d, wuffs_base__make_empty_struct())",
- iopPrefix, recvName, p.n/8)
+ b.printf("), %s%s += %d", iopPrefix, recvName, p.n/8)
+ if !sideEffectsOnly {
+ b.writes(", wuffs_base__make_empty_struct()")
+ }
+ b.writes(")")
return nil
}
}
@@ -391,32 +409,32 @@
if method == t.IDWriteSimpleTokenFast {
b.writes("(((uint64_t)(")
if cv := args[0].AsArg().Value().ConstValue(); (cv == nil) || (cv.Sign() != 0) {
- if err := g.writeExpr(b, args[0].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[0].AsArg().Value(), false, depth); err != nil {
return err
}
b.writes(")) << WUFFS_BASE__TOKEN__VALUE_MAJOR__SHIFT) |\n(((uint64_t)(")
}
- if err := g.writeExpr(b, args[1].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[1].AsArg().Value(), false, depth); err != nil {
return err
}
b.writes(")) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |\n(((uint64_t)(")
} else {
b.writes("(~")
- if err := g.writeExpr(b, args[0].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[0].AsArg().Value(), false, depth); err != nil {
return err
}
b.writes(" << WUFFS_BASE__TOKEN__VALUE_EXTENSION__SHIFT) |\n(((uint64_t)(")
}
if cv := args[len(args)-2].AsArg().Value().ConstValue(); (cv == nil) || (cv.Sign() != 0) {
- if err := g.writeExpr(b, args[len(args)-2].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[len(args)-2].AsArg().Value(), false, depth); err != nil {
return err
}
b.writes(")) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |\n(((uint64_t)(")
}
- if err := g.writeExpr(b, args[len(args)-1].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[len(args)-1].AsArg().Value(), false, depth); err != nil {
return err
}
b.writes(")) << WUFFS_BASE__TOKEN__LENGTH__SHIFT))")
@@ -426,29 +444,33 @@
return g.writeBuiltinIO(b, recv, method, args, depth)
}
-func (g *gen) writeBuiltinCPUArch(b *buffer, recv *a.Expr, method t.ID, args []*a.Node, depth uint32) error {
+func (g *gen) writeBuiltinCPUArch(b *buffer, recv *a.Expr, method t.ID, args []*a.Node, sideEffectsOnly bool, depth uint32) error {
switch method {
case t.IDLoadU32:
// TODO: ensure that the receiver is a variable, not an arbitrary expression.
- //
- // Generate a two part expression using the comma operator: "(etc,
- // return_empty_struct call)". The final part is a function call (to a
- // static inline function) instead of a struct literal, to avoid a
- // "expression result unused" compiler error.
- b.writes("(")
- if err := g.writeExpr(b, recv, depth); err != nil {
+ if !sideEffectsOnly {
+ // Generate a two part expression using the comma operator: "(etc,
+ // return_empty_struct call)". The final part is a function call
+ // (to a static inline function) instead of a struct literal, to
+ // avoid a "expression result unused" compiler error.
+ b.writes("(")
+ }
+ if err := g.writeExpr(b, recv, false, depth); err != nil {
return err
}
b.writes(" = _mm_cvtsi32_si128((int)(")
- if err := g.writeExpr(b, args[0].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[0].AsArg().Value(), false, depth); err != nil {
return err
}
- b.writes(")), wuffs_base__make_empty_struct())")
+ b.writes("))")
+ if !sideEffectsOnly {
+ b.writes(", wuffs_base__make_empty_struct())")
+ }
return nil
case t.IDTruncateU32:
b.writes("((uint32_t)(_mm_cvtsi128_si32(")
- if err := g.writeExpr(b, recv, depth); err != nil {
+ if err := g.writeExpr(b, recv, false, depth); err != nil {
return err
}
b.writes(")))")
@@ -469,19 +491,19 @@
b.writes("(char)(")
after = ")"
}
- if err := g.writeExpr(b, o.AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, o.AsArg().Value(), false, depth); err != nil {
return err
}
b.writes(after)
}
} else {
b.printf("%s(", methodStr)
- if err := g.writeExpr(b, recv, depth); err != nil {
+ if err := g.writeExpr(b, recv, false, depth); err != nil {
return err
}
for _, o := range args {
b.writes(", ")
- if err := g.writeExpr(b, o.AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, o.AsArg().Value(), false, depth); err != nil {
return err
}
}
@@ -497,7 +519,7 @@
// - "((recv) & constant)"
// - "((recv) & WUFFS_BASE__LOW_BITS_MASK__UXX(n))"
b.writes("((")
- if err := g.writeExpr(b, recv, depth); err != nil {
+ if err := g.writeExpr(b, recv, false, depth); err != nil {
return err
}
b.writes(") & ")
@@ -513,7 +535,7 @@
} else {
b.printf("WUFFS_BASE__LOW_BITS_MASK__U%d(", 8*sz)
}
- if err := g.writeExpr(b, args[0].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[0].AsArg().Value(), false, depth); err != nil {
return err
}
b.writes(")")
@@ -525,7 +547,7 @@
case t.IDHighBits:
// "recv.high_bits(n:etc)" in C is "((recv) >> (8*sizeof(recv) - (n)))".
b.writes("((")
- if err := g.writeExpr(b, recv, depth); err != nil {
+ if err := g.writeExpr(b, recv, false, depth); err != nil {
return err
}
b.writes(") >> (")
@@ -535,7 +557,7 @@
b.printf("%d", 8*sz)
}
b.writes(" - (")
- if err := g.writeExpr(b, args[0].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[0].AsArg().Value(), false, depth); err != nil {
return err
}
b.writes(")))")
@@ -549,11 +571,11 @@
b.printf("%d", 8*sz)
}
b.writes("__max(")
- if err := g.writeExpr(b, recv, depth); err != nil {
+ if err := g.writeExpr(b, recv, false, depth); err != nil {
return err
}
b.writes(", ")
- if err := g.writeExpr(b, args[0].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[0].AsArg().Value(), false, depth); err != nil {
return err
}
b.writes(")")
@@ -567,11 +589,11 @@
b.printf("%d", 8*sz)
}
b.writes("__min(")
- if err := g.writeExpr(b, recv, depth); err != nil {
+ if err := g.writeExpr(b, recv, false, depth); err != nil {
return err
}
b.writes(", ")
- if err := g.writeExpr(b, args[0].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[0].AsArg().Value(), false, depth); err != nil {
return err
}
b.writes(")")
@@ -580,7 +602,7 @@
return errNoSuchBuiltin
}
-func (g *gen) writeBuiltinSlice(b *buffer, recv *a.Expr, method t.ID, args []*a.Node, depth uint32) error {
+func (g *gen) writeBuiltinSlice(b *buffer, recv *a.Expr, method t.ID, args []*a.Node, sideEffectsOnly bool, depth uint32) error {
switch method {
case t.IDCopyFromSlice:
if err := g.writeBuiltinSliceCopyFromSlice8(b, recv, method, args, depth); err != errOptimizationNotApplicable {
@@ -589,7 +611,7 @@
// TODO: don't assume that the slice is a slice of base.u8.
b.writes("wuffs_base__slice_u8__copy_from_slice(")
- if err := g.writeExpr(b, recv, depth); err != nil {
+ if err := g.writeExpr(b, recv, false, depth); err != nil {
return err
}
b.writes(", ")
@@ -597,7 +619,7 @@
case t.IDLength:
b.writes("((uint64_t)(")
- if err := g.writeExpr(b, recv, depth); err != nil {
+ if err := g.writeExpr(b, recv, false, depth); err != nil {
return err
}
b.writes(".len))")
@@ -606,7 +628,7 @@
case t.IDSuffix:
// TODO: don't assume that the slice is a slice of base.u8.
b.writes("wuffs_base__slice_u8__suffix(")
- if err := g.writeExpr(b, recv, depth); err != nil {
+ if err := g.writeExpr(b, recv, false, depth); err != nil {
return err
}
b.writes(", ")
@@ -619,7 +641,7 @@
s = s[:i]
}
b.printf("wuffs_base__%s__no_bounds_check(", s)
- if err := g.writeExpr(b, recv, depth); err != nil {
+ if err := g.writeExpr(b, recv, false, depth); err != nil {
return err
}
b.writes(".ptr)")
@@ -627,15 +649,25 @@
}
if (t.IDPokeU8 <= method) && (method <= t.IDPokeU64LE) {
- b.printf("(wuffs_base__%s__no_bounds_check(", method.Str(g.tm))
- if err := g.writeExpr(b, recv, depth); err != nil {
+ if !sideEffectsOnly {
+ // Generate a two part expression using the comma operator: "(etc,
+ // return_empty_struct call)". The final part is a function call
+ // (to a static inline function) instead of a struct literal, to
+ // avoid a "expression result unused" compiler error.
+ b.writes("(")
+ }
+ b.printf("wuffs_base__%s__no_bounds_check(", method.Str(g.tm))
+ if err := g.writeExpr(b, recv, false, depth); err != nil {
return err
}
b.writes(".ptr, ")
- if err := g.writeExpr(b, args[0].AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, args[0].AsArg().Value(), false, depth); err != nil {
return err
}
- b.writes("), wuffs_base__make_empty_struct())")
+ b.writes(")")
+ if !sideEffectsOnly {
+ b.writes(", wuffs_base__make_empty_struct())")
+ }
return nil
}
@@ -655,7 +687,7 @@
return errOptimizationNotApplicable
}
b.writes("memcpy((")
- if err := g.writeExpr(b, foo, depth); err != nil {
+ if err := g.writeExpr(b, foo, false, depth); err != nil {
return err
}
if foo.MType().IsSliceType() {
@@ -663,12 +695,12 @@
}
if fIndex != nil {
b.writes(")+(")
- if err := g.writeExpr(b, fIndex, depth); err != nil {
+ if err := g.writeExpr(b, fIndex, false, depth); err != nil {
return err
}
}
b.writes("), (")
- if err := g.writeExpr(b, bar, depth); err != nil {
+ if err := g.writeExpr(b, bar, false, depth); err != nil {
return err
}
if bar.MType().IsSliceType() {
@@ -676,7 +708,7 @@
}
if bIndex != nil {
b.writes(")+(")
- if err := g.writeExpr(b, bIndex, depth); err != nil {
+ if err := g.writeExpr(b, bIndex, false, depth); err != nil {
return err
}
}
@@ -712,7 +744,7 @@
return foo, index
}
-func (g *gen) writeBuiltinTable(b *buffer, recv *a.Expr, method t.ID, args []*a.Node, depth uint32) error {
+func (g *gen) writeBuiltinTable(b *buffer, recv *a.Expr, method t.ID, args []*a.Node, sideEffectsOnly bool, depth uint32) error {
field := ""
switch method {
@@ -726,7 +758,7 @@
case t.IDRow:
// TODO: don't assume that the table is a table of base.u8.
b.writes("wuffs_base__table_u8__row(")
- if err := g.writeExpr(b, recv, depth); err != nil {
+ if err := g.writeExpr(b, recv, false, depth); err != nil {
return err
}
b.writes(", ")
@@ -735,7 +767,7 @@
if field != "" {
b.writes("((uint64_t)(")
- if err := g.writeExpr(b, recv, depth); err != nil {
+ if err := g.writeExpr(b, recv, false, depth); err != nil {
return err
}
b.printf(".%s))", field)
@@ -757,7 +789,7 @@
b.writes(", ")
}
}
- if err := g.writeExpr(b, o.AsArg().Value(), depth); err != nil {
+ if err := g.writeExpr(b, o.AsArg().Value(), false, depth); err != nil {
return err
}
}
@@ -827,7 +859,7 @@
sPrefix, g.currFunk.astFunc.FuncName().Str(g.tm))
b.printf("%s = ", scratchName)
- if err := g.writeExpr(b, x, depth); err != nil {
+ if err := g.writeExpr(b, x, false, depth); err != nil {
return err
}
b.writes(";\n")
@@ -866,7 +898,7 @@
b.printf("%s = ", scratchName)
x := n.Args()[0].AsArg().Value()
- if err := g.writeExpr(b, x, depth); err != nil {
+ if err := g.writeExpr(b, x, false, depth); err != nil {
return err
}
b.writes(";\n")
diff --git a/internal/cgen/expr.go b/internal/cgen/expr.go
index cd9096b..bffba4b 100644
--- a/internal/cgen/expr.go
+++ b/internal/cgen/expr.go
@@ -23,7 +23,7 @@
t "github.com/google/wuffs/lang/token"
)
-func (g *gen) writeExpr(b *buffer, n *a.Expr, depth uint32) error {
+func (g *gen) writeExpr(b *buffer, n *a.Expr, sideEffectsOnly bool, depth uint32) error {
if depth > a.MaxExprDepth {
return fmt.Errorf("expression recursion depth too large")
}
@@ -59,10 +59,10 @@
case op.IsXAssociativeOp():
return g.writeExprAssociativeOp(b, n, depth)
}
- return g.writeExprOther(b, n, depth)
+ return g.writeExprOther(b, n, sideEffectsOnly, depth)
}
-func (g *gen) writeExprOther(b *buffer, n *a.Expr, depth uint32) error {
+func (g *gen) writeExprOther(b *buffer, n *a.Expr, sideEffectsOnly bool, depth uint32) error {
switch n.Operator() {
case 0:
if ident := n.Ident(); ident == t.IDThis {
@@ -101,7 +101,7 @@
case t.IDOpenParen:
// n is a function call.
- if err := g.writeBuiltinCall(b, n, depth); err != errNoSuchBuiltin {
+ if err := g.writeBuiltinCall(b, n, sideEffectsOnly, depth); err != errNoSuchBuiltin {
return err
}
@@ -119,20 +119,26 @@
qid := recvTyp.QID()
if isBaseRangeType(qid) {
- // Generate a 2 part expression using the comma operator: "(memset
- // call, return_empty_struct call)". The final part is a function
- // call (to a static inline function) instead of a struct literal,
- // to avoid a "expression result unused" compiler error.
- b.printf("(memset(%s", addr)
- if err := g.writeExpr(b, recv, depth); err != nil {
+ if !sideEffectsOnly {
+ // Generate a two part expression using the comma operator:
+ // "(etc, return_empty_struct call)". The final part is a
+ // function call (to a static inline function) instead of a
+ // struct literal, to avoid a "expression result unused"
+ // compiler error.
+ b.writes("(")
+ }
+ b.printf("memset(%s", addr)
+ if err := g.writeExpr(b, recv, false, depth); err != nil {
return err
}
- b.printf(", 0, sizeof (%s%s)), wuffs_base__make_empty_struct())",
- g.packagePrefix(qid), qid[1].Str(g.tm))
+ b.printf(", 0, sizeof (%s%s))", g.packagePrefix(qid), qid[1].Str(g.tm))
+ if !sideEffectsOnly {
+ b.writes(", wuffs_base__make_empty_struct())")
+ }
} else {
b.printf("wuffs_base__ignore_status("+
"%s%s__initialize(%s", g.packagePrefix(qid), qid[1].Str(g.tm), addr)
- if err := g.writeExpr(b, recv, depth); err != nil {
+ if err := g.writeExpr(b, recv, false, depth); err != nil {
return err
}
b.printf(", sizeof (%s%s), WUFFS_VERSION, 0))", g.packagePrefix(qid), qid[1].Str(g.tm))
@@ -145,7 +151,7 @@
case t.IDOpenBracket:
// n is an index.
- if err := g.writeExpr(b, n.LHS().AsExpr(), depth); err != nil {
+ if err := g.writeExpr(b, n.LHS().AsExpr(), false, depth); err != nil {
return err
}
if lTyp := n.LHS().AsExpr().MType(); lTyp.IsSliceType() {
@@ -153,7 +159,7 @@
b.writes(".ptr")
}
b.writeb('[')
- if err := g.writeExpr(b, n.RHS().AsExpr(), depth); err != nil {
+ if err := g.writeExpr(b, n.RHS().AsExpr(), false, depth); err != nil {
return err
}
b.writeb(']')
@@ -201,7 +207,7 @@
b.writeb('(')
}
}
- if err := g.writeExpr(b, lhs, depth); err != nil {
+ if err := g.writeExpr(b, lhs, false, depth); err != nil {
return err
}
if lhsIsArray {
@@ -224,13 +230,13 @@
if mhs != nil {
b.writes(comma)
- if err := g.writeExpr(b, mhs, depth); err != nil {
+ if err := g.writeExpr(b, mhs, false, depth); err != nil {
return err
}
}
if rhs != nil {
b.writes(comma)
- if err := g.writeExpr(b, rhs, depth); err != nil {
+ if err := g.writeExpr(b, rhs, false, depth); err != nil {
return err
}
}
@@ -255,7 +261,7 @@
return fmt.Errorf("unrecognized status %s", n.Str(g.tm))
}
- if err := g.writeExpr(b, lhs, depth); err != nil {
+ if err := g.writeExpr(b, lhs, false, depth); err != nil {
return err
}
if p := lhs.MType().Decorator(); p == t.IDNptr || p == t.IDPtr {
@@ -294,7 +300,7 @@
}
b.writes(opName)
- return g.writeExpr(b, n.RHS().AsExpr(), depth)
+ return g.writeExpr(b, n.RHS().AsExpr(), false, depth)
}
func (g *gen) writeExprBinaryOp(b *buffer, n *a.Expr, depth uint32) error {
@@ -370,7 +376,7 @@
}
}
}
- if err := g.writeExpr(b, n, depth); err != nil {
+ if err := g.writeExpr(b, n, false, depth); err != nil {
return err
}
if isStatus {
@@ -387,7 +393,7 @@
return err
}
b.writes(")(")
- if err := g.writeExpr(b, lhs, depth); err != nil {
+ if err := g.writeExpr(b, lhs, false, depth); err != nil {
return err
}
b.writes("))")
@@ -409,7 +415,7 @@
if i != 0 {
b.writes(opName)
}
- if err := g.writeExpr(b, o.AsExpr(), depth); err != nil {
+ if err := g.writeExpr(b, o.AsExpr(), false, depth); err != nil {
return err
}
}
@@ -432,7 +438,7 @@
b.printf("%s%s__%s(", g.packagePrefix(qid), qid[1].Str(g.tm), method.Ident().Str(g.tm))
if !recvTyp.Eq(typeExprUtility) {
b.writes(addr)
- if err := g.writeExpr(b, recv, depth); err != nil {
+ if err := g.writeExpr(b, recv, false, depth); err != nil {
return err
}
if len(n.Args()) > 0 {
diff --git a/internal/cgen/statement.go b/internal/cgen/statement.go
index 3f1cfbc..3f53bd4 100644
--- a/internal/cgen/statement.go
+++ b/internal/cgen/statement.go
@@ -132,7 +132,7 @@
opName, closer, disableWconversion := "", "", false
if lhs != nil {
- if err := g.writeExpr(&lhsBuf, lhs, 0); err != nil {
+ if err := g.writeExpr(&lhsBuf, lhs, false, 0); err != nil {
return err
}
@@ -152,7 +152,7 @@
b.printf("wuffs_base__status %s%d = ", tPrefix, temp)
- if err := g.writeExpr(b, rhs, 0); err != nil {
+ if err := g.writeExpr(b, rhs, false, 0); err != nil {
return err
}
b.writes(";\n")
@@ -185,7 +185,6 @@
}
}
}
-
// "x += 1" triggers -Wconversion, if x is smaller than an int (i.e. a
// uint8_t or a uint16_t). This is arguably a clang/gcc bug, but in any
// case, we work around it in Wuffs.
@@ -207,7 +206,7 @@
g.currFunk.tempR++
} else if skipRHS {
// No-op.
- } else if err := g.writeExpr(b, rhs, 0); err != nil {
+ } else if err := g.writeExpr(b, rhs, lhs == nil, 0); err != nil {
return err
}
b.writes(closer)
@@ -323,7 +322,7 @@
io0Prefix, prefix, name,
io1Prefix, prefix, name,
io2Prefix, prefix, name)
- if err := g.writeExpr(b, n.Arg1(), 0); err != nil {
+ if err := g.writeExpr(b, n.Arg1(), false, 0); err != nil {
return err
}
b.writes(");\n")
@@ -335,7 +334,7 @@
cTyp,
io2Prefix, prefix, name,
iopPrefix, prefix, name)
- if err := g.writeExpr(b, n.Arg1(), 0); err != nil {
+ if err := g.writeExpr(b, n.Arg1(), false, 0); err != nil {
return err
}
b.writes(");\n")
@@ -398,7 +397,7 @@
for {
condition := buffer(nil)
- if err := g.writeExpr(&condition, n.Condition(), 0); err != nil {
+ if err := g.writeExpr(&condition, n.Condition(), false, 0); err != nil {
return err
}
// Calling trimParens avoids clang's -Wparentheses-equality warning.
@@ -442,7 +441,7 @@
o := o.AsAssign()
name := o.LHS().Ident().Str(g.tm)
b.printf("wuffs_base__slice_u8 %sslice_%s = ", iPrefix, name)
- if err := g.writeExpr(b, o.RHS(), 0); err != nil {
+ if err := g.writeExpr(b, o.RHS(), false, 0); err != nil {
return err
}
b.writes(";\n")
@@ -518,8 +517,7 @@
msg, _ := t.Unescape(retExpr.Ident().Str(g.tm))
isComplete = statusMsgIsNote(msg)
}
- if err := g.writeExpr(
- b, retExpr, depth); err != nil {
+ if err := g.writeExpr(b, retExpr, false, depth); err != nil {
return err
}
}
@@ -572,7 +570,7 @@
if couldBeSuspension {
b.writes("wuffs_base__status__ensure_not_a_suspension(")
}
- if err := g.writeExpr(b, retExpr, depth); err != nil {
+ if err := g.writeExpr(b, retExpr, false, depth); err != nil {
return err
}
if couldBeSuspension {
@@ -593,7 +591,7 @@
b.printf("label__%s__continue:;\n", jt)
}
condition := buffer(nil)
- if err := g.writeExpr(&condition, n.Condition(), 0); err != nil {
+ if err := g.writeExpr(&condition, n.Condition(), false, 0); err != nil {
return err
}
// Calling trimParens avoids clang's -Wparentheses-equality warning.
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index 9b0a79e..3d8aff4 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -18791,7 +18791,7 @@
goto ok;
}
self->private_impl.f_pending_pad -= 1;
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
}
label__inner__continue:;
while (true) {
@@ -18914,7 +18914,7 @@
goto label__goto_suspend__break;
}
v_code = wuffs_base__peek_u8be__no_bounds_check(iop_a_src);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
if (v_code == 0) {
v_rle_state = 2;
goto label__inner__continue;
@@ -18927,7 +18927,7 @@
goto label__goto_suspend__break;
}
v_code = wuffs_base__peek_u8be__no_bounds_check(iop_a_src);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
if (self->private_impl.f_bits_per_pixel == 8) {
v_p0 = 0;
while (v_p0 < self->private_impl.f_rle_length) {
@@ -18953,7 +18953,7 @@
goto label__goto_suspend__break;
}
v_code = wuffs_base__peek_u8be__no_bounds_check(iop_a_src);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
if (v_code < 2) {
if ((self->private_impl.f_dst_y >= self->private_impl.f_height) && (v_code == 0)) {
status = wuffs_base__make_status(wuffs_bmp__error__bad_rle_compression);
@@ -18991,7 +18991,7 @@
v_p0 = 0;
while ((v_chunk_count > 0) && (((uint64_t)(io2_a_src - iop_a_src)) >= 2)) {
v_chunk_bits = ((uint32_t)(wuffs_base__peek_u16be__no_bounds_check(iop_a_src)));
- (iop_a_src += 2, wuffs_base__make_empty_struct());
+ iop_a_src += 2;
self->private_data.f_scratch[(v_p0 + 0)] = ((uint8_t)((15 & (v_chunk_bits >> 12))));
self->private_data.f_scratch[(v_p0 + 1)] = ((uint8_t)((15 & (v_chunk_bits >> 8))));
self->private_data.f_scratch[(v_p0 + 2)] = ((uint8_t)((15 & (v_chunk_bits >> 4))));
@@ -19011,7 +19011,7 @@
if (((uint64_t)(io2_a_src - iop_a_src)) < 1) {
goto label__goto_suspend__break;
}
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
self->private_impl.f_rle_padded = false;
}
v_rle_state = 0;
@@ -19021,7 +19021,7 @@
goto label__goto_suspend__break;
}
self->private_impl.f_rle_delta_x = wuffs_base__peek_u8be__no_bounds_check(iop_a_src);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
v_rle_state = 5;
goto label__inner__continue;
}
@@ -19029,7 +19029,7 @@
goto label__goto_suspend__break;
}
v_code = wuffs_base__peek_u8be__no_bounds_check(iop_a_src);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
if (self->private_impl.f_rle_delta_x > 0) {
wuffs_base__pixel_swizzler__swizzle_interleaved_transparent_black(&self->private_impl.f_swizzler, v_dst, v_dst_palette, ((uint64_t)(self->private_impl.f_rle_delta_x)));
wuffs_base__u32__sat_add_indirect(&self->private_impl.f_dst_x, ((uint32_t)(self->private_impl.f_rle_delta_x)));
@@ -19162,7 +19162,7 @@
goto ok;
}
self->private_impl.f_pending_pad -= 1;
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
}
label__inner__continue:;
while (true) {
@@ -19188,13 +19188,13 @@
goto label__0__break;
}
v_c32 = ((uint32_t)(wuffs_base__peek_u16le__no_bounds_check(iop_a_src)));
- (iop_a_src += 2, wuffs_base__make_empty_struct());
+ iop_a_src += 2;
} else {
if (((uint64_t)(io2_a_src - iop_a_src)) < 4) {
goto label__0__break;
}
v_c32 = wuffs_base__peek_u32le__no_bounds_check(iop_a_src);
- (iop_a_src += 4, wuffs_base__make_empty_struct());
+ iop_a_src += 4;
}
v_channel = 0;
while (v_channel < 4) {
@@ -19315,7 +19315,7 @@
v_chunk_count = wuffs_base__u32__min(v_chunk_count, 16);
while ((v_chunk_count > 0) && (((uint64_t)(io2_a_src - iop_a_src)) >= 4)) {
v_chunk_bits = wuffs_base__peek_u32be__no_bounds_check(iop_a_src);
- (iop_a_src += 4, wuffs_base__make_empty_struct());
+ iop_a_src += 4;
self->private_data.f_scratch[(v_p0 + 0)] = ((uint8_t)((1 & (v_chunk_bits >> 31))));
self->private_data.f_scratch[(v_p0 + 1)] = ((uint8_t)((1 & (v_chunk_bits >> 30))));
self->private_data.f_scratch[(v_p0 + 2)] = ((uint8_t)((1 & (v_chunk_bits >> 29))));
@@ -19356,7 +19356,7 @@
v_chunk_count = wuffs_base__u32__min(v_chunk_count, 32);
while ((v_chunk_count > 0) && (((uint64_t)(io2_a_src - iop_a_src)) >= 4)) {
v_chunk_bits = wuffs_base__peek_u32be__no_bounds_check(iop_a_src);
- (iop_a_src += 4, wuffs_base__make_empty_struct());
+ iop_a_src += 4;
self->private_data.f_scratch[(v_p0 + 0)] = ((uint8_t)((3 & (v_chunk_bits >> 30))));
self->private_data.f_scratch[(v_p0 + 1)] = ((uint8_t)((3 & (v_chunk_bits >> 28))));
self->private_data.f_scratch[(v_p0 + 2)] = ((uint8_t)((3 & (v_chunk_bits >> 26))));
@@ -19381,7 +19381,7 @@
v_chunk_count = wuffs_base__u32__min(v_chunk_count, 64);
while ((v_chunk_count > 0) && (((uint64_t)(io2_a_src - iop_a_src)) >= 4)) {
v_chunk_bits = wuffs_base__peek_u32be__no_bounds_check(iop_a_src);
- (iop_a_src += 4, wuffs_base__make_empty_struct());
+ iop_a_src += 4;
self->private_data.f_scratch[(v_p0 + 0)] = ((uint8_t)((15 & (v_chunk_bits >> 28))));
self->private_data.f_scratch[(v_p0 + 1)] = ((uint8_t)((15 & (v_chunk_bits >> 24))));
self->private_data.f_scratch[(v_p0 + 2)] = ((uint8_t)((15 & (v_chunk_bits >> 20))));
@@ -20032,13 +20032,13 @@
v_vminor |= 19;
}
v_indefinite_string_major_type = 0;
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(v_vminor)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
goto label__goto_parsed_a_leaf_value__break;
}
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
v_c_major = ((uint8_t)((v_c >> 5)));
v_c_minor = (v_c & 31);
if (v_c_minor < 24) {
@@ -20048,25 +20048,25 @@
if (v_c_minor == 24) {
if (((uint64_t)(io2_a_src - iop_a_src)) >= 1) {
v_string_length = ((uint64_t)(wuffs_base__peek_u8be__no_bounds_check(iop_a_src)));
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
goto label__goto_have_string_length__break;
}
} else if (v_c_minor == 25) {
if (((uint64_t)(io2_a_src - iop_a_src)) >= 2) {
v_string_length = ((uint64_t)(wuffs_base__peek_u16be__no_bounds_check(iop_a_src)));
- (iop_a_src += 2, wuffs_base__make_empty_struct());
+ iop_a_src += 2;
goto label__goto_have_string_length__break;
}
} else if (v_c_minor == 26) {
if (((uint64_t)(io2_a_src - iop_a_src)) >= 4) {
v_string_length = ((uint64_t)(wuffs_base__peek_u32be__no_bounds_check(iop_a_src)));
- (iop_a_src += 4, wuffs_base__make_empty_struct());
+ iop_a_src += 4;
goto label__goto_have_string_length__break;
}
} else if (v_c_minor == 27) {
if (((uint64_t)(io2_a_src - iop_a_src)) >= 8) {
v_string_length = wuffs_base__peek_u64be__no_bounds_check(iop_a_src);
- (iop_a_src += 8, wuffs_base__make_empty_struct());
+ iop_a_src += 8;
goto label__goto_have_string_length__break;
}
} else {
@@ -20074,7 +20074,7 @@
goto label__goto_have_string_length__break;
}
if (iop_a_src > io1_a_src) {
- (iop_a_src--, wuffs_base__make_empty_struct());
+ iop_a_src--;
if (a_src && a_src->meta.closed) {
status = wuffs_base__make_status(wuffs_cbor__error__bad_input);
goto exit;
@@ -20183,7 +20183,7 @@
if ((v_string_length > 0) || (v_indefinite_string_major_type > 0)) {
v_continued = 1;
}
- (iop_a_src += v_token_length, wuffs_base__make_empty_struct());
+ iop_a_src += v_token_length;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(4194816)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(v_continued)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
@@ -20249,7 +20249,7 @@
if ((v_string_length > 0) || (v_indefinite_string_major_type > 0)) {
v_continued = 1;
}
- (iop_a_src += v_token_length, wuffs_base__make_empty_struct());
+ iop_a_src += v_token_length;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(4194819)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(v_continued)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
@@ -20267,7 +20267,7 @@
} else if (v_depth >= 1024) {
v_token_length = ((uint32_t)(WUFFS_CBOR__TOKEN_LENGTHS[v_c_minor]));
while ((v_token_length > 0) && (iop_a_src > io1_a_src)) {
- (iop_a_src--, wuffs_base__make_empty_struct());
+ iop_a_src--;
v_token_length -= 1;
}
status = wuffs_base__make_status(wuffs_cbor__error__unsupported_recursion_depth);
@@ -20308,7 +20308,7 @@
} else if (v_depth >= 1024) {
v_token_length = ((uint32_t)(WUFFS_CBOR__TOKEN_LENGTHS[v_c_minor]));
while ((v_token_length > 0) && (iop_a_src > io1_a_src)) {
- (iop_a_src--, wuffs_base__make_empty_struct());
+ iop_a_src--;
v_token_length -= 1;
}
status = wuffs_base__make_status(wuffs_cbor__error__unsupported_recursion_depth);
@@ -20382,7 +20382,7 @@
status = wuffs_base__make_status(wuffs_cbor__error__internal_error_inconsistent_i_o);
goto exit;
}
- (iop_a_src--, wuffs_base__make_empty_struct());
+ iop_a_src--;
goto label__goto_fail__break;
}
*iop_a_dst++ = wuffs_base__make_token(
@@ -20435,7 +20435,7 @@
}
label__goto_fail__break:;
if (iop_a_src > io1_a_src) {
- (iop_a_src--, wuffs_base__make_empty_struct());
+ iop_a_src--;
status = wuffs_base__make_status(wuffs_cbor__error__bad_input);
goto exit;
}
@@ -22535,10 +22535,10 @@
while ((((uint64_t)(io2_a_dst - iop_a_dst)) >= 258) && (((uint64_t)(io2_a_src - iop_a_src)) >= 12)) {
if (v_n_bits < 15) {
v_bits |= (((uint32_t)(wuffs_base__peek_u8be__no_bounds_check(iop_a_src))) << v_n_bits);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
v_n_bits += 8;
v_bits |= (((uint32_t)(wuffs_base__peek_u8be__no_bounds_check(iop_a_src))) << v_n_bits);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
v_n_bits += 8;
} else {
}
@@ -22547,7 +22547,7 @@
v_bits >>= v_table_entry_n_bits;
v_n_bits -= v_table_entry_n_bits;
if ((v_table_entry >> 31) != 0) {
- (wuffs_base__poke_u8be__no_bounds_check(iop_a_dst,((uint8_t)(((v_table_entry >> 8) & 255)))), iop_a_dst += 1, wuffs_base__make_empty_struct());
+ (wuffs_base__poke_u8be__no_bounds_check(iop_a_dst, ((uint8_t)(((v_table_entry >> 8) & 255)))), iop_a_dst += 1);
goto label__loop__continue;
} else if ((v_table_entry >> 30) != 0) {
} else if ((v_table_entry >> 29) != 0) {
@@ -22556,10 +22556,10 @@
} else if ((v_table_entry >> 28) != 0) {
if (v_n_bits < 15) {
v_bits |= (((uint32_t)(wuffs_base__peek_u8be__no_bounds_check(iop_a_src))) << v_n_bits);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
v_n_bits += 8;
v_bits |= (((uint32_t)(wuffs_base__peek_u8be__no_bounds_check(iop_a_src))) << v_n_bits);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
v_n_bits += 8;
} else {
}
@@ -22570,7 +22570,7 @@
v_bits >>= v_table_entry_n_bits;
v_n_bits -= v_table_entry_n_bits;
if ((v_table_entry >> 31) != 0) {
- (wuffs_base__poke_u8be__no_bounds_check(iop_a_dst,((uint8_t)(((v_table_entry >> 8) & 255)))), iop_a_dst += 1, wuffs_base__make_empty_struct());
+ (wuffs_base__poke_u8be__no_bounds_check(iop_a_dst, ((uint8_t)(((v_table_entry >> 8) & 255)))), iop_a_dst += 1);
goto label__loop__continue;
} else if ((v_table_entry >> 30) != 0) {
} else if ((v_table_entry >> 29) != 0) {
@@ -22598,10 +22598,10 @@
if (v_table_entry_n_bits > 0) {
if (v_n_bits < 15) {
v_bits |= (((uint32_t)(wuffs_base__peek_u8be__no_bounds_check(iop_a_src))) << v_n_bits);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
v_n_bits += 8;
v_bits |= (((uint32_t)(wuffs_base__peek_u8be__no_bounds_check(iop_a_src))) << v_n_bits);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
v_n_bits += 8;
} else {
}
@@ -22612,10 +22612,10 @@
}
if (v_n_bits < 15) {
v_bits |= (((uint32_t)(wuffs_base__peek_u8be__no_bounds_check(iop_a_src))) << v_n_bits);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
v_n_bits += 8;
v_bits |= (((uint32_t)(wuffs_base__peek_u8be__no_bounds_check(iop_a_src))) << v_n_bits);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
v_n_bits += 8;
} else {
}
@@ -22626,10 +22626,10 @@
if ((v_table_entry >> 28) == 1) {
if (v_n_bits < 15) {
v_bits |= (((uint32_t)(wuffs_base__peek_u8be__no_bounds_check(iop_a_src))) << v_n_bits);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
v_n_bits += 8;
v_bits |= (((uint32_t)(wuffs_base__peek_u8be__no_bounds_check(iop_a_src))) << v_n_bits);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
v_n_bits += 8;
} else {
}
@@ -22653,10 +22653,10 @@
v_table_entry_n_bits = ((v_table_entry >> 4) & 15);
if (v_n_bits < v_table_entry_n_bits) {
v_bits |= (((uint32_t)(wuffs_base__peek_u8be__no_bounds_check(iop_a_src))) << v_n_bits);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
v_n_bits += 8;
v_bits |= (((uint32_t)(wuffs_base__peek_u8be__no_bounds_check(iop_a_src))) << v_n_bits);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
v_n_bits += 8;
}
v_dist_minus_1 = ((v_dist_minus_1 + ((v_bits) & WUFFS_BASE__LOW_BITS_MASK__U32(v_table_entry_n_bits))) & 32767);
@@ -22698,7 +22698,7 @@
while (v_n_bits >= 8) {
v_n_bits -= 8;
if (iop_a_src > io1_a_src) {
- (iop_a_src--, wuffs_base__make_empty_struct());
+ iop_a_src--;
} else {
status = wuffs_base__make_status(wuffs_deflate__error__internal_error_inconsistent_i_o);
goto exit;
@@ -23393,14 +23393,14 @@
if (v_n_bits < v_width) {
if (((uint64_t)(io2_a_src - iop_a_src)) >= 4) {
v_bits |= (wuffs_base__peek_u32le__no_bounds_check(iop_a_src) << v_n_bits);
- (iop_a_src += ((31 - v_n_bits) >> 3), wuffs_base__make_empty_struct());
+ iop_a_src += ((31 - v_n_bits) >> 3);
v_n_bits |= 24;
} else if (((uint64_t)(io2_a_src - iop_a_src)) <= 0) {
self->private_impl.f_read_from_return_value = 2;
goto label__0__break;
} else {
v_bits |= (((uint32_t)(wuffs_base__peek_u8be__no_bounds_check(iop_a_src))) << v_n_bits);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
v_n_bits += 8;
if (v_n_bits >= v_width) {
} else if (((uint64_t)(io2_a_src - iop_a_src)) <= 0) {
@@ -23408,7 +23408,7 @@
goto label__0__break;
} else {
v_bits |= (((uint32_t)(wuffs_base__peek_u8be__no_bounds_check(iop_a_src))) << v_n_bits);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
v_n_bits += 8;
if (v_n_bits < v_width) {
self->private_impl.f_read_from_return_value = 4;
@@ -23502,7 +23502,7 @@
while (v_n_bits >= 8) {
v_n_bits -= 8;
if (iop_a_src > io1_a_src) {
- (iop_a_src--, wuffs_base__make_empty_struct());
+ iop_a_src--;
} else {
self->private_impl.f_read_from_return_value = 4;
goto label__2__break;
@@ -24094,13 +24094,13 @@
label__0__break:;
v_chunk_length = ((uint64_t)(wuffs_base__peek_u8be__no_bounds_check(iop_a_src)));
if (v_chunk_length <= 0) {
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
goto label__1__break;
}
if (self->private_impl.f_metadata_fourcc == 1481461792) {
v_chunk_length += 1;
} else {
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
}
self->private_impl.f_metadata_io_position = wuffs_base__u64__sat_add(wuffs_base__u64__sat_add(a_src->meta.pos, ((uint64_t)(iop_a_src - io0_a_src))), v_chunk_length);
if (a_minfo != NULL) {
@@ -25933,7 +25933,7 @@
goto label__0__break;
}
v_block_size = ((uint64_t)(wuffs_base__peek_u8be__no_bounds_check(iop_a_src)));
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
}
label__0__break:;
label__inner__continue:;
@@ -27240,7 +27240,7 @@
if (v_class != 0) {
goto label__ws__break;
}
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
if (v_whitespace_length >= 65534) {
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(0)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
@@ -27269,7 +27269,7 @@
(((uint64_t)(4194579)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
label__string_loop_outer__continue:;
while (true) {
if (((uint64_t)(io2_a_dst - iop_a_dst)) <= 0) {
@@ -27305,7 +27305,7 @@
WUFFS_JSON__LUT_CHARS[(255 & (v_c4 >> 24))])) {
goto label__0__break;
}
- (iop_a_src += 4, wuffs_base__make_empty_struct());
+ iop_a_src += 4;
if (v_string_length > 65527) {
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(4194819)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
@@ -27320,7 +27320,7 @@
v_c = wuffs_base__peek_u8be__no_bounds_check(iop_a_src);
v_char = WUFFS_JSON__LUT_CHARS[v_c];
if (v_char == 0) {
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
if (v_string_length >= 65531) {
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(4194819)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
@@ -27365,7 +27365,7 @@
v_c = ((uint8_t)((wuffs_base__peek_u16le__no_bounds_check(iop_a_src) >> 8)));
v_backslash = WUFFS_JSON__LUT_BACKSLASHES[v_c];
if ((v_backslash & 128) != 0) {
- (iop_a_src += 2, wuffs_base__make_empty_struct());
+ iop_a_src += 2;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)((6291456 | ((uint32_t)((v_backslash & 127)))))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
@@ -27373,7 +27373,7 @@
goto label__string_loop_outer__continue;
} else if (v_backslash != 0) {
if (self->private_impl.f_quirks[WUFFS_JSON__LUT_QUIRKY_BACKSLASHES_QUIRKS[(v_backslash & 7)]]) {
- (iop_a_src += 2, wuffs_base__make_empty_struct());
+ iop_a_src += 2;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)((6291456 | ((uint32_t)(WUFFS_JSON__LUT_QUIRKY_BACKSLASHES_CHARS[(v_backslash & 7)]))))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
@@ -27409,7 +27409,7 @@
v_uni4_value |= (((uint32_t)((v_c & 15))) << 0);
if (v_uni4_ok == 0) {
} else if ((v_uni4_value < 55296) || (57343 < v_uni4_value)) {
- (iop_a_src += 6, wuffs_base__make_empty_struct());
+ iop_a_src += 6;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)((6291456 | v_uni4_value))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
@@ -27420,7 +27420,7 @@
if (((uint64_t)(io2_a_src - iop_a_src)) < 12) {
if (a_src && a_src->meta.closed) {
if (self->private_impl.f_quirks[20]) {
- (iop_a_src += 6, wuffs_base__make_empty_struct());
+ iop_a_src += 6;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(6356989)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
@@ -27462,7 +27462,7 @@
}
if ((v_uni4_ok != 0) && (56320 <= v_uni4_value) && (v_uni4_value <= 57343)) {
v_uni4_value -= 56320;
- (iop_a_src += 12, wuffs_base__make_empty_struct());
+ iop_a_src += 12;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)((6291456 | v_uni4_high_surrogate | v_uni4_value))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
@@ -27475,7 +27475,7 @@
status = wuffs_base__make_status(wuffs_json__error__internal_error_inconsistent_i_o);
goto exit;
}
- (iop_a_src += 6, wuffs_base__make_empty_struct());
+ iop_a_src += 6;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(6356989)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
@@ -27523,14 +27523,14 @@
v_uni8_value |= (((uint32_t)((v_c & 15))) << 0);
if (v_uni8_ok == 0) {
} else if ((v_uni8_value < 55296) || ((57343 < v_uni8_value) && (v_uni8_value <= 1114111))) {
- (iop_a_src += 10, wuffs_base__make_empty_struct());
+ iop_a_src += 10;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)((6291456 | (v_uni8_value & 2097151)))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)(10)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
goto label__string_loop_outer__continue;
} else if (self->private_impl.f_quirks[20]) {
- (iop_a_src += 10, wuffs_base__make_empty_struct());
+ iop_a_src += 10;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(6356989)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
@@ -27561,7 +27561,7 @@
status = wuffs_base__make_status(wuffs_json__error__bad_backslash_escape);
goto exit;
}
- (iop_a_src += 4, wuffs_base__make_empty_struct());
+ iop_a_src += 4;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)((6291456 | ((uint32_t)(v_backslash_x_value))))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
@@ -27588,7 +27588,7 @@
(((uint64_t)(6356989)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
goto label__string_loop_outer__continue;
}
status = wuffs_base__make_status(wuffs_json__error__bad_utf_8);
@@ -27603,7 +27603,7 @@
v_multi_byte_utf8 = ((uint32_t)(wuffs_base__peek_u16le__no_bounds_check(iop_a_src)));
if ((v_multi_byte_utf8 & 49152) == 32768) {
v_multi_byte_utf8 = ((1984 & (v_multi_byte_utf8 << 6)) | (63 & (v_multi_byte_utf8 >> 8)));
- (iop_a_src += 2, wuffs_base__make_empty_struct());
+ iop_a_src += 2;
if (v_string_length >= 65528) {
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(4194819)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
@@ -27633,7 +27633,7 @@
(((uint64_t)(6356989)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
goto label__string_loop_outer__continue;
}
status = wuffs_base__make_status(wuffs_json__error__bad_utf_8);
@@ -27649,7 +27649,7 @@
if ((v_multi_byte_utf8 & 12632064) == 8421376) {
v_multi_byte_utf8 = ((61440 & (v_multi_byte_utf8 << 12)) | (4032 & (v_multi_byte_utf8 >> 2)) | (63 & (v_multi_byte_utf8 >> 16)));
if ((2047 < v_multi_byte_utf8) && ((v_multi_byte_utf8 < 55296) || (57343 < v_multi_byte_utf8))) {
- (iop_a_src += 3, wuffs_base__make_empty_struct());
+ iop_a_src += 3;
if (v_string_length >= 65528) {
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(4194819)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
@@ -27680,7 +27680,7 @@
(((uint64_t)(6356989)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
goto label__string_loop_outer__continue;
}
status = wuffs_base__make_status(wuffs_json__error__bad_utf_8);
@@ -27699,7 +27699,7 @@
(4032 & (v_multi_byte_utf8 >> 10)) |
(63 & (v_multi_byte_utf8 >> 24)));
if ((65535 < v_multi_byte_utf8) && (v_multi_byte_utf8 <= 1114111)) {
- (iop_a_src += 4, wuffs_base__make_empty_struct());
+ iop_a_src += 4;
if (v_string_length >= 65528) {
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(4194819)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
@@ -27729,7 +27729,7 @@
(((uint64_t)((6291456 | ((uint32_t)((v_char & 127)))))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
goto label__string_loop_outer__continue;
}
if (v_char == 138) {
@@ -27744,7 +27744,7 @@
(((uint64_t)(6356989)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__CONTINUED__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
goto label__string_loop_outer__continue;
}
status = wuffs_base__make_status(wuffs_json__error__bad_utf_8);
@@ -27768,7 +27768,7 @@
WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(15);
goto label__1__continue;
}
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(4194579)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
@@ -27781,7 +27781,7 @@
}
goto label__goto_parsed_a_leaf_value__break;
} else if (v_class == 2) {
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
@@ -27800,7 +27800,7 @@
}
goto label__outer__continue;
} else if (v_class == 3) {
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
@@ -27830,7 +27830,7 @@
while (v_number_length > 0) {
v_number_length -= 1;
if (iop_a_src > io1_a_src) {
- (iop_a_src--, wuffs_base__make_empty_struct());
+ iop_a_src--;
} else {
status = wuffs_base__make_status(wuffs_json__error__internal_error_inconsistent_i_o);
goto exit;
@@ -27889,7 +27889,7 @@
v_stack_bit = (v_depth & 31);
self->private_data.f_stack[v_stack_byte] |= (((uint32_t)(1)) << v_stack_bit);
v_depth += 1;
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(v_vminor)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
@@ -27897,7 +27897,7 @@
v_expect_after_value = 4164;
goto label__outer__continue;
} else if (v_class == 6) {
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
if (v_depth <= 1) {
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(2101314)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
@@ -27937,7 +27937,7 @@
v_stack_bit = (v_depth & 31);
self->private_data.f_stack[v_stack_byte] &= (4294967295 ^ (((uint32_t)(1)) << v_stack_bit));
v_depth += 1;
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(v_vminor)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
@@ -27945,7 +27945,7 @@
v_expect_after_value = 4356;
goto label__outer__continue;
} else if (v_class == 8) {
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
if (v_depth <= 1) {
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(2101282)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
@@ -27979,7 +27979,7 @@
status = wuffs_base__make_status(wuffs_json__error__internal_error_inconsistent_i_o);
goto exit;
}
- (iop_a_src += 5, wuffs_base__make_empty_struct());
+ iop_a_src += 5;
goto label__goto_parsed_a_leaf_value__break;
} else if (v_match == 1) {
status = wuffs_base__make_status(wuffs_base__suspension__short_read);
@@ -27996,7 +27996,7 @@
status = wuffs_base__make_status(wuffs_json__error__internal_error_inconsistent_i_o);
goto exit;
}
- (iop_a_src += 4, wuffs_base__make_empty_struct());
+ iop_a_src += 4;
goto label__goto_parsed_a_leaf_value__break;
} else if (v_match == 1) {
status = wuffs_base__make_status(wuffs_base__suspension__short_read);
@@ -28013,7 +28013,7 @@
status = wuffs_base__make_status(wuffs_json__error__internal_error_inconsistent_i_o);
goto exit;
}
- (iop_a_src += 4, wuffs_base__make_empty_struct());
+ iop_a_src += 4;
goto label__goto_parsed_a_leaf_value__break;
} else if (v_match == 1) {
status = wuffs_base__make_status(wuffs_base__suspension__short_read);
@@ -28157,7 +28157,7 @@
if (v_c != 45) {
} else {
v_n += 1;
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
if (((uint64_t)(io2_a_src - iop_a_src)) <= 0) {
if ( ! (a_src && a_src->meta.closed)) {
v_n |= 768;
@@ -28169,7 +28169,7 @@
}
if (v_c == 48) {
v_n += 1;
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
} else {
if (a_src) {
a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
@@ -28196,7 +28196,7 @@
goto label__goto_done__break;
}
v_n += 1;
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
v_floating_point = 128;
if (a_src) {
a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
@@ -28224,7 +28224,7 @@
goto label__goto_done__break;
}
v_n += 1;
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
v_floating_point = 128;
if (((uint64_t)(io2_a_src - iop_a_src)) <= 0) {
if ( ! (a_src && a_src->meta.closed)) {
@@ -28241,7 +28241,7 @@
goto label__goto_done__break;
}
v_n += 1;
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
}
if (a_src) {
a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
@@ -28297,7 +28297,7 @@
goto label__0__break;
}
v_n += 1;
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
}
label__0__break:;
if (v_n == a_n) {
@@ -28369,7 +28369,7 @@
v_c = wuffs_base__peek_u8be__no_bounds_check(iop_a_src);
if ((v_c == 30) && self->private_impl.f_allow_leading_ars) {
self->private_impl.f_allow_leading_ars = false;
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(0)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
@@ -28386,7 +28386,7 @@
v_u = ((uint32_t)(wuffs_base__peek_u24le__no_bounds_check(iop_a_src)));
if (v_u == 12565487) {
self->private_impl.f_allow_leading_ubom = false;
- (iop_a_src += 3, wuffs_base__make_empty_struct());
+ iop_a_src += 3;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(0)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(3)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
@@ -28477,7 +28477,7 @@
}
v_c2 = wuffs_base__peek_u16le__no_bounds_check(iop_a_src);
if ((v_c2 == 10799) && self->private_impl.f_quirks[11]) {
- (iop_a_src += 2, wuffs_base__make_empty_struct());
+ iop_a_src += 2;
v_length = 2;
label__comment_block__continue:;
while (true) {
@@ -28506,7 +28506,7 @@
}
v_c2 = wuffs_base__peek_u16le__no_bounds_check(iop_a_src);
if (v_c2 == 12074) {
- (iop_a_src += 2, wuffs_base__make_empty_struct());
+ iop_a_src += 2;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(2)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)((v_length + 2))) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
@@ -28514,7 +28514,7 @@
status = wuffs_base__make_status(NULL);
goto ok;
}
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
if (v_length >= 65533) {
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(2)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
@@ -28527,7 +28527,7 @@
}
}
} else if ((v_c2 == 12079) && self->private_impl.f_quirks[12]) {
- (iop_a_src += 2, wuffs_base__make_empty_struct());
+ iop_a_src += 2;
v_length = 2;
label__comment_line__continue:;
while (true) {
@@ -28556,7 +28556,7 @@
}
v_c = wuffs_base__peek_u8be__no_bounds_check(iop_a_src);
if (v_c == 10) {
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(4)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)((v_length + 1))) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
@@ -28564,7 +28564,7 @@
status = wuffs_base__make_status(NULL);
goto ok;
}
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
if (v_length >= 65533) {
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(4)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
@@ -28666,7 +28666,7 @@
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(10485792)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(8)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- (iop_a_src += 8, wuffs_base__make_empty_struct());
+ iop_a_src += 8;
status = wuffs_base__make_status(NULL);
goto ok;
}
@@ -28678,14 +28678,14 @@
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(10485792)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(3)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- (iop_a_src += 3, wuffs_base__make_empty_struct());
+ iop_a_src += 3;
status = wuffs_base__make_status(NULL);
goto ok;
} else if ((v_c4 | 2105376) == 7233902) {
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(10485888)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(3)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- (iop_a_src += 3, wuffs_base__make_empty_struct());
+ iop_a_src += 3;
status = wuffs_base__make_status(NULL);
goto ok;
} else if ((v_c4 & 255) == 43) {
@@ -28712,7 +28712,7 @@
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)((10485760 | (((uint32_t)(32)) >> v_neg)))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(9)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- (iop_a_src += 9, wuffs_base__make_empty_struct());
+ iop_a_src += 9;
status = wuffs_base__make_status(NULL);
goto ok;
}
@@ -28724,14 +28724,14 @@
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)((10485760 | (((uint32_t)(32)) >> v_neg)))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(4)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- (iop_a_src += 4, wuffs_base__make_empty_struct());
+ iop_a_src += 4;
status = wuffs_base__make_status(NULL);
goto ok;
} else if ((v_c4 | 2105376) == 7233902) {
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)((10485760 | (((uint32_t)(128)) >> v_neg)))) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
(((uint64_t)(4)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
- (iop_a_src += 4, wuffs_base__make_empty_struct());
+ iop_a_src += 4;
status = wuffs_base__make_status(NULL);
goto ok;
}
@@ -28868,7 +28868,7 @@
status = wuffs_base__make_status(NULL);
goto ok;
}
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
if ((v_whitespace_length >= 65534) || (v_c == self->private_impl.f_trailer_stop)) {
*iop_a_dst++ = wuffs_base__make_token(
(((uint64_t)(0)) << WUFFS_BASE__TOKEN__VALUE_MINOR__SHIFT) |
@@ -31104,10 +31104,10 @@
v_c.len = 4;
uint8_t* i_end0_c = v_c.ptr + (((i_slice_c.len - (size_t)(v_c.ptr - i_slice_c.ptr)) / 4) * 4);
while (v_c.ptr < i_end0_c) {
- (v_x128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u32le__no_bounds_check(v_c.ptr))), wuffs_base__make_empty_struct());
+ v_x128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u32le__no_bounds_check(v_c.ptr)));
v_x128 = _mm_add_epi8(v_x128, v_a128);
v_a128 = v_x128;
- (wuffs_base__poke_u32le__no_bounds_check(v_c.ptr, ((uint32_t)(_mm_cvtsi128_si32(v_x128)))), wuffs_base__make_empty_struct());
+ wuffs_base__poke_u32le__no_bounds_check(v_c.ptr, ((uint32_t)(_mm_cvtsi128_si32(v_x128))));
v_c.ptr += 4;
}
v_c.len = 0;
@@ -31144,10 +31144,10 @@
uint8_t* i_end0_c = v_c.ptr + (((i_slice_c.len - (size_t)(v_c.ptr - i_slice_c.ptr)) / 4) * 4);
while (v_c.ptr < i_end0_c) {
v_p128 = _mm_avg_epu8(_mm_and_si128(v_a128, v_k128), v_b128);
- (v_x128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u32le__no_bounds_check(v_c.ptr))), wuffs_base__make_empty_struct());
+ v_x128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u32le__no_bounds_check(v_c.ptr)));
v_x128 = _mm_add_epi8(v_x128, v_p128);
v_a128 = v_x128;
- (wuffs_base__poke_u32le__no_bounds_check(v_c.ptr, ((uint32_t)(_mm_cvtsi128_si32(v_x128)))), wuffs_base__make_empty_struct());
+ wuffs_base__poke_u32le__no_bounds_check(v_c.ptr, ((uint32_t)(_mm_cvtsi128_si32(v_x128))));
v_c.ptr += 4;
}
v_c.len = 0;
@@ -31164,13 +31164,13 @@
v_p.len = 4;
uint8_t* i_end0_c = v_c.ptr + (((i_slice_c.len - (size_t)(v_c.ptr - i_slice_c.ptr)) / 4) * 4);
while (v_c.ptr < i_end0_c) {
- (v_b128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u32le__no_bounds_check(v_p.ptr))), wuffs_base__make_empty_struct());
+ v_b128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u32le__no_bounds_check(v_p.ptr)));
v_p128 = _mm_avg_epu8(v_a128, v_b128);
v_p128 = _mm_sub_epi8(v_p128, _mm_and_si128(v_k128, _mm_xor_si128(v_a128, v_b128)));
- (v_x128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u32le__no_bounds_check(v_c.ptr))), wuffs_base__make_empty_struct());
+ v_x128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u32le__no_bounds_check(v_c.ptr)));
v_x128 = _mm_add_epi8(v_x128, v_p128);
v_a128 = v_x128;
- (wuffs_base__poke_u32le__no_bounds_check(v_c.ptr, ((uint32_t)(_mm_cvtsi128_si32(v_x128)))), wuffs_base__make_empty_struct());
+ wuffs_base__poke_u32le__no_bounds_check(v_c.ptr, ((uint32_t)(_mm_cvtsi128_si32(v_x128))));
v_c.ptr += 4;
v_p.ptr += 4;
}
@@ -31216,7 +31216,7 @@
v_p.len = 4;
uint8_t* i_end0_c = v_c.ptr + wuffs_base__iterate_total_advance((i_slice_c.len - (size_t)(v_c.ptr - i_slice_c.ptr)), 4, 3);
while (v_c.ptr < i_end0_c) {
- (v_b128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u32le__no_bounds_check(v_p.ptr))), wuffs_base__make_empty_struct());
+ v_b128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u32le__no_bounds_check(v_p.ptr)));
v_b128 = _mm_unpacklo_epi8(v_b128, v_z128);
v_pa128 = _mm_sub_epi16(v_b128, v_c128);
v_pb128 = _mm_sub_epi16(v_a128, v_c128);
@@ -31226,13 +31226,13 @@
v_pc128 = _mm_abs_epi16(v_pc128);
v_smallest128 = _mm_min_epi16(v_pc128, _mm_min_epi16(v_pb128, v_pa128));
v_p128 = _mm_blendv_epi8(_mm_blendv_epi8(v_c128, v_b128, _mm_cmpeq_epi16(v_smallest128, v_pb128)), v_a128, _mm_cmpeq_epi16(v_smallest128, v_pa128));
- (v_x128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u32le__no_bounds_check(v_c.ptr))), wuffs_base__make_empty_struct());
+ v_x128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u32le__no_bounds_check(v_c.ptr)));
v_x128 = _mm_unpacklo_epi8(v_x128, v_z128);
v_x128 = _mm_add_epi8(v_x128, v_p128);
v_a128 = v_x128;
v_c128 = v_b128;
v_x128 = _mm_packus_epi16(v_x128, v_x128);
- (wuffs_base__poke_u24le__no_bounds_check(v_c.ptr, ((uint32_t)(_mm_cvtsi128_si32(v_x128)))), wuffs_base__make_empty_struct());
+ wuffs_base__poke_u24le__no_bounds_check(v_c.ptr, ((uint32_t)(_mm_cvtsi128_si32(v_x128))));
v_c.ptr += 3;
v_p.ptr += 3;
}
@@ -31240,7 +31240,7 @@
v_p.len = 3;
uint8_t* i_end1_c = v_c.ptr + (((i_slice_c.len - (size_t)(v_c.ptr - i_slice_c.ptr)) / 3) * 3);
while (v_c.ptr < i_end1_c) {
- (v_b128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u24le__no_bounds_check(v_p.ptr))), wuffs_base__make_empty_struct());
+ v_b128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u24le__no_bounds_check(v_p.ptr)));
v_b128 = _mm_unpacklo_epi8(v_b128, v_z128);
v_pa128 = _mm_sub_epi16(v_b128, v_c128);
v_pb128 = _mm_sub_epi16(v_a128, v_c128);
@@ -31250,11 +31250,11 @@
v_pc128 = _mm_abs_epi16(v_pc128);
v_smallest128 = _mm_min_epi16(v_pc128, _mm_min_epi16(v_pb128, v_pa128));
v_p128 = _mm_blendv_epi8(_mm_blendv_epi8(v_c128, v_b128, _mm_cmpeq_epi16(v_smallest128, v_pb128)), v_a128, _mm_cmpeq_epi16(v_smallest128, v_pa128));
- (v_x128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u24le__no_bounds_check(v_c.ptr))), wuffs_base__make_empty_struct());
+ v_x128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u24le__no_bounds_check(v_c.ptr)));
v_x128 = _mm_unpacklo_epi8(v_x128, v_z128);
v_x128 = _mm_add_epi8(v_x128, v_p128);
v_x128 = _mm_packus_epi16(v_x128, v_x128);
- (wuffs_base__poke_u24le__no_bounds_check(v_c.ptr, ((uint32_t)(_mm_cvtsi128_si32(v_x128)))), wuffs_base__make_empty_struct());
+ wuffs_base__poke_u24le__no_bounds_check(v_c.ptr, ((uint32_t)(_mm_cvtsi128_si32(v_x128))));
v_c.ptr += 3;
v_p.ptr += 3;
}
@@ -31299,7 +31299,7 @@
v_p.len = 4;
uint8_t* i_end0_c = v_c.ptr + (((i_slice_c.len - (size_t)(v_c.ptr - i_slice_c.ptr)) / 4) * 4);
while (v_c.ptr < i_end0_c) {
- (v_b128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u32le__no_bounds_check(v_p.ptr))), wuffs_base__make_empty_struct());
+ v_b128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u32le__no_bounds_check(v_p.ptr)));
v_b128 = _mm_unpacklo_epi8(v_b128, v_z128);
v_pa128 = _mm_sub_epi16(v_b128, v_c128);
v_pb128 = _mm_sub_epi16(v_a128, v_c128);
@@ -31309,13 +31309,13 @@
v_pc128 = _mm_abs_epi16(v_pc128);
v_smallest128 = _mm_min_epi16(v_pc128, _mm_min_epi16(v_pb128, v_pa128));
v_p128 = _mm_blendv_epi8(_mm_blendv_epi8(v_c128, v_b128, _mm_cmpeq_epi16(v_smallest128, v_pb128)), v_a128, _mm_cmpeq_epi16(v_smallest128, v_pa128));
- (v_x128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u32le__no_bounds_check(v_c.ptr))), wuffs_base__make_empty_struct());
+ v_x128 = _mm_cvtsi32_si128((int)(wuffs_base__peek_u32le__no_bounds_check(v_c.ptr)));
v_x128 = _mm_unpacklo_epi8(v_x128, v_z128);
v_x128 = _mm_add_epi8(v_x128, v_p128);
v_a128 = v_x128;
v_c128 = v_b128;
v_x128 = _mm_packus_epi16(v_x128, v_x128);
- (wuffs_base__poke_u32le__no_bounds_check(v_c.ptr, ((uint32_t)(_mm_cvtsi128_si32(v_x128)))), wuffs_base__make_empty_struct());
+ wuffs_base__poke_u32le__no_bounds_check(v_c.ptr, ((uint32_t)(_mm_cvtsi128_si32(v_x128))));
v_c.ptr += 4;
v_p.ptr += 4;
}
@@ -33364,7 +33364,7 @@
}
}
v_c = wuffs_base__peek_u8be__no_bounds_check(iop_a_src);
- (iop_a_src += 1, wuffs_base__make_empty_struct());
+ iop_a_src += 1;
}
if ((v_c & 128) == 0) {
v_src[0] = 0;