Skip to content

Possible short-circuit miscompile for while loop guard #3830

Closed
@burg

Description

@burg

In the code linked below, the LHS of an && expression is used as an array bounds guard for the RHS.

This seems to be miscompiled, such that assigning each subexpression to a local inside the loop works fine, but segfaults occur when putting the whole thing as the while condition.

servo/servo@b0536d7

Activity

nikomatsakis

nikomatsakis commented on Oct 22, 2012

@nikomatsakis
Contributor

Have you tried to minimize this into a standalone function?

burg

burg commented on Oct 23, 2012

@burg
Author

No. I've already spent ~1/2 day bisecting this bug in the last week, and don't have time

On Oct 22, 2012, at 16:41 , Niko Matsakis wrote:

Have you tried to minimize this into a standalone function?


Reply to this email directly or view it on GitHub.

msullivan

msullivan commented on Aug 10, 2013

@msullivan
Contributor

I'm not really sure what to do with this bug. The comment about the bug is still in servo (in src/components/main/layout/util.rs), but the code has changed so that it doesn't look like I could just switch back to the old version... Played around a bit trying to trigger it with small cases, but didn't find anything.

thestinger

thestinger commented on Oct 8, 2013

@thestinger
Contributor

Closing due to the lack of a reproducible test case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-codegenArea: Code generationI-crashIssue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @burg@nikomatsakis@msullivan@thestinger

        Issue actions

          Possible short-circuit miscompile for while loop guard · Issue #3830 · rust-lang/rust