- Jun 21, 2011
-
-
Fariborz Jahanian authored
__builtin___CFStringMakeConstantString and CF typed function calls with explicit cf_returns_retained/cf_returns_not_retained attributes. // rdar://9544832 llvm-svn: 133535
-
Fariborz Jahanian authored
// rdar://9474349 llvm-svn: 133525
-
Jay Foad authored
use the deprecated forms of llvm::StringMap::GetOrCreateValue(). llvm-svn: 133515
-
- Jun 20, 2011
-
-
Fariborz Jahanian authored
message sent to an objc method (or property access) // rdar://9474349 llvm-svn: 133469
-
- Jun 17, 2011
-
-
John McCall authored
llvm-svn: 133246
-
Fariborz Jahanian authored
(even though it is incomplete type) because gcc says so. // rdar://9622422 llvm-svn: 133208
-
- Jun 16, 2011
-
-
John McCall authored
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
-
- Jun 11, 2011
-
-
Douglas Gregor authored
Related result types apply Cocoa conventions to the type of message sends and property accesses to Objective-C methods that are known to always return objects whose type is the same as the type of the receiving class (or a subclass thereof), such as +alloc and -init. This tightens up static type safety for Objective-C, so that we now diagnose mistakes like this: t.m:4:10: warning: incompatible pointer types initializing 'NSSet *' with an expression of type 'NSArray *' [-Wincompatible-pointer-types] NSSet *array = [[NSArray alloc] init]; ^ ~~~~~~~~~~~~~~~~~~~~~~ /System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:72:1: note: instance method 'init' is assumed to return an instance of its receiver type ('NSArray *') - (id)init; ^ It also means that we get decent type inference when writing code in Objective-C++0x: auto array = [[NSMutableArray alloc] initWithObjects:@"one", @"two",nil]; // ^ now infers NSMutableArray* rather than id llvm-svn: 132868
-
- May 14, 2011
-
-
Argyrios Kyrtzidis authored
There are APIs, e.g. [NSValue valueWithBytes:objCType:], which use the encoding to find out the size of an object pointed to by a pointer. Make things safer by making it illegal to @encode incomplete types. llvm-svn: 131364
-
- Apr 23, 2011
-
-
Fariborz Jahanian authored
a 'deprecated' selector in the diagnostics for the selector. // rdar://9309223 llvm-svn: 130062
-
- Apr 20, 2011
-
-
Douglas Gregor authored
access expression that appears to be a property reference. Fixes <rdar://problem/8985943>. llvm-svn: 129865
-
- Apr 16, 2011
-
-
Fariborz Jahanian authored
// rdar://9287695 llvm-svn: 129615
-
- Apr 14, 2011
-
-
Anders Carlsson authored
llvm-svn: 129488
-
- Apr 08, 2011
-
-
John Wiegley authored
This patch authored by Eric Niebler. Many methods on the Sema class (e.g. ConvertPropertyForRValue) take Expr pointers as in/out parameters (Expr *&). This is especially true for the routines that apply implicit conversions to nodes in-place. This design is workable only as long as those conversions cannot fail. If they are allowed to fail, they need a way to report their failures. The typical way of doing this in clang is to use an ExprResult, which has an extra bit to signal a valid/invalid state. Returning ExprResult is de riguour elsewhere in the Sema interface. We suggest changing the Expr *& parameters in the Sema interface to ExprResult &. This increases interface consistency and maintainability. This interface change is important for work supporting MS-style C++ properties. For reasons explained here <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2011-February/013180.html>, seemingly trivial operations like rvalue/lvalue conversions that formerly could not fail now can. (The reason is that given the semantics of the feature, getter/setter method lookup cannot happen until the point of use, at which point it may be found that the method does not exist, or it may have the wrong type, or overload resolution may fail, or it may be inaccessible.) llvm-svn: 129143
-
- Apr 06, 2011
-
-
Fariborz Jahanian authored
types such that protocols are seached first. Fixes // rdar://9224670 llvm-svn: 129016
-
- Mar 29, 2011
-
-
Fariborz Jahanian authored
an executable test to llvm test suite. // rdar://9070460. llvm-svn: 128435
-
- Mar 28, 2011
-
-
Fariborz Jahanian authored
// rdar://9181463 llvm-svn: 128410
-
- Mar 27, 2011
-
-
Fariborz Jahanian authored
an objc method. Fixes // rdar://9181463 llvm-svn: 128389
-
- Mar 09, 2011
-
-
Fariborz Jahanian authored
list of protocols as well. // rdar://9078584 llvm-svn: 127367
-
Fariborz Jahanian authored
to avoid a bogus warning. // rdar:// 9072298 llvm-svn: 127355
-
- Mar 08, 2011
-
-
Fariborz Jahanian authored
varienty of cases. // rdar://9092208 llvm-svn: 127257
-
- Feb 17, 2011
-
-
Fariborz Jahanian authored
llvm-svn: 125752
-
Fariborz Jahanian authored
a forward class. // rdar://8851803 llvm-svn: 125699
-
- Feb 08, 2011
-
-
Fariborz Jahanian authored
in liu of a class method getter. objc++ uses a different code path and is more involved (TBD). llvm-svn: 125061
-
- Feb 07, 2011
-
-
John McCall authored
- 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
-
- Feb 03, 2011
-
-
John McCall authored
llvm-svn: 124786
-
- Jan 23, 2011
-
-
Ted Kremenek authored
error: no super class declared in @interface for 'XXX' to be: error: 'X' cannot use 'super' because it is a root class The latter explains what the user actually did wrong. Fixes: <rdar://problem/8904409> llvm-svn: 124074
-
- Jan 14, 2011
-
-
Ted Kremenek authored
llvm-svn: 123482
-
- Jan 11, 2011
-
-
Douglas Gregor authored
complete. However, if it returns a reference type, don't require the type it refers to to be complete. Fixes <rdar://problem/8807070>. llvm-svn: 123214
-
- Dec 22, 2010
-
-
Fariborz Jahanian authored
if property-dot expression is decidedly an rvalue. // rdar://8155806. llvm-svn: 122430
-
- Dec 21, 2010
-
-
Fariborz Jahanian authored
unknown type and there is a possibility that at runtime method is resolved to a deprecated or unavailable method. Addreses // rdar://8769853 llvm-svn: 122294
-
- Dec 16, 2010
-
-
Fariborz Jahanian authored
in a forward @class object. // rdar://8774513 llvm-svn: 121933
-
- Dec 10, 2010
-
-
Argyrios Kyrtzidis authored
llvm-svn: 121516
-
- Dec 04, 2010
-
-
John McCall authored
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
-
Fariborz Jahanian authored
no property accessor class method to be found, instead of crashing in IRGen. // rdar://8703553 llvm-svn: 120855
-
- Dec 02, 2010
-
-
John McCall authored
into the latter. llvm-svn: 120643
-
- Dec 01, 2010
-
-
Fariborz Jahanian authored
'Class' type, disgnostic should refere to a class method. Fixes // rdar://8592156 llvm-svn: 120517
-
- Nov 18, 2010
-
-
John McCall authored
out because there are still bugs left. llvm-svn: 119722
-
John McCall authored
store it on the expression node. Also store an "object kind", which distinguishes ordinary "addressed" l-values (like variable references and pointer dereferences) and bitfield, @property, and vector-component l-values. Currently we're not using these for much, but I aim to switch pretty much everything calculating l-valueness over to them. For now they shouldn't necessarily be trusted. llvm-svn: 119685
-
- Nov 13, 2010
-
-
John McCall authored
llvm-svn: 118966
-