- 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
-
John McCall authored
M-x query-replace-regexp \(Sema::\|Action::\|Parser::\|\)Owning\(Expr\|Stmt\)Result -> \2Result llvm-svn: 111903
-
John McCall authored
llvm-svn: 111901
-
John McCall authored
llvm-svn: 111863
-
- Aug 17, 2010
-
-
Benjamin Kramer authored
and remove getStrData(). Patch by Peter Davies (with some tweaks). llvm-svn: 111229
-
- Aug 12, 2010
-
-
Douglas Gregor authored
llvm-svn: 110945
-
- Aug 10, 2010
-
-
Fariborz Jahanian authored
type receiver (pr7861). llvm-svn: 110696
-
Fariborz Jahanian authored
(radar 8127244). llvm-svn: 110622
-
- Aug 03, 2010
-
-
Sebastian Redl authored
llvm-svn: 110078
-
- Jul 25, 2010
-
-
Douglas Gregor authored
since we aren't going to be calling them ever. llvm-svn: 109377
-
- Jul 23, 2010
-
-
Douglas Gregor authored
them as such. Type::is(Signed|Unsigned|)IntegerType() now return false for vector types, and new functions has(Signed|Unsigned|)IntegerRepresentation() cover integer types and vector-of-integer types. This fixes a bunch of latent bugs. Patch from Anton Yartsev! llvm-svn: 109229
-
- Jul 22, 2010
-
-
Fariborz Jahanian authored
warning flag in clang. Little more to do for a PCH issue. Radar 6507158. llvm-svn: 109129
-
- Jul 13, 2010
-
-
Douglas Gregor authored
strip cv-qualifiers from the expression's type when the language calls for it: in C, that's all the time, while C++ only does it for non-class types. Centralized the computation of the call expression type in QualType::getCallResultType() and some helper functions in other nodes (FunctionDecl, ObjCMethodDecl, FunctionType), and updated all relevant callers of getResultType() to getCallResultType(). Fixes PR7598 and PR7463, along with a bunch of getResultType() call sites that weren't stripping references off the result type (nothing stripped cv-qualifiers properly before this change). llvm-svn: 108234
-
- Jun 16, 2010
-
-
Fariborz Jahanian authored
Moved check before we build the ObjCMessageExpr node. (PR7386 related). llvm-svn: 106139
-
Fariborz Jahanian authored
complete before attempting to bind it to a temporary. Fixes PR7386. llvm-svn: 106130
-
- May 22, 2010
-
-
Douglas Gregor authored
temporaries. There are actually several interrelated fixes here: - When converting an object to a base class, it's only an lvalue cast when the original object was an lvalue and we aren't casting pointer-to-derived to pointer-to-base. Previously, we were misclassifying derived-to-base casts of class rvalues as lvalues, causing various oddities (including problems with reference binding not extending the lifetimes of some temporaries). - Teach the code for emitting a reference binding how to look through no-op casts and parentheses directly, since Expr::IgnoreParenNoOpCasts is just plain wrong for this. Also, make sure that we properly look through multiple levels of indirection from the temporary object, but destroy the actual temporary object; this fixes the reference-binding issue mentioned above. - Teach Objective-C message sends to bind the result as a temporary when needed. This is actually John's change, but it triggered the reference-binding problem above, so it's included here. Now John can actually test his return-slot improvements. llvm-svn: 104434
-
- May 20, 2010
-
-
Abramo Bagnara authored
Renamed misleading getSourceRange -> getLocalSourceRange and getFullSourceRange -> getSourceRange for TypeLoc. llvm-svn: 104220
-
- May 16, 2010
-
-
rdar://7985267Chris Lattner authored
passed to va_start, it doesn't actually pass it. llvm-svn: 103899
-
- May 15, 2010
-
-
John McCall authored
ObjCObjectType, which is basically just a pair of one of {primitive-id, primitive-Class, user-defined @class} with a list of protocols. An ObjCObjectPointerType is therefore just a pointer which always points to one of these types (possibly sugared). ObjCInterfaceType is now just a kind of ObjCObjectType which happens to not carry any protocols. Alter a rather large number of use sites to use ObjCObjectType instead of ObjCInterfaceType. Store an ObjCInterfaceType as a pointer on the decl rather than hashing them in a FoldingSet. Remove some number of methods that are no longer used, at least after this patch. By simplifying ObjCObjectPointerType, we are now able to easily remove and apply pointers to Objective-C types, which is crucial for a certain kind of ObjC++ metaprogramming common in WebKit. llvm-svn: 103870
-
- May 13, 2010
-
-
Fariborz Jahanian authored
Completes radar 7963410. llvm-svn: 103719
-
Fariborz Jahanian authored
class object used as a receiver to an objective-c pointer via a converwsion function. wip. llvm-svn: 103672
-