         // if no corner is intersected, they will just zero the AA.
         vec4 start_corner = vec4(vec2(1.0e6), vec2(1.0));
         vec4 end_corner = vec4(vec2(1.0e6), vec2(1.0));
+
+        #define SET_CORNER(corner, info) corner = info
 
         // Clip against the corner half-spaces. We have already computed the
         // corner half-spaces in the vertex shader.

        vec2 n_br = vClipParams.zz;
        vec2 n_bl = vec2(-vClipParams.z, vClipParams.z);

        bool start_corner = false;
        bool end_corner = false;

        // Clip against the corner half-spaces.
        CLIP_CORNER(corner_tl, n_tl, true);
        CLIP_CORNER(corner_tr, n_tr, true);
        CLIP_CORNER(corner_br, n_br, true);
        CLIP_CORNER(corner_bl, n_bl, true);

        // Later we need to calculate distance AA for both corners and the
        // outer bounding rect. For the fast-path, this is all done inside

        float scale = -dot(local_step, (normal));                             \
        if (scale >= 0.0) {                                                   \
            if (dist > opaque_start * scale) {                                \
                SET_CORNER(start_corner, info);                               \
                start_plane = vec4(offset, normal);                           \
                float inv_scale = recip(max(scale, 1.0e-6));                  \
                opaque_start = dist * inv_scale;                              \
