- Apr 18, 2009
-
-
Douglas Gregor authored
lazy PCH deserialization. Propagate that argument wherever it needs to be. No functionality change, except that I've tightened up a few PCH tests in preparation. llvm-svn: 69406
-
- Apr 17, 2009
-
-
Douglas Gregor authored
1) Accidentally used delete [] on an array of statements that was allocated with ASTContext's allocator 2) Deserialization of names with multiple declarations (e.g., a struct and a function) used the wrong mangling constant, causing it to view declaration IDs as Decl*s. 403.gcc builds and links properly. llvm-svn: 69390
-
Sebastian Redl authored
Add a few commented lines to the test case that point out things that don't work yet. llvm-svn: 69354
-
- Apr 16, 2009
-
-
rdar://problem/6765383Steve Naroff authored
Fix <rdar://problem/6765383> clang-6: clang does not appear to support declaring a static Block 'const'. llvm-svn: 69306
-
Douglas Gregor authored
llvm-svn: 69251
-
Douglas Gregor authored
llvm-svn: 69244
-
Douglas Gregor authored
llvm-svn: 69240
-
- Apr 15, 2009
-
-
Douglas Gregor authored
llvm-svn: 69186
-
Douglas Gregor authored
llvm-svn: 69172
-
Douglas Gregor authored
anonymous structs or unions. Fixes PR3778. llvm-svn: 69153
-
Daniel Dunbar authored
- Strip off extra parens when looking for casts. - Change the location info to point at the cast (instead of the assignment). For example, on int *b; #define a ((void*) b) void f0() { a = 10; } we now emit: /tmp/t.c:4:3: error: assignment to cast is illegal, lvalue casts are not supported a = 10; ^ ~ /tmp/t.c:2:12: note: instantiated from: #define a ((void*) b) ~^~~~~~~~~~ instead of: /tmp/t.c:4:5: error: expression is not assignable a = 10; ~ ^ llvm-svn: 69114
-
Daniel Dunbar authored
extension. llvm-svn: 69100
-
- Mar 28, 2009
-
-
Douglas Gregor authored
syntax into extension warnings, and provide code-modification hints showing how to fix the problem. llvm-svn: 67885
-
- Mar 23, 2009
-
-
Chris Lattner authored
llvm-svn: 67543
-
Eli Friedman authored
attempting to illegally modify a BlockDeclRefExpr. llvm-svn: 67491
-
- Mar 22, 2009
-
-
Chris Lattner authored
llvm-svn: 67456
-
- Mar 21, 2009
-
-
Douglas Gregor authored
its vectors based on the subobject type we're initializing and the (unstructured) initializer list. This eliminates some malloc thrashing when parsing initializers (from 117 vector reallocations down to 0 when parsing Cocoa.h). We can't always pre-allocate the right amount of storage, since designated initializers can cause us to initialize in non-predictable patterns. llvm-svn: 67421
-
Douglas Gregor authored
llvm-svn: 67417
-
- Mar 17, 2009
-
-
Sebastian Redl authored
Almost complete implementation of rvalue references. One bug, and a few unclear areas. Maybe Doug can shed some light on some of the fixmes. llvm-svn: 67059
-
- Mar 15, 2009
-
-
Anders Carlsson authored
Add the ability to clone integer and string literals. Use it when instantiating template expressions. llvm-svn: 67030
-
- Mar 14, 2009
-
-
Anders Carlsson authored
llvm-svn: 66997
-
Douglas Gregor authored
always, refactored the existing logic to tease apart the parser action and the semantic analysis shared by the parser and template instantiation. llvm-svn: 66987
-
- Mar 13, 2009
-
-
Douglas Gregor authored
instantiation for binary operators. This change moves most of the operator-overloading code from the parser action ActOnBinOp to a new, parser-independent semantic checking routine CreateOverloadedBinOp. Of particular importance is the fact that CreateOverloadedBinOp does *not* perform any name lookup based on the current parsing context (it doesn't take a Scope*), since it has to be usable during template instantiation, when there is no scope information. Rather, it takes a pre-computed set of functions that are visible from the context or via argument-dependent lookup, and adds to that set any member operators and built-in operator candidates. The set of functions is computed in the parser action ActOnBinOp based on the current context (both operator name lookup and argument-dependent lookup). Within a template, the set computed by ActOnBinOp is saved within the type-dependent AST node and is augmented with the results of argument-dependent name lookup at instantiation time (see TemplateExprInstantiator::VisitCXXOperatorCallExpr). Sadly, we can't fully test this yet. I'll follow up with template instantiation for sizeof so that the real fun can begin. llvm-svn: 66923
-
Chris Lattner authored
llvm-svn: 66909
-
- Mar 12, 2009
-
-
Douglas Gregor authored
llvm-svn: 66837
-
- Mar 11, 2009
-
-
Douglas Gregor authored
llvm-svn: 66696
-
- Mar 04, 2009
-
-
Eli Friedman authored
chosen sub-expression, rather than just evaluating the condition. llvm-svn: 66018
-
- Feb 27, 2009
-
-
Eli Friedman authored
normal expression, and change Evaluate and IRGen to evaluate it like a normal expression. This simplifies the code significantly, and fixes PR3396. llvm-svn: 65622
-
Eli Friedman authored
Daniel. Some minor fixes/cleanup. Allow __builtin_choose_expr, __real__, and __imag__ in ICEs, following gcc's example. llvm-svn: 65610
-
Mike Stump authored
llvm-svn: 65609
-
- Feb 26, 2009
-
-
Eli Friedman authored
is a rather big change, but I think this is the direction we want to go; the code is significantly shorter now, and it doesn't duplicate Evaluate code. There shouldn't be any visible changes as far as I know. There has been some movement towards putting ICE handling into Evaluate (for example, VerifyIntegerConstantExpression uses Evaluate instead of isICE). This patch is sort of the opposite of the approach, making ICE handling work without Evaluate being aware of it. I think this approach is better because it separates the code that does the constant evaluation from code that's calculating a rather arbitrary predicate. The one thing I don't really like about this patch is that the handling of commas in C99 complicates it signficantly. (Seriously, what was the standards committee thinking when they wrote that part?) I think I've come up with a decent approach, but it doesn't feel ideal. I might add some way to check for evaluated commas from Evaluate in a subsequent patch; that said, it might not be worth bothering. llvm-svn: 65524
-
- Feb 24, 2009
-
-
Chris Lattner authored
The big difference here is that (like string literal) @encode has array type, not pointer type. llvm-svn: 65391
-
- Feb 23, 2009
-
-
Fariborz Jahanian authored
of a pointer to object; This patch does this odd behavior according to gcc. llvm-svn: 65334
-
- Feb 22, 2009
-
-
Fariborz Jahanian authored
true a local pointer to objective-c object in generating write barriers. llvm-svn: 65290
-
Eli Friedman authored
PR3254 and part of PR3433. The isICE changes are necessary to keep the computed results consistent with Evaluate. llvm-svn: 65258
-
- Feb 20, 2009
-
-
Eli Friedman authored
isn't getting used by Sema or CodeGen at the moment...) llvm-svn: 65107
-
- Feb 18, 2009
-
-
Chris Lattner authored
llvm-svn: 64961
-
Chris Lattner authored
so it shows up in -ast-dump. llvm-svn: 64901
-
Chris Lattner authored
stuff behind a private static function. llvm-svn: 64898
-
Chris Lattner authored
the various PPTokens that are pasted together to make it. In the course of working on this, I discovered ParseObjCStringLiteral which needs some work. I'll tackle it next. llvm-svn: 64892
-