r181967 - Start a page tracking which C++ defect reports have been implemented in Clang.

Douglas Gregor dgregor at apple.com
Wed May 15 20:02:10 PDT 2013



Sent from my iPhone

On May 15, 2013, at 6:23 PM, Richard Smith <richard-llvm at metafoo.co.uk> wrote:

> Author: rsmith
> Date: Wed May 15 20:23:30 2013
> New Revision: 181967
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=181967&view=rev
> Log:
> Start a page tracking which C++ defect reports have been implemented in Clang.
> The page is generated from a text file listing DR numbers and implementation
> status, plus a copy of the cwg_index.html from the WG21 website. Recipe:
> 
>  $ wget http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_index.html
>  $ ./make_cxx_dr_status >! cxx_dr_status.html
> 
> The intent here is to go through all the DRs, add tests for each one, then mark
> them as done once such tests are committed and passing. I've not linked to this
> page from anywhere, since it doesn't contain any useful information yet.

Wow. This is ambitious. I presume we'll have some standard file names and locations for the tests, so at least the bookkeeping will be automated?

> Added:
>    cfe/trunk/www/cxx_dr_status
>    cfe/trunk/www/cxx_dr_status.html
>    cfe/trunk/www/make_cxx_dr_status   (with props)
> 
> Added: cfe/trunk/www/cxx_dr_status
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/www/cxx_dr_status?rev=181967&view=auto
> ==============================================================================
>    (empty)
> 
> Added: cfe/trunk/www/cxx_dr_status.html
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/www/cxx_dr_status.html?rev=181967&view=auto
> ==============================================================================
> --- cfe/trunk/www/cxx_dr_status.html (added)
> +++ cfe/trunk/www/cxx_dr_status.html Wed May 15 20:23:30 2013
> @@ -0,0 +1,9759 @@
> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
> +          "http://www.w3.org/TR/html4/strict.dtd">
> +<html>
> +<head>
> +  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
> +  <title>Clang - C++ Defect Report Status</title>
> +  <link type="text/css" rel="stylesheet" href="menu.css">
> +  <link type="text/css" rel="stylesheet" href="content.css">
> +  <style type="text/css">
> +    .none { background-color: #FFCCCC }
> +    .partial { background-color: #FFE0B0 }
> +    .svn  { background-color: #FFFF99 }
> +    .full { background-color: #CCFF99 }
> +    .na { background-color: #DDDDDD }
> +    .open * { color: #AAAAAA }
> +    //.open { filter: opacity(0.2) }
> +    span:target { background-color: #FFFFBB; outline: #DDDD55 solid thin; }
> +    th { background-color: #FFDDAA }
> +  </style>
> +</head>
> +<body>
> +
> +<!--#include virtual="menu.html.incl"-->
> +
> +<div id="content">
> +
> +<!--*************************************************************************-->
> +<h1>C++ Defect Report Support in Clang</h1>
> +<!--*************************************************************************-->
> +<p>Last updated: $Date$</p>
> +
> +<h2 id="cxxdr">C++ defect report implementation status</h2>
> +
> +<p>This page tracks which C++ defect reports are implemented within Clang.</p>
> +
> +<table width="689" border="1" cellspacing="0">
> +  <tr>
> +    <th>Number</th>
> +    <th>Status</th>
> +    <th>Issue title</th>
> +    <th>Available in Clang?</th>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1">1</a></td>
> +    <td>TC1</td>
> +    <td>What if two using-declarations refer to the same function but the declarations introduce different default-arguments?</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr class="open">
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#2">2</a></td>
> +    <td>drafting</td>
> +    <td>How can dependent names be used in member declarations that appear outside of the class template definition?</td>
> +    <td align="center">Not resolved</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#3">3</a></td>
> +    <td>NAD</td>
> +    <td>The template compilation model rules render some explicit specialization declarations not visible during instantiation</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#4">4</a></td>
> +    <td>CD1</td>
> +    <td>Does extern "C" affect the linkage of function names with internal linkage?</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#5">5</a></td>
> +    <td>CD1</td>
> +    <td>CV-qualifiers and type conversions</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr class="open">
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#6">6</a></td>
> +    <td>open</td>
> +    <td>Should the optimization that allows a class object to alias another object also allow the case of a parameter in an inline function to alias its argument?</td>
> +    <td align="center">Not resolved</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#7">7</a></td>
> +    <td>NAD</td>
> +    <td>Can a class with a private virtual base class be derived from?</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#8">8</a></td>
> +    <td>CD1</td>
> +    <td>Access to template arguments used in a function return type and in the nested name specifier</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#9">9</a></td>
> +    <td>CD1</td>
> +    <td>Clarification of access to base class members</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#10">10</a></td>
> +    <td>CD1</td>
> +    <td>Can a nested class access its own class name as a qualified name if it is a private member of the enclosing class?</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#11">11</a></td>
> +    <td>CD1</td>
> +    <td>How do the keywords typename/template interact with using-declarations?</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#12">12</a></td>
> +    <td>dup</td>
> +    <td>Default arguments on different declarations for the same function and the Koenig lookup</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr class="open">
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#13">13</a></td>
> +    <td>extension</td>
> +    <td>extern "C" for Parameters of Function Templates</td>
> +    <td align="center">Not resolved</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#14">14</a></td>
> +    <td>NAD</td>
> +    <td>extern "C" functions and declarations in different namespaces</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#15">15</a></td>
> +    <td>dup</td>
> +    <td>Default arguments for parameters of function templates</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#16">16</a></td>
> +    <td>CD1</td>
> +    <td>Access to members of indirect private base classes</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#17">17</a></td>
> +    <td>NAD</td>
> +    <td>Footnote 99 should discuss the naming class when describing members that can be accessed from friends</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#18">18</a></td>
> +    <td>NAD</td>
> +    <td>f(TYPE) where TYPE is void should be allowed</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#19">19</a></td>
> +    <td>NAD</td>
> +    <td>Clarify protected member access</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#20">20</a></td>
> +    <td>TC1</td>
> +    <td>Some clarifications needed for 12.8 para 15</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#21">21</a></td>
> +    <td>TC1</td>
> +    <td>Can a default argument for a template parameter appear in a friend declaration?</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#22">22</a></td>
> +    <td>TC1</td>
> +    <td>Template parameter with a default argument that refers to itself</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#23">23</a></td>
> +    <td>NAD</td>
> +    <td>Some questions regarding partial ordering of function templates</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#24">24</a></td>
> +    <td>TC1</td>
> +    <td>Errors in examples in 14.7.3</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#25">25</a></td>
> +    <td>TC1</td>
> +    <td>Exception specifications and pointers to members</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#26">26</a></td>
> +    <td>NAD</td>
> +    <td>Copy constructors and default arguments</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#27">27</a></td>
> +    <td>NAD</td>
> +    <td>Overload ambiguities for builtin ?: prototypes</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#28">28</a></td>
> +    <td>CD1</td>
> +    <td>'exit', 'signal' and static object destruction</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#29">29</a></td>
> +    <td>CD1</td>
> +    <td>Linkage of locally declared functions</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#30">30</a></td>
> +    <td>TC1</td>
> +    <td>Valid uses of "<TT>::template</TT>"</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#31">31</a></td>
> +    <td>NAD</td>
> +    <td>Looking up new/delete</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#32">32</a></td>
> +    <td>TC1</td>
> +    <td>Clarification of explicit instantiation of non-exported templates</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#33">33</a></td>
> +    <td>TC1</td>
> +    <td>Argument dependent lookup and overloaded functions</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#34">34</a></td>
> +    <td>NAD</td>
> +    <td>Argument dependent lookup and points of instantiation</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#35">35</a></td>
> +    <td>TC1</td>
> +    <td>Definition of default-initialization</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr class="open">
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#36">36</a></td>
> +    <td>open</td>
> +    <td><I>using-declaration</I>s in multiple-declaration contexts</td>
> +    <td align="center">Not resolved</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#37">37</a></td>
> +    <td>NAD</td>
> +    <td>When is uncaught_exception() true?</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#38">38</a></td>
> +    <td>TC1</td>
> +    <td>Explicit template arguments and operator functions</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#39">39</a></td>
> +    <td>CD1</td>
> +    <td>Conflicting ambiguity rules</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#40">40</a></td>
> +    <td>TC1</td>
> +    <td>Syntax of <I>declarator-id</I></td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#41">41</a></td>
> +    <td>TC1</td>
> +    <td>Clarification of lookup of names after declarator-id</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#42">42</a></td>
> +    <td>NAD</td>
> +    <td>Redefining names from base classes</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#43">43</a></td>
> +    <td>TC1</td>
> +    <td>Copying base classes (PODs) using memcpy</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#44">44</a></td>
> +    <td>CD1</td>
> +    <td>Member specializations</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#45">45</a></td>
> +    <td>CD1</td>
> +    <td>Access to nested classes</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#46">46</a></td>
> +    <td>NAD</td>
> +    <td>Explicit instantiation of member templates</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#47">47</a></td>
> +    <td>NAD</td>
> +    <td>Template friend issues</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#48">48</a></td>
> +    <td>TC1</td>
> +    <td>Definitions of unused static members</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#49">49</a></td>
> +    <td>TC1</td>
> +    <td>Restriction on non-type, non-value template arguments</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#50">50</a></td>
> +    <td>NAD</td>
> +    <td>Converting pointer to incomplete type to same type</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#51">51</a></td>
> +    <td>TC1</td>
> +    <td>Overloading and user-defined conversions</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#52">52</a></td>
> +    <td>TC1</td>
> +    <td>Non-static members, member selection and access checking</td>
> +    <td class="none" align="center">Unknown</td>
> +  </tr>
> +  <tr>
> +    <td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#53">53</a></td>
> +    <td>TC1</td>
> +    <td>Lvalue-to



More information about the cfe-commits mailing list