forked from OSchip/llvm-project
Document some small- to mid-size open C++ projects
llvm-svn: 67398
This commit is contained in:
parent
63b4ff6aad
commit
7262d1c003
|
@ -40,11 +40,6 @@ checks in some cases, and it would be very interesting to test code in this mode
|
|||
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 @@ improve the quality of clang by self-testing. Some examples:
|
|||
</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
|
||||
|
|
Loading…
Reference in New Issue