[cfe-commits] r67398 - /cfe/trunk/www/OpenProjects.html

Douglas Gregor dgregor at apple.com
Fri Mar 20 13:37:45 PDT 2009


Author: dgregor
Date: Fri Mar 20 15:37:36 2009
New Revision: 67398

URL: http://llvm.org/viewvc/llvm-project?rev=67398&view=rev
Log:
Document some small- to mid-size open C++ projects

Modified:
    cfe/trunk/www/OpenProjects.html

Modified: cfe/trunk/www/OpenProjects.html
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/www/OpenProjects.html?rev=67398&r1=67397&r2=67398&view=diff

==============================================================================
--- cfe/trunk/www/OpenProjects.html (original)
+++ cfe/trunk/www/OpenProjects.html Fri Mar 20 15:37:36 2009
@@ -40,11 +40,6 @@
 for certain crowds of people.  Because the inserted code is coming from clang,
 the "abort" message could be very detailed about exactly what went wrong.</li>
 
-<li><b>Continue work on C++ support</b>: Implementing all of C++ is a very big
-job, but there are lots of little pieces that can be picked off and implemented.
-See the <a href="cxx_status.html">C++ status report page</a> to find out what is
-missing and what is already at least partially supported.</li>
-
 <li><b>Improve target support</b>: The current target interfaces are heavily
 stubbed out and need to be implemented fully.  See the FIXME's in TargetInfo.
 Additionally, the actual target implementations (instances of TargetInfoImpl)
@@ -88,6 +83,23 @@
 </ul>
 </li>
 
+<li><b>Continue work on C++ support</b>: Implementing all of C++ is a very big
+job, but there are lots of little pieces that can be picked off and implemented. Here are some small- to mid-sized C++ implementation projects:
+<ul>
+  <li>Using declarations: These are completely unsupported at the moment.</li>
+  <li>Type-checking for the conditional operator (? :): this currently follows C semantics, not C++ semantics.</li>
+  <li>Type-checking for explicit conversions: currently follows C semantics, not C++ semantics.</li>
+  <li>Type-checking for copy assignment: Clang parses overloaded copy-assignment operators, but they aren't used as part of assignment syntax ("a = b").</li>
+  <li>Qualified member references: C++ supports qualified member references such as <code>x->Base::foo</code>, but Clang has no parsing or semantic analysis for them.</li>
+  <li>Virtual functions: Clang parses <code>virtual</code> and attaches it to the AST. However, it does not determine whether a given function overrides a virtual function in a base class, nor does it determine when a class is abstract.</li>
+  <li>Implicit definitions of special member functions: Clang implicitly declares the various special member functions (default constructor, copy constructor, copy assignment operator, destructor) when necessary, but is not yet able to provide definitions for these functions.</li>
+  <li>Parsing and AST representations of friend classes and functions</li>
+  <li>AST representation for implicit C++ conversions: implicit conversions that involve non-trivial operations (e.g., invoking a user-defined conversion function, performing a base-to-derived or derived-to-base conversion) need explicit representation in Clang's AST.</li>
+</ul>
+  
+Also, see the <a href="cxx_status.html">C++ status report page</a> to
+find out what is missing and what is already at least partially
+supported.</li>
 </ul>
 
 <p>If you hit a bug with clang, it is very useful for us if you reduce the code





More information about the cfe-commits mailing list