| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
into its own helper method. No change in functionality.
llvm-svn: 91056
|
| |
|
|
|
|
| |
was not needed (fixes radar 7453430).
llvm-svn: 90981
|
| |
|
|
|
|
| |
tested. Fixes PR5727.
llvm-svn: 90893
|
| |
|
|
|
|
| |
intended functionality change.
llvm-svn: 90865
|
| |
|
|
|
|
| |
Template instantiation can re-use DeclRefExprs.
llvm-svn: 90848
|
| |
|
|
|
|
| |
Still some refactoring to do.
llvm-svn: 90830
|
| |
|
|
|
|
| |
Patch by Nicola Gigante!
llvm-svn: 90814
|
| |
|
|
| |
llvm-svn: 90808
|
| |
|
|
|
|
| |
(fixes radar 7447251).
llvm-svn: 90795
|
| |
|
|
|
|
| |
function, we now wait until the end of the translation unit to mark its virtual member functions as references. This lays the groundwork for fixing PR5557.
llvm-svn: 90752
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
variables,
but the results are imperfect.
For posterity, I did:
cat <<EOF > $cmdfile
s/DeclaratorInfo/TypeSourceInfo/g
s/DInfo/TInfo/g
s/TypeTypeSourceInfo/TypeSourceInfo/g
s/SourceTypeSourceInfo/TypeSourceInfo/g
EOF
find lib -name '*.cpp' -not -path 'lib/Parse/*' -exec sed -i '' -f $cmdfile '{}' \;
find lib -name '*.h' -exec sed -i '' -f $cmdfile '{}' \;
find include -name '*.h' -not -path 'include/clang/Parse/*' -not -path 'include/clang/Basic/*' -exec sed -i '' -f $cmdfile '{}' \;
llvm-svn: 90743
|
| |
|
|
| |
llvm-svn: 90647
|
| |
|
|
| |
llvm-svn: 90555
|
| |
|
|
| |
llvm-svn: 90549
|
| |
|
|
|
|
| |
that this was causing a problem, but it could have.
llvm-svn: 90343
|
| |
|
|
|
|
| |
members. Fixes PR5667.
llvm-svn: 90341
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
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
|
| |
|
|
|
|
|
| |
function names outside of templates - they'll probably cause some damage there as
they're largely untested.
llvm-svn: 90064
|
| |
|
|
|
|
|
|
|
|
|
|
| |
maintains a stack of evaluation contexts rather than having the parser
do it. This change made it simpler to track in which contexts
temporaries were created, so that we could...
"Forget" about temporaries created within unevaluated contexts, so
that we don't build a CXXExprWithTemporaries and, therefore, destroy
the integral-constness of our expressions. Fixes PR5609.
llvm-svn: 89908
|
| |
|
|
|
|
| |
This fixes pr5611.
llvm-svn: 89895
|
| |
|
|
|
|
| |
to build casted expression-list AST to Sema.
llvm-svn: 89827
|
| |
|
|
|
|
| |
the common routine.
llvm-svn: 89802
|
| |
|
|
| |
llvm-svn: 89789
|
| |
|
|
|
|
|
|
|
|
|
|
| |
DependentScopeDeclRefExpr support storing templateids. Unite the common
code paths between ActOnDeclarationNameExpr and ActOnTemplateIdExpr.
This gets us to a point where we don't need to store function templates in
the AST using TemplateNames, which is critical to ripping out OverloadedFunction.
Also resolves a few FIXMEs.
llvm-svn: 89785
|
| |
|
|
|
|
|
| |
Add support for variadic collection functions. More to do
here.
llvm-svn: 89781
|
| |
|
|
| |
llvm-svn: 89778
|
| |
|
|
| |
llvm-svn: 89704
|
| |
|
|
|
|
| |
methods. This fixes a crash when writing sizeof(Incomplete&), and lets ASTContext's methods do the right thing for CodeGen, which fixes PR5590.
llvm-svn: 89668
|
| |
|
|
|
|
|
| |
of the current instantiation and members of an unknown specialization
when type-checking a qualified-if expression.
llvm-svn: 89653
|
| |
|
|
|
|
| |
DeclRefExprs
llvm-svn: 89649
|
| |
|
|
|
|
|
|
|
|
| |
locations" into
a new class. Use it pervasively throughout Sema.
My fingers hurt.
llvm-svn: 89638
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
operand of an addressof operator, and so we should not treat it as an abstract
member-pointer expression and therefore suppress the implicit member access.
This is really a well-formedness constraint on expressions: a DeclRefExpr of
a FieldDecl or a non-static CXXMethodDecl (or template thereof, or unresolved
collection thereof) should not be allowed in an arbitrary location in the AST.
Arguably it shouldn't be allowed anywhere and we should have a different expr
node type for this. But unfortunately we don't have a good way of enforcing
this kind of constraint right now.
llvm-svn: 89578
|
| |
|
|
| |
llvm-svn: 89575
|
| |
|
|
|
|
| |
this information through lookup rather than rederiving it.
llvm-svn: 89570
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
into pretty much everything about overload resolution in order to wean
BuildDeclarationNameExpr off LookupResult::getAsSingleDecl(). Replace
UnresolvedFunctionNameExpr with UnresolvedLookupExpr, which generalizes the
idea of a non-member lookup that we haven't totally resolved yet, whether by
overloading, argument-dependent lookup, or (eventually) the presence of
a function template in the lookup results.
Incidentally fixes a problem with argument-dependent lookup where we were
still performing ADL even when the lookup results contained something from
a block scope.
Incidentally improves a diagnostic when using an ObjC ivar from a class method.
This just fell out from rewriting BuildDeclarationNameExpr's interaction with
lookup, and I'm too apathetic to break it out.
The only remaining uses of OverloadedFunctionDecl that I know of are in
TemplateName and MemberExpr.
llvm-svn: 89544
|
| |
|
|
|
|
|
|
| |
appropriate lookup and simply can't resolve the referrent yet, and
"dependent scope" expressions, where we can't do the lookup yet because the
entity we need to look into is a dependent type.
llvm-svn: 89402
|
| |
|
|
| |
llvm-svn: 89199
|
| |
|
|
| |
llvm-svn: 89188
|
| |
|
|
|
|
|
|
|
|
| |
two classes, one for typenames and one for values; this seems to have some
support from Doug if not necessarily from the extremely-vague-on-this-point
standard. Track the location of the 'typename' keyword in a using-typename
decl. Make a new lookup result for unresolved values and deal with it in
most places.
llvm-svn: 89184
|
| |
|
|
| |
llvm-svn: 89181
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
LookupResult RAII powers to diagnose ambiguity in the results. Other diagnostics
(e.g. access control and deprecation) will be moved to automatically trigger
during lookup as part of this same mechanism.
This abstraction makes it much easier to encapsulate aliasing declarations
(e.g. using declarations) inside the lookup system: eventually, lookup will
just produce the aliases in the LookupResult, and the standard access methods
will naturally strip the aliases off.
llvm-svn: 89027
|