| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Substitute TemplateIdRefExprs with DeclRefExprs. Doug, plz review :)
llvm-svn: 84763
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to all callers. Switch a few other users of CK_Unknown to proper cast
kinds.
Note that there are still some situations where we end up with
CK_Unknown; they're pretty easy to find with grep. There
are still a few missing conversion kinds, specifically
pointer/int/float->bool and the various combinations of real/complex
float/int->real/complex float/int.
llvm-svn: 84623
|
|
|
|
|
|
|
|
| |
t->~T<A0, A1>()
Fixes PR5213.
llvm-svn: 84545
|
|
|
|
| |
llvm-svn: 84448
|
|
|
|
|
|
|
| |
initialization if any of the constructor/initialization arguments are
type-dependent. Fixes PR5224.
llvm-svn: 84365
|
|
|
|
|
|
| |
Taking the address of an overloaded function with an explicit address-of operator wrapped the operator in an implicit cast that added yet another pointer level, leaving us with a corrupted AST, which crashed CodeGen in the test case I've added. Fix this by making FixOverloadedFunctionReference return whether there was an address-of operator and not adding the implicit cast in that case.
llvm-svn: 84362
|
|
|
|
|
|
|
| |
FIXME in CGCXX.cpp that I would like Anders to
take a look at.
llvm-svn: 84265
|
|
|
|
| |
llvm-svn: 84048
|
|
|
|
| |
llvm-svn: 84043
|
|
|
|
|
|
|
| |
Along the way, use RequireCompleteType when testing exception spec types.
Separate all the ugly spec stuff into its own file.
llvm-svn: 83764
|
|
|
|
|
|
|
|
|
| |
assignment and initialization.
The exception specification of the assignee must be the same or a subset of the target. In addition, exception specifications on arguments and return types must be equivalent, but this is not implemented yet.
This currently produces two diagnostics for every invalid assignment/initialization, due to the diagnostic produced outside PerformImplicitConversion, e.g. in CheckSingleInitializer. I don't know how to suppress this; in any case I think it is the wrong place for a diagnostic, since there are other diagnostics produced inside the function. So I'm leaving it as it is for the moment.
llvm-svn: 83710
|
|
|
|
|
|
|
|
|
| |
users to
pass a LookupResult reference to lookup routines. Call out uses which assume a single
result.
llvm-svn: 83674
|
|
|
|
|
|
|
|
|
| |
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: 83153
|
|
|
|
|
|
| |
unbounded chains of operator-> delegations.
llvm-svn: 83134
|
|
|
|
|
|
| |
to strike fear into the hearts of CPUs everywhere.
llvm-svn: 83133
|
|
|
|
|
|
| |
infinit recursion. This patch fixes it. [13.3.1.2]-p2
llvm-svn: 83124
|
|
|
|
| |
llvm-svn: 83119
|
|
|
|
|
|
| |
previous fix eliminated this behavior, so bring it back again.
llvm-svn: 83113
|
|
|
|
|
|
|
|
|
|
|
| |
"usual deallocation function" with two arguments. CodeGen will have to
handle this case specifically, since the value for the second argument
(the size of the allocated object) may have to be computed at run
time.
Fixes the Sema part of PR4782.
llvm-svn: 83080
|
|
|
|
|
|
| |
function.
llvm-svn: 83027
|
|
|
|
|
|
| |
per Doug's comment.
llvm-svn: 82791
|
|
|
|
|
|
| |
Fixed pr5050.
llvm-svn: 82783
|
|
|
|
|
|
|
|
|
|
|
|
| |
value-dependent. Audit (and fixed) all calls to
Expr::isNullPointerConstant() to provide the correct behavior with
value-dependent expressions. Fixes PR5041 and a crash in libstdc++
<locale>.
In the same vein, properly compute value- and type-dependence for
ChooseExpr. Fixes PR4996.
llvm-svn: 82748
|
|
|
|
|
|
|
|
| |
Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our
use of qualifiers and fix a few places that weren't dealing with qualifiers
quite right; many more remain.
llvm-svn: 82705
|
|
|
|
|
|
| |
a reference
llvm-svn: 82666
|
|
|
|
|
|
|
|
|
| |
It uses a recent API to find inherited conversion functions to do
the initializer to reference lvalue conversion (and removes a FIXME).
It issues the ambiguity diagnostics when multiple conversions are found.
WIP.
llvm-svn: 82649
|
|
|
|
| |
llvm-svn: 82594
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
give them the appropriate exception specifications. This,
unfortunately, requires us to maintain and/or implicitly generate
handles to namespace "std" and the class "std::bad_alloc". However,
every other approach I've come up with was more hackish, and this
standard requirement itself is quite the hack.
Fixes PR4829.
llvm-svn: 81939
|
|
|
|
|
|
|
|
| |
to pointer function for delete expression. 2)
Treat type conversion function and its 'const' version
as identical in building the visible conversion list.
llvm-svn: 81930
|
|
|
|
|
|
|
| |
function for delete of a class expression and issue
good diagnostic when result is ambiguous.
llvm-svn: 81870
|
|
|
|
|
|
| |
object to that base class.
llvm-svn: 81852
|
|
|
|
|
|
| |
standard conversion sequence. This lets us remove a workaround in SemaCompleteConstructorCall.
llvm-svn: 81847
|
|
|
|
| |
llvm-svn: 81844
|
|
|
|
| |
llvm-svn: 81842
|
|
|
|
| |
llvm-svn: 81841
|
|
|
|
| |
llvm-svn: 81743
|
|
|
|
|
|
| |
conversion functions.
llvm-svn: 81618
|
|
|
|
| |
llvm-svn: 81608
|
|
|
|
|
|
| |
first use in calling the conversion function on delete statements.
llvm-svn: 81576
|
|
|
|
|
|
|
| |
Also, treat the GNU __null as an integral constant expression to match
GCC's behavior.
llvm-svn: 81490
|
|
|
|
|
|
|
| |
has a single conversion to pointer-to-object type, implicitly convert
to that pointer-to-object type (C++ [expr.delete]p1).
llvm-svn: 81401
|
|
|
|
|
|
|
|
| |
such initializations properly convert constructor arguments and fill
in default arguments where necessary. This also makes the ownership
model more clear.
llvm-svn: 81394
|
|
|
|
|
|
| |
be called, generate implicit child expressions that call them.
llvm-svn: 81383
|
|
|
|
| |
llvm-svn: 81346
|
|
|
|
| |
llvm-svn: 81160
|
|
|
|
| |
llvm-svn: 81068
|
|
|
|
|
|
|
| |
formed without a trailing '(', diagnose the error (these expressions
must be immediately called), emit a fix-it hint, and fix the code.
llvm-svn: 81015
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
expressions, e.g.,
p->~T()
when p is a pointer to a scalar type.
We don't currently diagnose errors when pseudo-destructor expressions
are used in any way other than by forming a call.
llvm-svn: 81009
|