<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </head>
    <body><span class="vcard"><a class="email" href="mailto:richard-llvm@metafoo.co.uk" title="Richard Smith <richard-llvm@metafoo.co.uk>"> <span class="fn">Richard Smith</span></a>
</span> changed
              <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED INVALID - clang failed to compile Objective-C++ code with -fmodules"
   href="http://llvm.org/bugs/show_bug.cgi?id=21626">bug 21626</a>
        <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">Status</td>
           <td>REOPENED
           </td>
           <td>RESOLVED
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Resolution</td>
           <td>---
           </td>
           <td>INVALID
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED INVALID - clang failed to compile Objective-C++ code with -fmodules"
   href="http://llvm.org/bugs/show_bug.cgi?id=21626#c5">Comment # 5</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED INVALID - clang failed to compile Objective-C++ code with -fmodules"
   href="http://llvm.org/bugs/show_bug.cgi?id=21626">bug 21626</a>
              from <span class="vcard"><a class="email" href="mailto:richard-llvm@metafoo.co.uk" title="Richard Smith <richard-llvm@metafoo.co.uk>"> <span class="fn">Richard Smith</span></a>
</span></b>
        <pre>The next problem is with the CoreFoundation module map. Again, this is an Apple
problem not a Clang one. The reason why this "works" with XCode 6.1 is that
-fmodules does nothing in C++ mode there.

Ultimately, the problem is that the module maps you're using have not been made
to work with C++, and they don't.

The point of [extern_c] is twofold: (1) it builds the target module in an
implicit extern "C" context (which affects its semantics in lots of ways), and
(2) it allows the module to be imported in an extern "C" context. You don't
want (2) without (1), because that can lead to silent and hard-to-diagnose
build breaks.</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>