| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
a reference
llvm-svn: 82666
|
|
|
|
|
|
|
|
| |
that there is one more argument (the one following the comma) and make
the candidate non-viable if the function cannot accept any argument in
that position.
llvm-svn: 82625
|
|
|
|
|
|
|
| |
resolution failed to select a candidate due to
ambiguity in type conversion function selection.
llvm-svn: 82596
|
|
|
|
| |
llvm-svn: 82566
|
|
|
|
| |
llvm-svn: 82565
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
opening parentheses and after each comma. We gather the set of visible
overloaded functions, perform "partial" overloading based on the set
of arguments that we have thus far, and return the still-viable
results sorted by the likelihood that they will be the best candidate.
Most of the changes in this patch are a refactoring of the overloading
routines for a function call, since we needed to separate out the
notion of building an overload set (common to code-completion and
normal semantic analysis) and then what to do with that overload
set. As part of this change, I've pushed explicit template arguments
into a few more subroutines.
There is still much more work to do in this area. Function templates
won't be handled well (unless we happen to deduce all of the template
arguments before we hit the completion point), nor will overloaded
function-call operators or calls to member functions.
llvm-svn: 82549
|
|
|
|
|
|
|
|
|
|
|
| |
Several of the existing methods were identical to their respective
specializations, and so have been removed entirely. Several more 'leaf'
optimizations were introduced.
The getAsFoo() methods which imposed extra conditions, like
getAsObjCInterfacePointerType(), have been left in place.
llvm-svn: 82501
|
|
|
|
|
|
|
|
|
|
| |
point at the template and print out its template arguments, e.g.,
ambiguous-ovl-print.cpp:5:8: note: candidate function template specialization
[with T = int]
void f(T*, long);
llvm-svn: 81907
|
|
|
|
|
|
| |
ambiguity in type conversion function selection.
llvm-svn: 81898
|
|
|
|
|
|
| |
a type convesion function results in ambiguity.
llvm-svn: 81812
|
|
|
|
|
|
| |
conversion function.
llvm-svn: 81807
|
|
|
|
|
|
| |
an overloaded function (template).
llvm-svn: 81804
|
|
|
|
|
|
|
| |
resolution of type conversion functions in base and
current class.
llvm-svn: 81784
|
|
|
|
|
|
| |
(C++ [temp.func.order]).
llvm-svn: 81777
|
|
|
|
| |
llvm-svn: 81608
|
|
|
|
| |
llvm-svn: 81549
|
|
|
|
| |
llvm-svn: 81475
|
|
|
|
|
|
| |
class into a candidate set.
llvm-svn: 81467
|
|
|
|
| |
llvm-svn: 81346
|
|
|
|
|
|
|
|
|
| |
explicitly-specified template argument lists in member reference
expressions, e.g.,
x->f<int>()
llvm-svn: 80646
|
|
|
|
| |
llvm-svn: 80377
|
|
|
|
|
|
| |
type dependent and of integral type should not be treated as null pointer constants.
llvm-svn: 80369
|
|
|
|
| |
llvm-svn: 80368
|
|
|
|
|
|
|
|
|
| |
class template specializations (when possible) and look into base
classes. Thanks to Eli for the test case!
FIXME -=1.
llvm-svn: 80302
|
|
|
|
| |
llvm-svn: 80261
|
|
|
|
| |
llvm-svn: 80260
|
|
|
|
|
|
| |
the process.
llvm-svn: 80258
|
|
|
|
| |
llvm-svn: 80256
|
|
|
|
| |
llvm-svn: 80255
|
|
|
|
|
|
| |
methods over to using it instead of bools arguments.
llvm-svn: 80248
|
|
|
|
| |
llvm-svn: 80182
|
|
|
|
|
|
| |
conversions, from Sylvere Teissier!
llvm-svn: 80112
|
|
|
|
|
|
|
| |
that type. Note that we do not produce a diagnostic if the type is
incomplete; rather, we just don't look for conversion functions. Fixes PR4660.
llvm-svn: 79919
|
|
|
|
|
|
|
| |
generic tree transformation (also used for recanonicalization) and a
small amount of template-instantiation-specific logic.
llvm-svn: 79917
|
|
|
|
| |
llvm-svn: 79916
|
|
|
|
|
|
| |
Make -ast-dump print out the cast kinds of cast expressions.
llvm-svn: 79787
|
|
|
|
|
|
|
| |
template argument deduction from a conversion function (C++
[temp.deduct.conv]) with implicit conversions.
llvm-svn: 79693
|
|
|
|
|
|
|
|
| |
and will participate in overload resolution. Unify the instantiation
of CXXMethodDecls and CXXConstructorDecls, which had already gotten
out-of-sync.
llvm-svn: 79658
|
|
|
|
| |
llvm-svn: 79589
|
|
|
|
|
|
|
|
|
|
| |
- Allowing one to name a member function template within a class
template and on the right-hand side of a member access expression.
- Template argument deduction for calls to member function templates.
- Registering specializations of member function templates (and
finding them later).
llvm-svn: 79581
|
|
|
|
|
|
|
|
| |
where sizeof(short) == sizeof(int). Move UsualArithmeticConversionsType
out of Sema, since it was only there as a historical artifact. Patch by
Enea Zaffanella.
llvm-svn: 79412
|
|
|
|
| |
llvm-svn: 79173
|
|
|
|
| |
llvm-svn: 79172
|
|
|
|
| |
llvm-svn: 79171
|
|
|
|
|
|
| |
CheckFunctionCall and CheckBlockCall return bool instead. No intended functionality change.
llvm-svn: 79157
|
|
|
|
|
|
| |
function.
llvm-svn: 79013
|
|
|
|
| |
llvm-svn: 78395
|
|
|
|
|
|
| |
don't recurs and crash.
llvm-svn: 78323
|
|
|
|
|
|
|
|
| |
this->Base::foo
from James Porter!
llvm-svn: 78278
|
|
|
|
| |
llvm-svn: 78230
|