Thread overview
[Issue 8052] Spurious warning when exiting out of a labeled Do-While
Jul 30, 2014
Dragos Carp
Dec 17, 2022
Iain Buclaw
July 28, 2014
https://issues.dlang.org/show_bug.cgi?id=8052

callumenator@gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |callumenator@gmail.com
         Resolution|---                         |WORKSFORME

--- Comment #1 from callumenator@gmail.com ---
No warning given with dmd 2.065, or earlier at 2.061.

--
July 28, 2014
https://issues.dlang.org/show_bug.cgi?id=8052

jiki@red.email.ne.jp changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
                 CC|                            |jiki@red.email.ne.jp
         Resolution|WORKSFORME                  |---
           Severity|normal                      |minor

--- Comment #2 from jiki@red.email.ne.jp ---
No.
'-w' option is required to reproduce, I've missed it.

Anyway, I change the Severity to minor.

--
July 30, 2014
https://issues.dlang.org/show_bug.cgi?id=8052

Dragos Carp <dragoscarp@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dragoscarp@gmail.com

--- Comment #3 from Dragos Carp <dragoscarp@gmail.com> ---
The same bug without label (see bug 13201):

------------------------------

void foo()
{
}

void main()
{
    while (true)
    {
        do
        {
            foo;
            break;
        } while (true);
        break;
    }
}

--
February 10, 2016
https://issues.dlang.org/show_bug.cgi?id=8052

--- Comment #4 from jiki@red.email.ne.jp ---
I hit this again.

The bug seems a careless bit operation.

Location:
  statement.d
    Statement.blockExit()
      BlockExit.visit(DoStatement)

Code:
  if (result == BEbreak) // '==' should be '&'
  ...
  if (result & BEcontinue)
  ...

I wanted to make a PR, but I don't see how the other flags work.

--
December 17, 2022
https://issues.dlang.org/show_bug.cgi?id=8052

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P2                          |P3

--
November 14, 2023
https://issues.dlang.org/show_bug.cgi?id=8052

Steven Schveighoffer <schveiguy@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |schveiguy@gmail.com

--- Comment #5 from Steven Schveighoffer <schveiguy@gmail.com> ---
We have removed the unreachable statement warning

https://github.com/dlang/dmd/pull/15568

I think this should be closed.

--