From: Douglas Gregor Date: Tue, 12 May 2009 17:55:28 +0000 (+0000) Subject: Fill in more C++ status. We're now using the check mark to mean, X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0755402a12998a186c78fe10dea40238afb85440;p=clang Fill in more C++ status. We're now using the check mark to mean, "complete, and we have tests for every paragraph". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71564 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/www/cxx_status.html b/www/cxx_status.html index f69f84e9f7..c608629076 100644 --- a/www/cxx_status.html +++ b/www/cxx_status.html @@ -54,7 +54,8 @@ of support for a given section: Some examples work Many examples work Nearly everything works - Complete! + Complete + Complete (with tests for each paragraph) @@ -63,6 +64,7 @@ of support for a given section: + ✓ @@ -104,7 +106,7 @@ welcome!

2 [lex] - ✓ + N/A N/A N/A @@ -128,7 +130,7 @@ welcome!

  2.3 [lex.trigraph] - ✓ + N/A N/A N/A @@ -136,7 +138,7 @@ welcome!

  2.4 [lex.pptoken] - ✓ + N/A N/A N/A @@ -144,7 +146,7 @@ welcome!

  2.5 [lex.digraph] - ✓ + N/A N/A N/A @@ -152,7 +154,7 @@ welcome!

  2.6 [lex.token] - ✓ + N/A N/A N/A @@ -168,7 +170,7 @@ welcome!

  2.8 [lex.header] - ✓ + N/A N/A N/A @@ -176,7 +178,7 @@ welcome!

  2.9 [lex.ppnumber] - ✓ + N/A N/A N/A @@ -192,7 +194,7 @@ welcome!

  2.11 [lex.key] - ✓ + N/A N/A N/A @@ -200,7 +202,7 @@ welcome!

  2.12 [lex.operators] - ✓ + N/A N/A N/A @@ -208,7 +210,7 @@ welcome!

  2.13 [lex.literal] - ✓ + N/A N/A N/A @@ -216,7 +218,7 @@ welcome!

    2.13.1 [lex.icon] - ✓ + N/A N/A N/A @@ -232,7 +234,7 @@ welcome!

    2.13.3 [lex.fcon] - ✓ + N/A N/A N/A @@ -248,7 +250,7 @@ welcome!

    2.13.5 [lex.bool] - ✓ + N/A N/A N/A @@ -282,7 +284,7 @@ welcome!

  3.3 [basic.scope] N/A N/A - ✓ + N/A @@ -290,7 +292,7 @@ welcome!

    3.3.1 [basic.scope.pdecl] N/A N/A - ✓ + N/A @@ -298,7 +300,7 @@ welcome!

    3.3.2 [basic.scope.local] N/A N/A - ✓ + N/A @@ -306,7 +308,7 @@ welcome!

    3.3.3 [basic.scope.proto] N/A N/A - ✓ + N/A @@ -314,7 +316,7 @@ welcome!

    3.3.4 [basic.funscope] N/A N/A - ✓ + N/A @@ -324,7 +326,7 @@ welcome!

    3.3.7 [basic.scope.hiding] N/A N/A - ✓ + N/A @@ -332,7 +334,7 @@ welcome!

  3.4 [basic.lookup] N/A N/A - ✓ + N/A @@ -399,105 +401,105 @@ welcome!

  3.10 [basic.lval] 4 [conv] - ✓ - ✓ - ✓ + + +   4.1 [conv.lval] - ✓ - ✓ + +   4.2 [conv.array] - ✓ - ✓ - ✓ + + +   4.3 [conv.func] - ✓ - ✓ + +   4.4 [conv.qual] - ✓ - ✓ - ✓ + + +   4.5 [conv.prom] - ✓ - ✓ - ✓ + + +   4.6 [conv.fpprom] - ✓ - ✓ - ✓ + + +   4.7 [conv.integral] - ✓ - ✓ - ✓ + + +   4.8 [conv.double] - ✓ - ✓ - ✓ + + +   4.9 [conv.fpint] - ✓ - ✓ - ✓ + + +   4.10 [conv.ptr] - ✓ - ✓ - ✓ + + +   4.11 [conv.mem] - ✓ - ✓ - ✓ + + +   4.12 [conv.bool] - ✓ - ✓ - ✓ + + + @@ -505,7 +507,7 @@ welcome!

5 [expr] N/A N/A - ✓ + @@ -520,24 +522,24 @@ welcome!

  5.2 [expr.post]     5.2.1 [expr.sub] - ✓ - ✓ - ✓ + + +     5.2.2 [expr.call] - ✓ - ✓ + +     5.2.3 [expr.type.conv] - ✓ - ✓ + + Only between non-class types @@ -552,7 +554,7 @@ welcome!

    5.2.5 [expr.ref] - ✓ + @@ -560,49 +562,49 @@ welcome!

    5.2.6 [expr.post.incr] - ✓ - ✓ - ✓ + + +     5.2.7 [expr.dynamic.cast] - ✓ - ✓ - ✓ + + +     5.2.8 [expr.typeid] - ✓ - ✓ - ✓ + + +     5.2.9 [expr.static.cast] - ✓ - ✓ + + Some custom conversions don't work.     5.2.10 [expr.reinterpret.cast] - ✓ - ✓ - ✓ + + +     5.2.11 [expr.const.cast] - ✓ - ✓ - ✓ + + + @@ -610,95 +612,95 @@ welcome!

    5.3.1 [expr.unary.op]       5.3.1p1 Unary * - ✓ - ✓ - ✓ + + +       5.3.1p2-5 Unary & - ✓ - ✓ - ✓ + + +       5.3.1p6 Unary + - ✓ - ✓ - ✓ + + +       5.3.1p7 Unary - - ✓ - ✓ - ✓ + + +       5.3.1p8 Unary ! - ✓ - ✓ - ✓ + + +       5.3.1p9 Unary ~ - ✓ - ✓ - ✓ + + +     5.3.2 [expr.pre.incr] - ✓ - ✓ - ✓ + + +     5.3.3 [expr.sizeof] - ✓ - ✓ - ✓ + + +     5.3.4 [expr.new] - ✓ - ✓ + + operator delete is not looked up, initialization not quite correct     5.3.5 [expr.delete] - ✓ - ✓ - ✓ + + +   5.4 [expr.cast] - ✓ - ✓ + + Too lenient, and may not always have correct semantics   5.5 [expr.mptr.oper] - ✓ + @@ -706,257 +708,257 @@ welcome!

  5.6 [expr.mul] - ✓ - ✓ - ✓ + + +   5.7 [expr.add] - ✓ - ✓ - ✓ + + +   5.8 [expr.shift] - ✓ - ✓ - ✓ + + +   5.9 [expr.rel] - ✓ - ✓ - ✓ + + +   5.10 [expr.eq] - ✓ - ✓ - ✓ + + +   5.11 [expr.bit.and] - ✓ - ✓ - ✓ + + +   5.12 [expr.xor] - ✓ - ✓ - ✓ + + +   5.13 [expr.or] - ✓ - ✓ - ✓ + + +   5.14 [expr.log.and] - ✓ - ✓ - ✓ + + +   5.15 [expr.log.or] - ✓ - ✓ - ✓ + + +   5.16 [expr.cond] - ✓ - ✓ - ✓ + + + some invalid hierarchy casts still accepted, but that's a general problem   5.17 [expr.ass] - ✓ - ✓ - ✓ + + +   5.18 [expr.comma] - ✓ - ✓ - ✓ + + +   5.19 [expr.const] - ✓ - ✓ + + Uses C semantics 6 [stmt.stmt] - ✓ - ✓ - ✓ + + +   6.1 [stmt.label] - ✓ - ✓ - ✓ + + +   6.2 [stmt.expr] - ✓ - ✓ - ✓ + + +   6.3 [stmt.block] - ✓ - ✓ - ✓ + + +   6.4 [stmt.select] - ✓ - ✓ + + Conversion of declarations to required types not really supported.     6.4.1 [stmt.if] - ✓ - ✓ - ✓ + + +     6.4.2 [stmt.switch] - ✓ - ✓ - ✓ + + +   6.5 [stmt.iter] - ✓ - ✓ + + Conversion of declarations to required types not really supported.     6.5.1 [stmt.while] - ✓ - ✓ - ✓ + + +     6.5.2 [stmt.do] - ✓ - ✓ - ✓ + + +     6.5.3 [stmt.for] - ✓ - ✓ - ✓ + + +   6.6 [stmt.jump] - ✓ - ✓ - ✓ + + +     6.6.1 [stmt.break] - ✓ - ✓ - ✓ + + +     6.6.2 [stmt.cont] - ✓ - ✓ - ✓ + + +     6.6.3 [stmt.return] - ✓ - ✓ - ✓ + + +     6.6.4 [stmt.goto] - ✓ - ✓ - ✓ + + +   6.7 [stmt.dcl] - ✓ - ✓ + + Skipping of initialization is not flagged. Existence and accessibility of destructors is not tested for.   6.8 [stmt.ambig] - ✓ - ✓ - ✓ + + + @@ -971,7 +973,7 @@ welcome!

    7.1.1 [dcl.stc] - ✓ + @@ -979,18 +981,18 @@ welcome!

    7.1.2 [dcl.fct.spec] - ✓ - ✓ - ✓ + + +     7.1.3 [dcl.typedef] - ✓ - ✓ - ✓ - ✓ + + + + @@ -1003,17 +1005,17 @@ welcome!

    7.1.5 [dcl.type] - ✓ - ✓ - ✓ + + +       7.1.5.1 [dcl.type.cv] - ✓ - ✓ - ✓ + + + @@ -1035,17 +1037,17 @@ welcome!

  7.2 [dcl.enum] - ✓ - ✓ - ✓ + + +   7.3 [basic.namespace] - ✓ - ✓ - ✓ + + + @@ -1059,25 +1061,25 @@ welcome!

      7.3.1.1 [namespace.unnamed] - ✓ - ✓ + + Unnamed namespace members cannot be looked up.       7.3.1.2 [namespace.memdef] - ✓ - ✓ + + The friend stuff is not supported.     7.3.2 [namespace.alias] - ✓ - ✓ - ✓ + + + N/A @@ -1091,23 +1093,23 @@ welcome!

    7.3.4[namespace.udir] - ✓ - ✓ + + Example in p4 fails.   7.4 [dcl.asm] - ✓ - ✓ - ✓ + + +   7.5 [dcl.link] - ✓ + @@ -1118,9 +1120,9 @@ welcome!

  8.1 [dcl.name] - ✓ - ✓ - ✓ + + + N/A @@ -1134,49 +1136,49 @@ welcome!

  8.3 [dcl.meaning] - ✓ - ✓ + + N/A Qualified declarator-ids are not fully implemented.     8.3.1 [dcl.ptr] - ✓ - ✓ - ✓ + + + N/A     8.3.2 [dcl.ref] - ✓ - ✓ - ✓ + + + N/A     8.3.3 [dcl.mptr] - ✓ - ✓ - ✓ + + + N/A     8.3.4 [dcl.array] - ✓ - ✓ - ✓ + + + N/A     8.3.5 [dcl.fct] - ✓ - ✓ - ✓ + + + N/A @@ -1190,8 +1192,8 @@ welcome!

  8.4 [dcl.fct.def] - ✓ - ✓ + + ctor-initializers are not fully type-checked. @@ -1238,9 +1240,9 @@ welcome!

  9.1 [class.name] - ✓ - ✓ - ✓ + + + N/A @@ -1254,7 +1256,7 @@ welcome!

  9.3 [class.mfct] - ✓ + @@ -1262,7 +1264,7 @@ welcome!

    9.3.1 [class.mfct.non-static] - ✓ + @@ -1270,7 +1272,7 @@ welcome!

    9.3.2 [class.this] - ✓ + @@ -1278,47 +1280,47 @@ welcome!

  9.4 [class.static] - ✓ - ✓ + +     9.4.1 [class.static.mfct] - ✓ - ✓ + +     9.4.2 [class.static.data] - ✓ - ✓ + +   9.5 [class.union] - ✓ - ✓ + + Semantic analysis does not yet check all of the requirements placed on the members of unions.   9.6 [class.bit] - ✓ - ✓ - ✓ - ✓ + + + +   9.7 [class.nest] - ✓ + N/A @@ -1326,7 +1328,7 @@ welcome!

  9.8 [class.local] - ✓ + @@ -1334,9 +1336,9 @@ welcome!

  9.9 [class.nested.type] - ✓ - ✓ - ✓ + + + N/A @@ -1358,9 +1360,9 @@ welcome!

  10.2 [class.member.lookup] - ✓ - ✓ - ✓ + + + N/A @@ -1374,9 +1376,9 @@ welcome!

  10.4 [class.abstract] - ✓ - ✓ - ✓ + + + N/A @@ -1390,16 +1392,16 @@ welcome!

  11.1 [class.access.spec] - ✓ + - ✓ + N/A   11.2 [class.access.base] - ✓ - ✓ + + N/A @@ -1423,7 +1425,7 @@ welcome!

  11.5 [class.protected] - ✓ + N/A @@ -1525,7 +1527,7 @@ welcome!

13 [over]   13.1 [over.load] - ✓ + @@ -1533,7 +1535,7 @@ welcome!

  13.2 [over.dcl] - ✓ + @@ -1541,7 +1543,7 @@ welcome!

  13.3 [over.match] - ✓ + @@ -1549,7 +1551,7 @@ welcome!

    13.3.1 [over.match.funcs] - ✓ + @@ -1557,7 +1559,7 @@ welcome!

      13.3.1.1 [over.match.call] - ✓ + @@ -1565,7 +1567,7 @@ welcome!

        13.3.1.1.1 [over.call.func] - ✓ + @@ -1573,7 +1575,7 @@ welcome!

        13.3.1.1.2 [over.call.object] - ✓ + @@ -1581,7 +1583,7 @@ welcome!

      13.3.1.2 [over.match.oper] - ✓ + @@ -1589,7 +1591,7 @@ welcome!

      13.3.1.3 [over.match.ctor] - ✓ + @@ -1597,7 +1599,7 @@ welcome!

      13.3.1.4 [over.match.copy] - ✓ + @@ -1605,7 +1607,7 @@ welcome!

      13.3.1.5 [over.match.conv] - ✓ + @@ -1613,7 +1615,7 @@ welcome!

      13.3.1.6 [over.match.ref] - ✓ + @@ -1621,7 +1623,7 @@ welcome!

    13.3.2 [over.match.viable] - ✓ + @@ -1629,7 +1631,7 @@ welcome!

    13.3.3 [over.match.best] - ✓ + @@ -1637,7 +1639,7 @@ welcome!

      13.3.3.1 [over.best.ics] - ✓ + @@ -1645,7 +1647,7 @@ welcome!

        13.3.3.1.1 [over.ics.scs] - ✓ + @@ -1653,7 +1655,7 @@ welcome!

        13.3.3.1.2 [over.ics.user] - ✓ + @@ -1661,7 +1663,7 @@ welcome!

        13.3.3.1.3 [over.ics.ellipsis] - ✓ + @@ -1669,7 +1671,7 @@ welcome!

        13.3.3.1.4 [over.ics.ref] - ✓ + @@ -1677,7 +1679,7 @@ welcome!

      13.3.3.2 [over.ics.rank] - ✓ + @@ -1766,57 +1768,374 @@ welcome!

Missing pointer-to-member versions (p11, p16) and support for the ternary operator (p24, p25). -14 [temp] -  14.1 [temp.param] -  14.2 [temp.names] -  14.3 [temp.arg] -    14.3.1 [temp.arg.type] -    14.3.2 [temp.arg.nontype] -    14.3.3 [temp.arg.template] -  14.4 [temp.type] -  14.5 [temp.decls] -    14.5.1 [temp.class] -      14.5.1.1 [temp.mem.func] -      14.5.1.2 [temp.mem.class] -      14.5.1.3 [temp.static] -    14.5.2 [temp.mem] -    14.5.3 [temp.friend] -    14.5.4 [temp.class.spec] -      14.5.5.1 [temp.class.spec.match] -      14.5.5.2 [temp.class.order] -      14.5.5.3 [temp.class.spec.mfunc] -    14.5.5 [temp.fct] -      14.5.5.1 [temp.over.link] -      14.5.5.2 [temp.func.order] -  14.6 [temp.res] -    14.6.1 [temp.local] -    14.6.2 [temp.dep] -      14.6.2.1 [temp.dep.type] -      14.6.2.2 [temp.dep.expr] -      14.6.2.3 [temp.dep.constexpr] -      14.6.2.4 [temp.dep.temp] -    14.6.3 [temp.nondep] -    14.6.4 [temp.dep.res] -      14.6.4.1 [temp.point] -      14.6.4.2 [temp.dep.candidate] -    14.6.5 [temp.inject] -  14.7 [temp.spec] -    14.7.1 [temp.inst] -    14.7.2 [temp.explicit] -    14.7.3 [temp.expl.spec] -  14.8 [temp.fct.spec] -    14.8.1 [temp.arg.explicit] -    14.8.2 [temp.deduct] -      14.8.2.1 [temp.deduct.call] -      14.8.2.2 [temp.deduct.funcaddr] -      14.8.2.3 [temp.deduct.conv] -      14.8.2.4 [temp.deduct.type] -    14.8.3 [temp.over] - 15 [except] + 14 [temp] + N/A + + + + + + +   14.1 [temp.param] + ✓ ✓ + + N/A + Template template parameters cannot actually be used in templates + + +   14.2 [temp.names] + + + + N/A + Cannot name function template specializations + + +   14.3 [temp.arg] + + + + N/A + Cannot name function template specializations + + +     14.3.1 [temp.arg.type] + ✓ + ✓ + + N/A + Paragraph 3 will be tested elsewhere + + +     14.3.2 [temp.arg.nontype] + + + + N/A + + + +     14.3.3 [temp.arg.template] + + + + N/A + + + +   14.4 [temp.type] + N/A ✓ ✓ + N/A + + + +   14.5 [temp.decls] + + +     14.5.1 [temp.class] + + + + + No out-of-line definitions of the members of a template. + + +       14.5.1.1 [temp.mem.func] + + + + + No out-of-line definitions of the member functions of a class template. + + +       14.5.1.2 [temp.mem.class] + + + + + No out-of-line definitions of the member classes of a class template. + + +       14.5.1.3 [temp.static] + + + + + No out-of-line definitions of the static data members of a class template. + + +     14.5.2 [temp.mem] + + + + + + + +     14.5.3 [temp.friend] + + + + N/A + + + +     14.5.4 [temp.class.spec] + + + + + + + +       14.5.5.1 [temp.class.spec.match] + + + + N/A + + + +       14.5.5.2 [temp.class.order] + + + + N/A + + + +       14.5.5.3 [temp.class.spec.mfunc] + + + + N/A + + + +     14.5.5 [temp.fct] + + + + + + + +       14.5.5.1 [temp.over.link] + + + + N/A + + + +       14.5.5.2 [temp.func.order] + + + + N/A + + + +   14.6 [temp.res] + + + + + + + +     14.6.1 [temp.local] + + + + + + + +     14.6.2 [temp.dep] + N/A + + + + + + +       14.6.2.1 [temp.dep.type] + N/A + + + + + + +       14.6.2.2 [temp.dep.expr] + N/A + + + + + + +       14.6.2.3 [temp.dep.constexpr] + N/A + + + + + + +       14.6.2.4 [temp.dep.temp] + N/A + + + + + + +     14.6.3 [temp.nondep] + N/A + + + + + + +     14.6.4 [temp.dep.res] + N/A + + + + + + +       14.6.4.1 [temp.point] + N/A + + + + Only class templates are instantiated + + +       14.6.4.2 [temp.dep.candidate] + N/A + + + + Not restricted to functions with external linkage + + +     14.6.5 [temp.inject] + N/A + + + + + + +   14.7 [temp.spec] + + + + + Function templates cannot be instantiated + + +     14.7.1 [temp.inst] + N/A + + + + Function templates cannot be instantiated + + +     14.7.2 [temp.explicit] + + + + + + + +     14.7.3 [temp.expl.spec] + + + + + Only class template specialization is available + + +   14.8 [temp.fct.spec] + + + + + + + +     14.8.1 [temp.arg.explicit] + + + + + + + +     14.8.2 [temp.deduct] + + + + + + + +       14.8.2.1 [temp.deduct.call] + + + + + + + +       14.8.2.2 [temp.deduct.funcaddr] + + + + + + + +       14.8.2.3 [temp.deduct.conv] + + + + + + + +       14.8.2.4 [temp.deduct.type] + + + + + + + +     14.8.3 [temp.over] + + + + + + + + 15 [except] + + + @@ -1846,7 +2165,7 @@ welcome!

  15.4 [except.spec] - ✓ + @@ -1955,7 +2274,7 @@ welcome!

Explicit conversion operators (N2437) - ✓ + @@ -1963,33 +2282,33 @@ welcome!

Static assertions (N1720) - ✓ - ✓ - ✓ + + + N/A Deleted functions (N2346) - ✓ - ✓ - ✓ + + + N/A Rvalue references (N2118 + N2831) - ✓ - ✓ - ✓ + + + nullptr (N2431) - ✓ - ✓ - ✓ + + +