| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Fixes PR5695.
llvm-svn: 90702
|
| |
|
|
|
|
| |
MaybeMarkVirtualImplicitMembersReferenced for non-inline functions.
llvm-svn: 90686
|
| |
|
|
|
|
| |
it gets called during template instantiation.
llvm-svn: 90682
|
| |
|
|
| |
llvm-svn: 90663
|
| |
|
|
| |
llvm-svn: 90662
|
| |
|
|
|
|
| |
ordinary names with Cocoa.h included, by drastically improving the performance of our results sorting.
llvm-svn: 90661
|
| |
|
|
| |
llvm-svn: 90647
|
| |
|
|
| |
llvm-svn: 90614
|
| |
|
|
| |
llvm-svn: 90605
|
| |
|
|
|
|
| |
before declaration is finalized.
llvm-svn: 90600
|
| |
|
|
| |
llvm-svn: 90555
|
| |
|
|
| |
llvm-svn: 90549
|
| |
|
|
| |
llvm-svn: 90542
|
| |
|
|
|
|
|
| |
as a constant integer. Also, some minor cleanup and improvements to the
diagnostics.
llvm-svn: 90504
|
| |
|
|
|
|
| |
create the enum type in the same scope as you would a record type.
llvm-svn: 90500
|
| |
|
|
|
|
|
| |
a new virtual function is declared/instantiated. it is used
in couple of places.
llvm-svn: 90470
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
instantiation, to ensure that we mark class template specilizations as
abstract when we need to and perform checking of abstract classes.
Also, move the checking that determines whether we are creating a
variable of abstract class type *after* we check whether the type is
complete. Otherwise, we won't see when we have an abstract class
template specialization that is implicitly instantiated by this
declaration. This is the "something else" that Sebastian had noted
earlier.
llvm-svn: 90467
|
| |
|
|
|
|
| |
need to copy its attributes down to the instantiated class.
llvm-svn: 90463
|
| |
|
|
|
|
|
|
|
|
|
| |
temporaries that are within our current evaluation context. That way,
nested evaluation contexts (e.g., within a sizeof() expression) won't
see temporaries from outer contexts. Also, make sure to push a new
evaluation context when instantiating the initializer of a variable;
this may be an unevaluated context or a potentially-evaluated context,
depending on whether it's an in-class initializer or not. Fixes PR5672.
llvm-svn: 90460
|
| |
|
|
|
|
|
|
|
|
|
| |
overloaded-operator resolution is wildly untested, but the parallel code for
methods seems to satisfy some trivial tests.
Also change some overload-resolution APIs to take a type instead of an expression,
which lets us avoid creating a spurious CXXThisExpr when resolving implicit
member accesses.
llvm-svn: 90410
|
| |
|
|
|
|
|
|
|
| |
results in them (which we were doing intentionally as a stopgap). Fix
an DeclContext lookup-table ordering problem which was causing UsingDecls to
show up incorrectly when looking for ordinary results. And oh hey
Clang-Code-Syntax passes now.
llvm-svn: 90367
|
| |
|
|
|
|
|
| |
constructor, by keeping the DeclaratorInfo* rather than just the type
and a single location.
llvm-svn: 90355
|
| |
|
|
|
|
| |
that this was causing a problem, but it could have.
llvm-svn: 90343
|
| |
|
|
|
|
| |
members. Fixes PR5667.
llvm-svn: 90341
|
| |
|
|
|
|
| |
generated, we mark any virtual implicit member functions as referenced.
llvm-svn: 90327
|
| |
|
|
| |
llvm-svn: 90313
|
| |
|
|
|
|
|
| |
LookupResult::getAsSingleDecl() is no more. Shift Sema::LookupSingleName to
return null on overloaded results.
llvm-svn: 90309
|
| |
|
|
|
|
|
| |
leaked data structure than before. This kills off the last remaining
explicit uses of OverloadedFunctionDecl in Sema.
llvm-svn: 90306
|
| |
|
|
|
|
|
| |
isVirtual() before we've actually calculated whether the destructor is
virtual.
llvm-svn: 90303
|
| |
|
|
|
|
| |
it's rare, but possible, for the difference to be significant.
llvm-svn: 90301
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
there's nothing interesting we can say now that we're correctly not requiring
the qualifier to name a known base class in dependent contexts.
Require scope specifiers on member access expressions to name complete types
if they're not dependent; delay lookup when they are dependent.
Use more appropriate diagnostics when qualified implicit member access
expressions find declarations from unrelated classes.
llvm-svn: 90289
|
| |
|
|
|
|
| |
Fixes pr5660.
llvm-svn: 90283
|
| |
|
|
|
|
| |
Gets clang-on-clang passing again.
llvm-svn: 90270
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
implicit member access to a specific declaration, go ahead and create
it as a DeclRefExpr or a MemberExpr (with implicit CXXThisExpr base) as
appropriate. Otherwise, create an UnresolvedMemberExpr or
DependentScopeMemberExpr with a null base expression.
By representing implicit accesses directly in the AST, we get the ability
to correctly delay the decision about whether it's actually an instance
member access or not until resolution is complete. This permits us
to correctly avoid diagnosing the 'problem' of 'MyType::foo()'
where the relationship to the type isn't really known until instantiation.
llvm-svn: 90266
|
| |
|
|
|
|
| |
to use it so it at least won't try to access Sema once it is gone.
llvm-svn: 90261
|
| |
|
|
|
|
|
| |
override virtual functions. Also, eliminate a (now redundant) call to
AddOverriddenMethods.
llvm-svn: 90242
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
common to both parsing and template instantiation, so that we'll find
overridden virtuals for member functions of class templates when they
are instantiated.
Additionally, factor out the checking for pure virtual functions, so
that it will be executed both at parsing time and at template
instantiation time.
These changes fix PR5656 (for real), although one more tweak
w.r.t. member function templates will be coming along shortly.
llvm-svn: 90241
|
| |
|
|
|
|
|
|
|
|
| |
ValueDecl, because that isn't always the case in ill-formed
code. Diagnose a common mistake (forgetting to provide a template
argument list for a class template, PR5655) and dyn_cast so that we
handle the general problem of referring to a non-value declaration
gracefully.
llvm-svn: 90239
|
| |
|
|
|
|
| |
be defined as pure. Fixes PR5656.
llvm-svn: 90237
|
| |
|
|
|
|
| |
for a massive speedup
llvm-svn: 90209
|
| |
|
|
| |
llvm-svn: 90204
|
| |
|
|
|
|
| |
IDs in dependent contexts are not dependent if the context names a namespace.
llvm-svn: 90171
|
| |
|
|
|
|
| |
those associated with TemplateNames.
llvm-svn: 90162
|
| |
|
|
|
|
|
|
| |
Create a new UnresolvedMemberExpr for these lookups. Assorted hackery
around qualified member expressions; this will all go away when we
implement the correct (i.e. extremely delayed) implicit-member semantics.
llvm-svn: 90161
|
| |
|
|
|
|
| |
we have a valid delete operator.
llvm-svn: 90156
|
| |
|
|
| |
llvm-svn: 90140
|
| |
|
|
| |
llvm-svn: 90088
|
| |
|
|
|
|
| |
When called with false these functions return whether statistics are enabled. They don't change any state. Since we're not using the return value avoid calling them in the first place.
llvm-svn: 90077
|
| |
|
|
|
|
|
| |
function names outside of templates - they'll probably cause some damage there as
they're largely untested.
llvm-svn: 90064
|
| |
|
|
| |
llvm-svn: 90057
|