| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
class. Add some conservative support for the idea. Fixes PR 7024.
llvm-svn: 102999
|
|
|
|
| |
llvm-svn: 102169
|
|
|
|
|
|
|
|
|
|
| |
address of overloaded function, instead of assuming that a nested name
specifier was used. A nested name specifier is not required for static
functions.
Fixes PR6886.
llvm-svn: 102107
|
|
|
|
|
|
| |
self-host :)
llvm-svn: 102050
|
|
|
|
|
|
| |
failure on bootstrap.
llvm-svn: 102043
|
|
|
|
| |
llvm-svn: 102040
|
|
|
|
| |
llvm-svn: 102025
|
|
|
|
|
|
| |
base or not. Use this in CheckConstructorAccess.
llvm-svn: 102020
|
|
|
|
|
|
| |
report different diagnostics depending on which entity is being initialized.
llvm-svn: 102010
|
|
|
|
|
|
|
| |
return types, and default arguments. This fixes PR6855 along with several
similar cases where we rejected valid code.
llvm-svn: 101706
|
|
|
|
|
|
|
|
| |
have a temporary object in C++.
Also fix a tag mismatch that Doug noticed.
llvm-svn: 100593
|
|
|
|
|
|
|
|
| |
that protected members be used on objects of types which derive from the
naming class of the lookup. My first N attempts at this were poorly-founded,
largely because the standard is very badly worded here.
llvm-svn: 100562
|
|
|
|
|
|
| |
the standard.
llvm-svn: 100155
|
|
|
|
| |
llvm-svn: 99942
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the underlying/instantiated decl) through a lot of API, including "intermediate"
MemberExprs required for (e.g.) template instantiation. This is necessary
because of the access semantics of member accesses to using declarations:
only the base class *containing the using decl* need be accessible from the
naming class.
This allows us to complete an access-controlled selfhost, if there are no
recent regressions.
llvm-svn: 99936
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cache of PartialDiagnostic::Storage objects into an allocator within
the ASTContext. This eliminates a significant amount of malloc
traffic, for a 10% performance improvement in -fsyntax-only wall-clock
time with 403.gcc's combine.c.
Also, eliminate the RequireNonAbstractType hack I put in earlier,
which was but a symptom of this larger problem.
Fixes <rdar://problem/7806091>.
llvm-svn: 99849
|
|
|
|
|
|
|
|
| |
nested within, and suddenly local classes start working. Wouldn't be
necessary if I hadn't used local classes in Clang in the first place.
Or, well, wouldn't be necessary yet. :)
llvm-svn: 99709
|
|
|
|
|
|
| |
pattern if it has a body.
llvm-svn: 99610
|
|
|
|
| |
llvm-svn: 99601
|
|
|
|
| |
llvm-svn: 99596
|
|
|
|
|
|
|
| |
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.
llvm-svn: 99554
|
|
|
|
| |
llvm-svn: 99525
|
|
|
|
|
|
|
| |
the redeclaration chain. Recommitted from r99477 with a fix: we need to
merge in default template arguments from previous declarations.
llvm-svn: 99496
|
|
|
|
|
|
|
|
|
|
|
| |
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
llvm-svn: 99481
|
|
|
|
| |
llvm-svn: 99477
|
|
|
|
| |
llvm-svn: 99391
|
|
|
|
| |
llvm-svn: 99389
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 99383
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
entity (if applicable) which was actually looked up. If a candidate was found
via a using declaration, this is the UsingShadowDecl; otherwise, if
the candidate is template specialization, this is the template; otherwise,
this is the function.
The point of this exercise is that "found declarations" are the entities
we do access control for, not their underlying declarations. Broadly speaking,
this patch fixes access control for using declarations.
There is a *lot* of redundant code calling into the overload-resolution APIs;
we really ought to clean that up.
llvm-svn: 98945
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 98899
|
|
|
|
|
|
|
|
| |
non-placement news when selecting the corresponding operator delete; this is
fixed.
Access and ambiguity control for calls to operator new and delete. Also AFAICT
llvm-svn: 98818
|
|
|
|
| |
llvm-svn: 98764
|
|
|
|
| |
llvm-svn: 98710
|
|
|
|
|
|
| |
constructors from implicitly-defined members.
llvm-svn: 98614
|
|
|
|
|
|
| |
required when emitting a destructor definition.
llvm-svn: 98609
|
|
|
|
|
|
| |
contexts.
llvm-svn: 98321
|
|
|
|
|
|
|
| |
conversions. Fix an access-control bug where privileges were not considered
at intermediate points along the inheritance path. Prepare for friends.
llvm-svn: 95775
|
|
|
|
| |
llvm-svn: 95079
|
|
|
|
|
|
| |
magnitude clearer.
llvm-svn: 95078
|
|
|
|
| |
llvm-svn: 94971
|
|
|
|
| |
llvm-svn: 94725
|
|
|
|
|
|
| |
using the same framework we use for deprecation warnings.
llvm-svn: 94659
|
|
|
|
|
|
|
| |
diagnostics in "early" lookups, such as during typename checks and when building
unresolved lookup expressions.
llvm-svn: 94647
|
|
|
|
| |
llvm-svn: 94268
|
|
|
|
|
|
|
|
| |
Prevents an assert on successive redeclarations.
Fixed PR5573.
llvm-svn: 91956
|
|
|
|
|
|
|
|
|
| |
for bases, members, overridden virtual methods, etc. The operations
isDerivedFrom and lookupInBases are now provided by CXXRecordDecl,
rather than by Sema, so that CodeGen and other clients can use them
directly.
llvm-svn: 83396
|
|
|
|
| |
llvm-svn: 81346
|
|
|
|
| |
llvm-svn: 76317
|
|
|
|
|
|
| |
diagnostic IDs.
llvm-svn: 71720
|
|
|
|
|
|
| |
-faccess-control option. When we have better support for it, we can enable it by default again.
llvm-svn: 71706
|