<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 --- - GCC Compatibility: __final specifier unsupported"
   href="https://llvm.org/bugs/show_bug.cgi?id=28473">28473</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>GCC Compatibility: __final specifier unsupported
          </td>
        </tr>

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

        <tr>
          <th>Version</th>
          <td>3.8
          </td>
        </tr>

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

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

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

        <tr>
          <th>Severity</th>
          <td>enhancement
          </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>erich.keane@intel.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>C++11 added support for "final" as a specifier.  Prior to that, G++ supported
"__final", which has the same affect, but was allowed without warning in
pre-C++11.  ICC Mirrors GCC's behavior.

Clang currently ALLOWS "final" in pre-C++11 (with a warning), so I believe that
for the sake of compatibility, Clang should ALSO support "__final".  

A simple test case:
class Foo __final {int a; };

I have a patch that I'm preparing to make these two aliases of each other if
there is interest in fixing this bug.  If so, I question whether we should keep
it having the same behavior as "final" (warn always), or if we should suppress
the warning to reproduce GCC's behavior.  My current patch (currently testing
myself) does the former, but I believe with some additional work I could do the
latter.</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>