Commit Graph

54 Commits

Author SHA1 Message Date
Richard Smith 6fdeaabda9 Correct incoherent function versus function template partial ordering for conversion operators (the comparison could claim that two conversion operators are both better than each other). Actually implement DR495, rather than passing its test by chance because the declarations happened to be in the "lucky" order.
llvm-svn: 209054
2014-05-17 01:58:45 +00:00
David Majnemer a2245271af Revert "Sema: Implement DR244"
This was accidentally committed.

This reverts commit r207892.

llvm-svn: 207893
2014-05-03 02:22:11 +00:00
David Majnemer 22fcb08357 Sema: Implement DR244
Naming the destructor using a typedef-name for the class-name is
well-formed.

This fixes PR19620.

llvm-svn: 207892
2014-05-03 02:18:46 +00:00
David Majnemer deca705593 Sema: Implement DR477
Summary: Friend declarations shouldn't mention explicit or virtual.

Reviewers: rsmith

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D3562

llvm-svn: 207682
2014-04-30 18:24:01 +00:00
Richard Smith c7f9bb1757 Tests for DR501-525.
llvm-svn: 206123
2014-04-13 00:40:32 +00:00
Richard Smith 5557f6d678 Add failing testcase for DR305. Looks like we didn't implement the resolution
here in the simple-template-id case.

llvm-svn: 205273
2014-04-01 01:58:11 +00:00
David Majnemer ee4f4025c3 Sema: Implement DR317
Summary:
Declaring a function as inline after it has been defined is in violation
of [dcl.fct.spec]p4.  The program would get a strong definition instead
of getting a function with linkonce_odr linkage.

Reviewers: rsmith

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D3220

llvm-svn: 205129
2014-03-30 06:44:54 +00:00
Richard Smith 6190ee65e1 Tests for dr475-dr500.
llvm-svn: 205127
2014-03-30 06:05:29 +00:00
Richard Smith 17710217fa Tests for DR450-475.
llvm-svn: 204217
2014-03-19 08:04:12 +00:00
Richard Smith ba41a73993 Tests for DR400-450.
llvm-svn: 204033
2014-03-17 08:20:10 +00:00
Richard Smith 4a558a44a0 Tests for DR389-399.
llvm-svn: 203771
2014-03-13 08:40:37 +00:00
Richard Smith 66204ecff9 DR1346: a parenthesized braced-init-list cannot be used as the initializer when
performing auto type deduction.

llvm-svn: 203683
2014-03-12 17:42:45 +00:00
Richard Smith b81b196a58 Tests for DR381-388.
llvm-svn: 203549
2014-03-11 07:49:32 +00:00
Richard Smith a13f8ae84e DR status page: add link targets for individual DRs, and link duplicates.
llvm-svn: 203022
2014-03-05 23:02:47 +00:00
Richard Smith faf156ad15 Tests for DR370-380.
Also promote a couple of Warnings on ill-formed code found by this testing to
ExtWarns.

llvm-svn: 203021
2014-03-05 22:54:58 +00:00
Richard Smith 2f0e4e78b2 Add tests for newly-resolved core issues <= 370.
llvm-svn: 202889
2014-03-04 21:14:30 +00:00
Richard Smith 37213e219b Update DR status page to match post-Issaquah core issues list.
llvm-svn: 202886
2014-03-04 20:44:20 +00:00
David Majnemer 141a7b5402 Remove gunk from cxx_dr_status.html
Accidentally piped the stdout from make_cxx_dr_status into
cxx_dr_status.html

llvm-svn: 201634
2014-02-19 03:21:27 +00:00
David Majnemer 49864d6676 Regenerate DR status page.
llvm-svn: 201632
2014-02-19 03:03:21 +00:00
Richard Smith cc4a72ecd2 Tests for DR351-370, plus update DR status page to match the latest core issue list.
llvm-svn: 201106
2014-02-10 19:53:17 +00:00
Richard Smith 18819307d3 DR101, PR12770: If a function is declared in the same context as a
using-declaration, and they declare the same function (either because
the using-declaration is in the same namespace as the declaration it
imports, or because they're both extern "C"), they do not conflict.

llvm-svn: 200897
2014-02-06 01:31:33 +00:00
Richard Smith c94410bc8d Tests for DR331-350.
llvm-svn: 200678
2014-02-03 06:34:23 +00:00
Richard Smith 209bbb7774 Update C++ DR page now 3.4 has been released.
llvm-svn: 200674
2014-02-03 02:40:25 +00:00
Richard Smith 91dfaacd38 Implement DR329. We already did the right thing here in C++98 mode, but r104014
(which implemented the DR) was disabled in C++11.

llvm-svn: 200673
2014-02-03 02:37:59 +00:00
Richard Smith 9f38709193 Tests for DR321-330.
llvm-svn: 200672
2014-02-03 02:13:49 +00:00
Richard Smith 6938adbd16 Tests for DR301-320.
llvm-svn: 200671
2014-02-03 01:23:27 +00:00
Richard Smith 6a6a4bbdd4 PR17052 / DR1560 (+DR1550): In a conditional expression between a glvalue and a
throw-expression, the result is also a glvalue and isn't unnecessarily coerced
to a prvalue.

llvm-svn: 200189
2014-01-27 04:19:56 +00:00
Richard Smith 8e6afd4785 Regenerate DR status page.
llvm-svn: 196893
2013-12-10 08:26:19 +00:00
Richard Smith e7f5249913 Mark auto-generated file as auto-generated, as suggested by Alp.
llvm-svn: 196534
2013-12-05 21:08:20 +00:00
Alp Toker f6a24ce40f Fix a tranche of comment, test and doc typos
llvm-svn: 196510
2013-12-05 16:25:25 +00:00
Richard Smith a230224be4 Implement DR482: namespace members can be redeclared with a qualified name
within their namespace, and such a redeclaration isn't required to be a
definition any more.

Update DR status page to say Clang 3.4 instead of SVN and add new Clang 3.5
category (but keep Clang 3.4 yellow for now).

llvm-svn: 196481
2013-12-05 07:51:02 +00:00
Alp Toker d473363876 Correct hyphenations in comments and assert messages
This patch tries to avoid unrelated changes other than fixing a few
hyphen-related ambiguities in nearby lines.

llvm-svn: 196466
2013-12-05 04:47:09 +00:00
Alp Toker 3b557ba3f6 Documentation typo corrections
llvm-svn: 196215
2013-12-03 06:53:39 +00:00
Richard Smith ce42084402 Tests for core issues 270-300.
llvm-svn: 195626
2013-11-25 08:07:41 +00:00
Richard Smith 5327b86430 Tests for core issues 251-270.
llvm-svn: 194989
2013-11-18 05:24:03 +00:00
Richard Smith 3cde3d245a Tests for core issue 241-250.
llvm-svn: 194951
2013-11-17 06:39:43 +00:00
Richard Smith 7101fd0e56 Tests for core issues 224-240.
llvm-svn: 194946
2013-11-17 02:50:30 +00:00
Richard Smith b09a4fe192 Tests for core issue 216-223.
llvm-svn: 194795
2013-11-15 08:55:01 +00:00
Richard Smith 00f5d8927b DR408: If a static data member of incomplete array type is declared in a class
template, that member has a dependent type (even if we can see the definition
of the member of the primary template), because the array size could change in
a member specialization.

Patch by Karthik Bhat!

llvm-svn: 194740
2013-11-14 22:40:45 +00:00
Richard Smith 8c98c1e704 Tests for core issue 201-215.
llvm-svn: 194458
2013-11-12 09:16:15 +00:00
Richard Smith c8f7fd10a9 Tests for core issue 170-200.
llvm-svn: 194240
2013-11-08 02:05:54 +00:00
Richard Smith 786d8a26f2 Tests for CWG issue 165-170.
llvm-svn: 194215
2013-11-07 19:26:14 +00:00
Richard Smith 14bdd7a925 Tests for DR150 - DR165.
llvm-svn: 194192
2013-11-07 06:24:09 +00:00
Richard Smith 677fb06cec Update cxx_dr_status.html to match current cwg issue list.
llvm-svn: 194189
2013-11-07 05:34:58 +00:00
Richard Smith 541b38be7b Switch the semantic DeclContext for a block-scope declaration of a function or
variable from being the function to being the enclosing namespace scope (in
C++) or the TU (in C). This allows us to fix a selection of related issues
where we would build incorrect redeclaration chains for such declarations, and
fail to notice type mismatches.

Such declarations are put into a new IdentifierNamespace, IDNS_LocalExtern,
which is only found when searching scopes, and not found when searching
DeclContexts. Such a declaration is only made visible in its DeclContext if
there are no non-LocalExtern declarations.

llvm-svn: 191064
2013-09-20 01:15:31 +00:00
David Majnemer 502b0ed264 Implement DR136
Friend declarations that specify a default argument must be a definition
and the only declaration in the translation unit.

llvm-svn: 184889
2013-06-25 23:09:30 +00:00
David Majnemer ba8f17ac10 Implement DR21
A default template-argument shall not be specified in a friend template
declaration.

Interestingly, we properly handled default template arguments on friend
class members but not on just friend classes.

llvm-svn: 184882
2013-06-25 22:08:55 +00:00
Richard Smith 39b7968ccb DR14, DR101, and part of DR1: fix handling of extern "C" declarations in
namespaces, by treating them just like we treat extern "C" declarations in
function scope.

llvm-svn: 184223
2013-06-18 20:15:12 +00:00
Richard Smith 895d6952d6 Add tests for C++ DR100-150.
llvm-svn: 184057
2013-06-16 08:00:51 +00:00
David Majnemer 66ad574f40 Implement DR61: Address of ambiguous bound methods should be disallowed
DR61 affirms that expressions containing unresolved member access should
be disallowed when performing "address of" operations.

llvm-svn: 183723
2013-06-11 03:56:29 +00:00