John McCall
84f0267301
Redeclaration lookups for parameter names should be flagged as redeclaration lookups
...
so they don't trigger diagnostics like (say) access control.
llvm-svn: 98806
2010-03-18 06:42:38 +00:00
John McCall
fb803d7dcb
Grant nested classes the access privileges of their enclosing classes.
...
llvm-svn: 98710
2010-03-17 04:58:56 +00:00
John McCall
a630995f50
Perform access control for the implicit calls to base and member destructors
...
that occur in constructors (on the unwind path).
llvm-svn: 98681
2010-03-16 21:39:52 +00:00
John McCall
ab8c273b4f
Access control for implicit calls to copy assignment operators and copy
...
constructors from implicitly-defined members.
llvm-svn: 98614
2010-03-16 06:11:48 +00:00
John McCall
f857e0bbe7
Perform access control even for the implicit destructor calls from implicit
...
destructor definitions. Remove some code duplication.
llvm-svn: 98611
2010-03-16 05:36:30 +00:00
John McCall
1064d7ef29
Perform access control for the implicit base and member destructor calls
...
required when emitting a destructor definition.
llvm-svn: 98609
2010-03-16 05:22:47 +00:00
John McCall
1e3a1a7eff
Remember access paths for visible conversion decls.
...
llvm-svn: 98539
2010-03-15 09:07:48 +00:00
John McCall
9caafbc5ca
Add an extra test to this test-case.
...
llvm-svn: 98322
2010-03-12 01:20:21 +00:00
John McCall
16927f6274
Implement basic support for friend types and functions in non-dependent
...
contexts.
llvm-svn: 98321
2010-03-12 01:19:31 +00:00
John McCall
85f9055955
When pretty-printing tag types, only print the tag if we're in C (and
...
therefore not creating ElaboratedTypes, which are still pretty-printed
with the written tag).
Most of these testcase changes were done by script, so don't feel too
sorry for my fingers.
llvm-svn: 98149
2010-03-10 11:27:22 +00:00
Chandler Carruth
a419dbb5ea
Fix the lookup of names used in a friend declaration to not attempt to
...
re-declare them. This fixes PR6317. Also add the beginnings of an interesting
test case for p1 of [class.friend] which also covers PR6317.
llvm-svn: 97499
2010-03-01 21:17:36 +00:00
John McCall
5b0829a321
Improve access control diagnostics. Perform access control on member-pointer
...
conversions. Fix an access-control bug where privileges were not considered
at intermediate points along the inheritance path. Prepare for friends.
llvm-svn: 95775
2010-02-10 09:31:12 +00:00
John McCall
6781b05a92
Access control for implicit destructor calls. Diagnostic could be orders of
...
magnitude clearer.
llvm-svn: 95078
2010-02-02 08:45:54 +00:00
John McCall
760af170ff
Access checking for implicit user-defined conversions.
...
llvm-svn: 94971
2010-02-01 03:16:54 +00:00
John McCall
2cb941642e
Access control for surrogate function calls. Required a moderately gross hack
...
to get the access bits set properly in conversion sets.
llvm-svn: 94744
2010-01-28 07:38:46 +00:00
John McCall
49ec2e694c
Access control for overloaded call operators. Not for surrogates yet,
...
mostly because we're going to want a better diagnostic for conversions.
Also this API needs to go back to sanity.
llvm-svn: 94730
2010-01-28 01:54:34 +00:00
John McCall
b3a4400554
Access checking for overloaded operators.
...
llvm-svn: 94725
2010-01-28 01:42:12 +00:00
John McCall
86121519ca
Implement access-check delays for out-of-line member definitions
...
using the same framework we use for deprecation warnings.
llvm-svn: 94659
2010-01-27 03:50:35 +00:00
John McCall
58cc69d4c1
Implement access control for overloaded functions. Suppress access control
...
diagnostics in "early" lookups, such as during typename checks and when building
unresolved lookup expressions.
llvm-svn: 94647
2010-01-27 01:50:18 +00:00
John McCall
553c0796ee
Implement elementary access control.
...
llvm-svn: 94268
2010-01-23 00:46:32 +00:00
Daniel Dunbar
8fbe78f6fc
Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.
...
- This is designed to make it obvious that %clang_cc1 is a "test variable"
which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it
can be useful to redefine what gets run as 'clang -cc1' (for example, to set
a default target).
llvm-svn: 91446
2009-12-15 20:14:24 +00:00
John McCall
a009726ce3
Implement access declarations. Most of the work here is parsing them, which
...
is difficult because they're so terribly, terribly ambiguous.
We implement access declarations in terms of using declarations, which is
quite reasonable. However, we should really persist the access/using
distinction in the AST and use the appropriate name in diagnostics. This
isn't a priority, so I'll just file a PR and hope someone else does it. :)
llvm-svn: 91095
2009-12-11 02:10:03 +00:00