<html>
    <head>
      <base href="https://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 --- - Clang's unused variable warnings somewhat lame compared to gcc"
   href="https://llvm.org/bugs/show_bug.cgi?id=24980">24980</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Clang's unused variable warnings somewhat lame compared to gcc
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </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>Frontend
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedclangbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>chisophugis@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>r248747 fixed an unused variable caught by GCC, but missed by clang.

The line that was detected by GCC as unused was:

    ArrayRef<uint8_t> Jmp = {0xff, 0x25};


However, clang even fails for trivial cases like this:

struct Foo {
  Foo() {}
};

void foo() {
  Foo Jmp;
}

I think what's happening here is that GCC is getting quite a bit of analysis
here "for free" since it isn't maintaining the clear frontend/optimizer
separation. This suggests that bringing clang up to parity for this unused var
detection is actually going to be quite difficult, as many analyses will have
to be replicated in the frontend. Not to mention that it is going to cost us a
fair amount of runtime.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>