| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
retain/release the temporary object appropriately. Previously, we
would only perform the retain/release operations when the reference
would extend the lifetime of the temporary, but this does the wrong
thing across calls.
llvm-svn: 133620
|
|
|
|
| |
llvm-svn: 133312
|
|
|
|
|
|
|
|
|
|
| |
qualifiers, so that an __unsafe_unretained-qualified type T in ARC code
will have the same mangling as T in non-ARC code, improving ABI
interoperability. This works now because we infer or require a
lifetime qualifier everywhere one can appear in an external
interface. Another part of <rdar://problem/9595486>.
llvm-svn: 133306
|
|
|
|
| |
llvm-svn: 133215
|
|
|
|
| |
llvm-svn: 133144
|
|
|
|
|
|
|
|
|
|
| |
Language-design credit goes to a lot of people, but I particularly want
to single out Blaine Garst and Patrick Beard for their contributions.
Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself,
in no particular order.
llvm-svn: 133103
|
|
|
|
| |
llvm-svn: 132878
|
|
|
|
|
|
| |
// rdar://9566314
llvm-svn: 132791
|
|
|
|
|
|
|
|
| |
with a type-dependent expression, infer the placeholder type
'Context.DependentTy' to indicate that this is just a
placeholder. Fixes PR9982 / <rdar://problem/9486685>.
llvm-svn: 132657
|
|
|
|
|
|
| |
creating aggregate stores in common cases. This is more friendly to fast-isel.
llvm-svn: 131490
|
|
|
|
| |
llvm-svn: 131446
|
|
|
|
| |
llvm-svn: 131403
|
|
|
|
|
|
| |
131365 caused PR9927.
llvm-svn: 131401
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Go through and expand the members of bases into the encoding string (and encode the VTable as well).
Unlike gcc which expands virtual bases as many times as they appear in the
hierarchy, clang will only expand them once at the end, to reflect the actual layout.
Note that there doesn't seem to be a way to indicate in the encoding that
packing/alignment of members is different that normal, in which case
the encoding will be out-of-sync with the real layout.
If the runtime switches to just consider the size of types without
taking into account alignment, we could easily make padding explicit in the
encoding (e.g. using arrays of chars). The encoding strings would be
longer then though.
Also encode a flexible array member as array of 0 size, like gcc, not as a pointer.
llvm-svn: 131365
|
|
|
|
|
|
|
| |
blockScopeInfo's CapturesCXXThis field need get set as
well. // rdar://9362021. John M. please review.
llvm-svn: 130930
|
|
|
|
|
|
|
| |
implement lhs's protocols. // rdar://9091389.
llvm-svn: 129142
|
|
|
|
|
|
| |
for prperty reference types. // rdar://9208606.
llvm-svn: 128551
|
|
|
|
|
|
|
| |
conditioned on whether it has any destructible ivars, not on whether
it has any non-trivial class-object initializers.
llvm-svn: 128074
|
|
|
|
|
|
| |
// rdar://8604515.
llvm-svn: 126869
|
|
|
|
| |
llvm-svn: 126685
|
|
|
|
|
|
|
|
|
|
| |
The prototype for objc_msgSend() is technically variadic -
`id objc_msgSend(id, SEL, ...)`.
But all method calls should use a prototype that matches the method,
not the prototype for objc_msgSend itself().
// rdar://9048030
llvm-svn: 126678
|
|
|
|
| |
llvm-svn: 126599
|
|
|
|
|
|
|
| |
types which are contravariance in argument types and covariance
in return types. // rdar://8979379.
llvm-svn: 125445
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- BlockDeclRefExprs always store VarDecls
- BDREs no longer store copy expressions
- BlockDecls now store a list of captured variables, information about
how they're captured, and a copy expression if necessary
With that in hand, change IR generation to use the captures data in
blocks instead of walking the block independently.
Additionally, optimize block layout by emitting fields in descending
alignment order, with a heuristic for filling in words when alignment
of the end of the block header is insufficient for the most aligned
field.
llvm-svn: 125005
|
|
|
|
| |
llvm-svn: 124210
|
|
|
|
|
|
|
|
| |
exception of explicit template instantiations, which have to be weak_odr.
This fixes PR6996.
llvm-svn: 124089
|
|
|
|
|
|
| |
assigns. // rdar://8761767
llvm-svn: 123391
|
|
|
|
| |
llvm-svn: 123293
|
|
|
|
| |
llvm-svn: 123197
|
|
|
|
| |
llvm-svn: 121194
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
not actually frequently used, because ImpCastExprToType only creates a node
if the types differ. So explicitly create an ICE in the lvalue-to-rvalue
conversion code in DefaultFunctionArrayLvalueConversion() as well as several
other new places, and consistently deal with the consequences throughout the
compiler.
In addition, introduce a new cast kind for loading an ObjCProperty l-value,
and make sure we emit those nodes whenever an ObjCProperty l-value appears
that's not on the LHS of an assignment operator.
This breaks a couple of rewriter tests, which I've x-failed until future
development occurs on the rewriter.
Ted Kremenek kindly contributed the analyzer workarounds in this patch.
llvm-svn: 120890
|
|
|
|
|
|
|
| |
types was not being generated for objc pointers.
// rdar://8681766.
llvm-svn: 119751
|
|
|
|
|
|
| |
out because there are still bugs left.
llvm-svn: 119722
|
|
|
|
|
|
| |
a test change, all for blocks. wip.
llvm-svn: 118745
|
|
|
|
|
|
| |
to match gcc's encoding. Fixes //rdar: // 8519948.
llvm-svn: 115980
|
|
|
|
|
|
|
| |
into a temporary is elidable as well.
(Finishes up radar 8291337).
llvm-svn: 114845
|
|
|
|
|
|
|
| |
for property reference expression (of c++ object type)
in the conditional expression. Fixes // rdar://8291337
llvm-svn: 114783
|
|
|
|
|
|
|
| |
getter expression.
Fixes // rdar://8437240
llvm-svn: 114299
|
|
|
|
|
|
| |
Fixes radar 8437253.
llvm-svn: 114207
|
|
|
|
|
|
|
| |
copy initialization before passing it to
a setter. Fixes radar 8427922.
llvm-svn: 113885
|
|
|
|
|
|
|
| |
reference object to a c++ member function.
fixes radar 8409336.
llvm-svn: 113602
|
|
|
|
|
|
|
|
| |
follows objective's semantics and is not overload'able
with an assignment operator. Fixes a crash and a missing
diagnostics. Radar 8379892.
llvm-svn: 113555
|
|
|
|
|
|
| |
a c++ class object 'ivar'. Fixes radar 8366604.
llvm-svn: 112729
|
|
|
|
|
|
|
|
| |
a -cc1 option. The Darwin linker complains about mixed visibility when linking
gcc-built objects with clang-built objects, and the optimization isn't really
that valuable. Platforms with less ornery linkers can feel free to enable this.
llvm-svn: 110979
|
|
|
|
| |
llvm-svn: 110900
|
|
|
|
|
|
|
|
| |
an lvalue of another, compatible Objective-C object type (e.g., a
subclass). Introduce a new initialization sequence step kind to
describe this binding, along with a new cast kind. Fixes PR7741.
llvm-svn: 110513
|
|
|
|
|
|
| |
Diagnose attempts to do this under the GNU or fragile NeXT runtimes.
llvm-svn: 109298
|
|
|
|
|
|
| |
message send expressions who call methods that return references.
llvm-svn: 108559
|
|
|
|
|
|
| |
should not be mangled either. Fixes radar 8016412.
llvm-svn: 107303
|
|
|
|
|
|
| |
Thanks Daniel D.
llvm-svn: 106758
|