1f2e1a96bec2ba6418ae7f2d2b525a3575203b6a |
|
10-Aug-2012 |
John McCall <rjmccall@apple.com> |
Check access to friend declarations. There's a number of different things going on here that were problematic: - We were missing the actual access check, or rather, it was suppressed on account of being a redeclaration lookup. - The access check would naturally happen during delay, which isn't appropriate in this case. - We weren't actually emitting dependent diagnostics associated with class templates, which was unfortunate. - Access was being propagated incorrectly for friend method declarations that couldn't be matched at parse-time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
33ab0da4b50c0868f0dbbbbb8d018b44acd2bd4d |
|
09-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
A friend template specialization is also dependent if any of its template arguments are dependent. Fixes PR10913. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141515 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
4e2cbb28baa0342b51336e55c519cd06308c4df2 |
|
20-Oct-2010 |
John McCall <rjmccall@apple.com> |
When matching template parameter lists to template-ids in a scope specifier on a friend declaration, skip template-ids which do not depend on the current parameter list. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116911 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
c54d688c604d28dcb9ab8f92047837c10c8f9c61 |
|
19-Oct-2010 |
John McCall <rjmccall@apple.com> |
When instantiating a dependently-scoped friend function declaration, we may need to complete the type before looking into it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
0d6b1640eb4d1a4a0203235cfdfcdaf3335af36d |
|
23-Apr-2010 |
John McCall <rjmccall@apple.com> |
Recommit my change to how C++ does elaborated type lookups, now with two bugfixes which fix selfhost and (hopefully) the nightly tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102198 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
00b40d3f2fb8b2f9043daf3dd4558bff98346b3c |
|
23-Apr-2010 |
Daniel Dunbar <daniel@zuster.org> |
Revert "C++ doesn't really use "namespaces" for different kinds of names the same", which seems to break most C++ nightly test apps. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102174 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
d04efc98d08731e31bd73f430803acc5ffa9040a |
|
23-Apr-2010 |
John McCall <rjmccall@apple.com> |
C++ doesn't really use "namespaces" for different kinds of names the same way that C does. Among other differences, elaborated type specifiers are defined to skip "non-types", which, as you might imagine, does not include typedefs. Rework our use of IDNS masks to capture the semantics of different kinds of declarations better, and remove most current lookup filters. Removing the last remaining filter is more complicated and will happen in a separate patch. Fixes PR 6885 as well some spectrum of unfiled bugs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102164 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
74256f5ea6950c9fd34595aa124eb4740372f15c |
|
14-Apr-2010 |
John McCall <rjmccall@apple.com> |
Parse friend template ids as types instead of ending up in ActOnClassTemplateSpecialization and being very confused. Fixes PR6514 (for non-templated-scope friends). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101198 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
21c0160959961b3a6ab3308608ee3fde182ecb49 |
|
14-Apr-2010 |
John McCall <rjmccall@apple.com> |
Fix an embarrasing memory error. I was apparently very tired when I wrote this code the first time. Fixes PR6827. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101184 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
7002f4c03c2d0544f4e8bea8d3a5636519081e35 |
|
09-Apr-2010 |
John McCall <rjmccall@apple.com> |
Turn access control on by default in -cc1. Remove -faccess-control from -cc1; add -fno-access-control. Make the driver pass -fno-access-control by default. Update a bunch of tests to be correct under access control. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100880 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
ea7390c7b384ce607bfc8fc13c01f37cfc3776f0 |
|
08-Apr-2010 |
John McCall <rjmccall@apple.com> |
Set access properly on instantiated friend class template declarations. Fixes PR6752. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100806 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
af2094e7cecadf36667deb61a83587ffdd979bd3 |
|
08-Apr-2010 |
John McCall <rjmccall@apple.com> |
Implement dependent friend function template specializations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
b0cb022daec8671406ab25f4b5d5a6d48d823bc4 |
|
27-Mar-2010 |
John McCall <rjmccall@apple.com> |
Implement method friends in class templates and fix a few related problems. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
d325daa506338ab86f9dd468b48fd010673f49a6 |
|
26-Mar-2010 |
John McCall <rjmccall@apple.com> |
Reapply r99596 with a fix: link an instantiated friend function to its pattern if it has a body. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
a7bc8559b40a78d664d6c7faf4b42ff21184c146 |
|
26-Mar-2010 |
John McCall <rjmccall@apple.com> |
Apparently that didn't work. Reverting for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
d7e29e114d20da5b83e0cb7bc29ec717a7458cb1 |
|
26-Mar-2010 |
John McCall <rjmccall@apple.com> |
Properly instantiate and link in friend function templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
9c86b513cb42ea6d9e3f98cb2b7eda39a2eb526b |
|
25-Mar-2010 |
John McCall <rjmccall@apple.com> |
Handle simple friend-class decls in class templates better by ensuring that we look for shadow friend decls in the appropriate scope before injecting a new declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99552 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
93ba8579c341d5329175f1413cdc3b35a36592d2 |
|
25-Mar-2010 |
John McCall <rjmccall@apple.com> |
Properly instantiate friend class template declarations and link them into the redeclaration chain. Recommitted from r99477 with a fix: we need to merge in default template arguments from previous declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
e131c574c7baa28eb0759181478d710a2aa60cb6 |
|
25-Mar-2010 |
Bob Wilson <bob.wilson@apple.com> |
Revert 99477 since it appears to be breaking the clang-x86_64-darwin10-fnt buildbot. The tramp3d test fails. --- Reverse-merging r99477 into '.': U test/SemaTemplate/friend-template.cpp U test/CXX/temp/temp.decls/temp.friend/p1.cpp U lib/Sema/SemaTemplateInstantiateDecl.cpp U lib/Sema/SemaAccess.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
a56623b01ed9f28f10416432d147c7a1729d5f1d |
|
25-Mar-2010 |
John McCall <rjmccall@apple.com> |
Properly instantiate and link in friend-class-template declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99477 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
036ada215d2c53e6a286b42d7cbd2386b0007516 |
|
24-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Silently drop dependent friend function template specializations, since we have absolutely no way to match them when they are declared nor do we have a way to represent these parsed-but-not-checked friend declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
7ad650f88ecbbe659f10f9f6b34a1f29ea9cf8f9 |
|
24-Mar-2010 |
John McCall <rjmccall@apple.com> |
Support friend function specializations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
0c01d18094100db92d38daa923c95661512db203 |
|
24-Mar-2010 |
John McCall <rjmccall@apple.com> |
Implement a framework for the delay of arbitrary diagnostics within templates. So delay access-control diagnostics when (for example) the target of a friend declaration is a specific specialization of a template. I was surprised to find that this was required for an access-controlled selfhost. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
a742db0032d8f458fe229600d2082981a1fb1481 |
|
17-Mar-2010 |
John McCall <rjmccall@apple.com> |
Implement non-dependent friend functions and classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
a5728872c7702ddd09537c95bc3cbd20e1f2fb09 |
|
15-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
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). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
6b2becfc434b0bdced8560802c4d0e03148c61b8 |
|
08-Sep-2009 |
John McCall <rjmccall@apple.com> |
Support templateids in friend declarations. Fixes bug 4859. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81233 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
82b9fb8e7a05066e690670d2eb386a624b04f684 |
|
02-Sep-2009 |
John McCall <rjmccall@apple.com> |
Borrow a friend class's previous declaration's access specifier regardless of whether the current context is dependent. Thanks to Anders for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
1a26c27eba32f8766c0eeec73fe43634cd814825 |
|
02-Sep-2009 |
John McCall <rjmccall@apple.com> |
Fix a little crasher in friend decls. Thanks again to Eli for finding this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
2a29c4b6ef710de49b1fd72902d6930033edae24 |
|
29-Aug-2009 |
John McCall <rjmccall@apple.com> |
Fix a last-minute typo and make the test not emit temporaries. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80419 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
f181d8a44f5837213eeaee6d71f584b1ab2849cd |
|
29-Aug-2009 |
John McCall <rjmccall@apple.com> |
Ensure code generation for friend declarations in class templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
02cace78cf48cc26686bd5b07c78606abca13bcd |
|
28-Aug-2009 |
John McCall <rjmccall@apple.com> |
Omnibus friend decl refactoring. Instead of cloning AST classes for friend declarations of same, introduce a single AST class and add appropriate bits (encoded in the namespace) for whether a decl is "real" or not. Much hackery about previously-declared / not-previously-declared, but it's essentially mandated by the standard that friends alter lookup, and this is at least fairly non-intrusive. Refactor the Sema methods specific to friends for cleaner flow and less nesting. Incidentally solve a few bugs, but I remain confident that we can put them back. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|
fd810b1386ed29b250e7d522ea826a65c815e49d |
|
14-Aug-2009 |
John McCall <rjmccall@apple.com> |
Support friend declarations in templates and test that argdep lookup still works. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78979 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
|