<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Incorrect stepping over Objective-C code with ARC"
   href="http://llvm.org/bugs/show_bug.cgi?id=18660">18660</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Incorrect stepping over Objective-C code with ARC
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>lldb
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>3.2
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Macintosh
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>MacOS X
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>All Bugs
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>lldb-dev@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>dunets.devel@gmail.com
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Environment: Xcode 5.0.2., lldb.


Step to reproduce:

1. Create sample project in Xcode.

2. Enable automatic reference counting (ARC) for some source file.

3. Add the following code to some class in that file:

- (void)method:(id)param
{
    if (param == nil)
    {
        return;
    }

/*************************   
 * Set the breakpoint here
 *************************/    

    // Let param is not nil
    if (param == nil)
    {
        NSLog(@"1. This line is not executed, nothing will be printed, but lldb
shows it as executed");
    }

    // NSLog(@"2. If this line is uncommented, llds steps correctly");
}

4. Set the breakpoint above the second if statement.

5. Call method: with param != nil.

6. Step into the method: and step to the end of the method.


Actual result:

1. lldb indicates, that it steps into the second if statement, though the code
in if statements is not executed.

2. If there is some expression after the second if statement, lldb shows
program execution correctly.

Expected result:

1. Correct stepping.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>