b5c7768a74936d4e2c7a484570a638cb74702d8b |
|
19-Oct-2013 |
Kaelyn Uhrain <rikka@google.com> |
Allow CorrectTypo to replace CXXScopeSpecifiers that refer to classes. Now that CorrectTypo knows how to correctly search classes for typo correction candidates, there is no good reason to only replace an existing CXXScopeSpecifier if it refers to a namespace. While the actual enablement was a matter of changing a single comparison, the fallout from enabling the functionality required a lot more code changes (including my two previous commits). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
aa4bc18240c03b5ed7952aa5e013c081f8733ed3 |
|
30-Jun-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Reinstate r185229, reverted in r185256, with a tweak: further ignore the standard's rule that an extern "C" declaration conflicts with any entity in the global scope with the same name. Now we only care if the global scope entity is a variable declaration (and so might have the same mangled name as the extern "C" declaration). This has been reported as a standard defect. Original commit message: PR7927, PR16247: Reimplement handling of matching extern "C" declarations across scopes. When we declare an extern "C" name that is not a redeclaration of an entity in the same scope, check whether it redeclares some extern "C" entity from another scope, and if not, check whether it conflicts with a (non-extern-"C") entity in the translation unit. When we declare a name in the translation unit that is not a redeclaration, check whether it conflicts with any extern "C" entities (possibly from other scopes). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
6e428a446ed7cc170346430afa7be54e83b2d28c |
|
29-Jun-2013 |
Timur Iskhodzhanov <timurrrr@google.com> |
Revert r185229 as it breaks compilation of <windows.h> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
5eab8d733ce7867fda4e6d5f5afa6dfe8a105c79 |
|
29-Jun-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR7927, PR16247: Reimplement handling of matching extern "C" declarations across scopes. When we declare an extern "C" name that is not a redeclaration of an entity in the same scope, check whether it redeclares some extern "C" entity from another scope, and if not, check whether it conflicts with a (non-extern-"C") entity in the translation unit. When we declare a name in the translation unit that is not a redeclaration, check whether it conflicts with any extern "C" entities (possibly from other scopes). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
8bddeb57d134c0e5f14e319271aa9015886a8ac7 |
|
25-Aug-2012 |
John McCall <rjmccall@apple.com> |
When computing the effective context for access control, make sure we walk up the DC chain for the current context, rather than allowing ourselves to get switched over to the canonical DC chain. Fixes PR13642. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
40b2e19cae6ab85407856c70f76278f9efbeeb7c |
|
23-Aug-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
When disambiguating an expression-statement from a declaraton-statement, if the statement starts with an identifier for which name lookup will fail either way, look at later tokens to disambiguate in order to improve error recovery. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
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/class.access/class.friend/p1.cpp
|
ac57f0b9097e04f70a631549383a2944f74ad844 |
|
10-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
The effective context of a friend function is its lexical context. Fixes PR9103. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
417d39f300da40067600863c2733fdeb513fb4d2 |
|
15-Feb-2011 |
John McCall <rjmccall@apple.com> |
Don't crash on hierarchy static_casts which appear in variable initializers. PR9221. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125532 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
eee1d5434ebfa955ffc3c493aecd68bb7b3f4838 |
|
14-Feb-2011 |
John McCall <rjmccall@apple.com> |
When parsing an out-of-line member function declaration, we must delay access-control diagnostics which arise from the portion of the declarator following the scope specifier, just in case access is granted by friending the individual method. This can also happen with in-line member function declarations of class templates due to templated-scope friend declarations. We were really playing fast-and-loose before with this sort of thing, and it turned out to work because *most* friend functions are in file scope. Making us delay regardless of context exposed several bugs with how we were manipulating delay. I ended up needing a concept of a context that's independent of the declarations in which it appears, and then I actually had to make some things save contexts correctly, but delay should be much cleaner now. I also encapsulated all the delayed-diagnostics machinery in a single subobject of Sema; this is a pattern we might want to consider rolling out to other components of Sema. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125485 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
aa56a66abb61e9f42b48ae88e43328aba10c9148 |
|
20-Oct-2010 |
John McCall <rjmccall@apple.com> |
Access control polish: drop the note on the original declaration and say 'implicitly' when it was implicit. Resolves PR 7930 and my peace of mind. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
76ef658c703faf72c00f324fb9edc03169718e3e |
|
28-May-2010 |
Douglas Gregor <dgregor@apple.com> |
When we complain about a member being inaccessible due to a constraint along an access path, add another note pointing at the member we actually found. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104937 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
9da9cdfd5ac5fcbb8c6a9fc38938e845e53af1ed |
|
28-May-2010 |
John McCall <rjmccall@apple.com> |
When filtering out previous declarations of friend functions, consider the lookup context, not the direct semantic context. Fixes PR7230. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
238058c372cfb7bdaf489f51171eb1380ebfd6a6 |
|
18-May-2010 |
Douglas Gregor <dgregor@apple.com> |
I hate this commit. Revert much of the implementation of C++98/03 [temp.friend]p5 in r103943 and its follow-ons r103948 and r103952. While our implementation was technically correct, other compilers don't seem to implement this paragraph (which forces the instantiation of friend functions defined in a class template when a class template specialization is instantiated), and doing so broke a bunch of Boost libraries. Since this behavior has changed in C++0x (which instantiates the friend function definitions when they are used), we're going to skip the nowhere-implemented C++98/03 semantics and go straight to the C++0x semantics. This commit is a band-aid to get Boost up and running again. It doesn't really fix PR6952 (which this commit un-fixes), but it does deal with the way Boost.Units abuses this particular paragraph. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
ac7c2c8a9d47df7d652364af3043c41816a18fa4 |
|
17-May-2010 |
Douglas Gregor <dgregor@apple.com> |
C++98/03 [temp.friend]p4 requires that inline function definitions within class templates be instantiated along with each class template specialization, even if the functions are not used. Do so, as a baby step toward PR6952. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.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/class.access/class.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/class.access/class.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/class.access/class.friend/p1.cpp
|
630eb01b2568d0958118eb1a0ded02bebecb2b0f |
|
18-Apr-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Fix the access checking of function and function template argument types, return types, and default arguments. This fixes PR6855 along with several similar cases where we rejected valid code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101706 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
77e8b11524187f81548450e9e2ad9dd0e7200909 |
|
13-Apr-2010 |
John McCall <rjmccall@apple.com> |
Support befriending members of class template specializations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101173 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
3d04336baf091b16e9d8f85b48b82dafd2695874 |
|
13-Apr-2010 |
John McCall <rjmccall@apple.com> |
Allow classes to befriend implicitly-declared members. Fixes PR6207 for members of non-templated classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
9ea6397bf4ff53768ef4bdc0945965103a22e98c |
|
13-Apr-2010 |
John McCall <rjmccall@apple.com> |
Don't try to find a scope corresponding to the search DC for an unfound friend declaration; this used to be important but is now just a waste of time plus an unreasonable assertion. Fixes PR6174. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101112 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.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/class.access/class.friend/p1.cpp
|
7c3745af0a171bd62605177e53fc0fce3ff6ab25 |
|
26-Mar-2010 |
Gabor Greif <ggreif@gmail.com> |
add a slight variation of test3, where argument list seems to be different, but in fact is semantically equivalent; check that we do not error here git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.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/class.access/class.friend/p1.cpp
|
e06c1a13172bd6ef38fe927d72198ab3f97c0b4a |
|
25-Mar-2010 |
John McCall <rjmccall@apple.com> |
Fix a very minor oversight in privileges-elevation: we were only considering friendship for a derived class if the base class specifier was non-public, and thus not considering friendship for non-public members of public bases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99554 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
7aceaf8cee77c98478e8934dc283910292711a7e |
|
19-Mar-2010 |
John McCall <rjmccall@apple.com> |
When elevating access along an inheritance path, initialize the computed access to the (elevated) access of the accessed declaration, if applicable, rather than plunking that access onto the end after we've calculated the inheritance access. Also, being a friend of a derived class gives you public access to its members (subject to later modification by further inheritance); it does not simply ignore a single location of restricted inheritance. Also, when computing the best unprivileged path to a subobject, preserve the information that the worst path might be AS_none (forbidden) rather than a minimum of AS_private. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
ceef4ce492c6725180438da69e6621fa0833f523 |
|
12-Mar-2010 |
John McCall <rjmccall@apple.com> |
Add an extra test to this test-case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98322 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
d60e22e601852ae1345f01514318a0951dc09f89 |
|
12-Mar-2010 |
John McCall <rjmccall@apple.com> |
Implement basic support for friend types and functions in non-dependent contexts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
7c2342dd4c9947806842e5aca3d2bb2e542853c9 |
|
10-Mar-2010 |
John McCall <rjmccall@apple.com> |
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|
7bf3600f56342dc434dad994d0c71068e5d3b5c7 |
|
01-Mar-2010 |
Chandler Carruth <chandlerc@gmail.com> |
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97499 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/class.access/class.friend/p1.cpp
|