- 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
-
- Oct 26, 2010
-
-
John McCall authored
anymore. llvm-svn: 117357
-
- Oct 19, 2010
-
-
Fariborz Jahanian authored
PR6056, //rdar: //8564463 llvm-svn: 116819
-
- Oct 15, 2010
-
-
Douglas Gregor authored
identifiers to determine good typo-correction candidates. Once we've identified those candidates, we perform name lookup on each of them and the consider the results. This optimization makes typo correction > 2x faster on a benchmark example using a single typo (NSstring) in a tiny file that includes Cocoa.h from a precompiled header, since we are deserializing far less information now during typo correction. There is a semantic change here, which is interesting. The presence of a similarly-named entity that is not visible can now affect typo correction. This is both good (you won't get weird corrections if the thing you wanted isn't in scope) and bad (you won't get good corrections if there is a similarly-named-but-completely-unrelated thing). Time will tell whether it was a good choice or not. llvm-svn: 116528
-
- Oct 14, 2010
-
-
Fariborz Jahanian authored
'super' as receiver of property or a setter/getter methods. //rdar: //8525788 llvm-svn: 116483
-
- Sep 24, 2010
-
-
Fariborz Jahanian authored
vla. Implements pr7827. llvm-svn: 114737
-
- Sep 16, 2010
-
-
Douglas Gregor authored
sends. These are far trickier than instance messages, because we typically have something like NSArray alloc] where it appears to be a declaration of a variable named "alloc" up until we see the ']' (or a ':'), and at that point we can't backtrace. So, we use a combination of syntactic and semantic disambiguation to treat this as a message send only when the type is an Objective-C type and it has the syntax of a class message send (which would otherwise be ill-formed). llvm-svn: 114057
-
Douglas Gregor authored
narrow, almost useless case where we're inside a parenthesized expression, e.g., (NSArray alloc]) The solution to the general case still eludes me. llvm-svn: 114039
-
- Sep 15, 2010
-
-
Douglas Gregor authored
part of parser recovery. For example, given: a method1:arg]; we detect after parsing the expression "a" that we have the start of a message send expression. We pretend we've seen a '[' prior to the a, then parse the remainder as a message send. We'll then give a diagnostic+fix-it such as: fixit-objc-message.m:17:3: error: missing '[' at start of message send expression a method1:arg]; ^ [ The algorithm here is very simple, and always assumes that the open bracket goes at the beginning of the message send. It also only works for non-super instance message sends at this time. llvm-svn: 113968
-
- Aug 27, 2010
-
-
John McCall authored
One who seeks the Tao unlearns something new every day. Less and less remains until you arrive at non-action. When you arrive at non-action, nothing will be left undone. llvm-svn: 112244
-
- Aug 26, 2010
-
-
John McCall authored
Clients of Sema don't need to know (for example) the list of diagnostics we support. llvm-svn: 112093
-
- Aug 25, 2010
-
-
John McCall authored
to the new constants. llvm-svn: 112047
-
- Aug 24, 2010
-
-
John McCall authored
#include Sema.h while keeping all the AST declarations opaque. That may not be reasonably attainable, though. llvm-svn: 111907
-