| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
preprocessor and initialize it early in clang-cc. This
ensures that __has_builtin works in all modes, not just
when ASTContext is around.
llvm-svn: 73319
|
| |
|
|
|
|
| |
and @protocol expressions.
llvm-svn: 73036
|
| |
|
|
|
|
| |
for the Next runtime.
llvm-svn: 72703
|
| |
|
|
|
|
|
|
| |
an integral constant expression, maintain a cache of the value and the
is-an-ICE flag within the VarDecl itself. This eliminates
exponential-time behavior of the Fibonacci template metaprogram.
llvm-svn: 72428
|
| |
|
|
|
|
| |
No intended functionality change.
llvm-svn: 72410
|
| |
|
|
| |
llvm-svn: 72409
|
| |
|
|
|
|
|
|
| |
can. Also, delay semantic analysis of initialization for
value-dependent as well as type-dependent expressions, since we can't
always properly type-check a value-dependent expression.
llvm-svn: 72233
|
| |
|
|
|
|
|
| |
operator in C++, and verify that template instantiation for the
condition operator does the right thing.
llvm-svn: 72127
|
| |
|
|
| |
llvm-svn: 72058
|
| |
|
|
| |
llvm-svn: 71989
|
| |
|
|
|
|
| |
these are testable yet, though.
llvm-svn: 71953
|
| |
|
|
| |
llvm-svn: 71907
|
| |
|
|
| |
llvm-svn: 71405
|
| |
|
|
| |
llvm-svn: 71041
|
| |
|
|
|
|
| |
extension warning.
llvm-svn: 70805
|
| |
|
|
|
|
|
|
|
| |
into the left-hand side of an assignment expression. This completes
most of PR3500; the only remaining part is to deal with the
GCC-specific implementation-defined behavior for "unsigned long" (and
other) bit-fields.
llvm-svn: 70623
|
| |
|
|
| |
llvm-svn: 70384
|
| |
|
|
| |
llvm-svn: 70145
|
| |
|
|
|
|
| |
the missing bits of ObjCMessageExpr.
llvm-svn: 70100
|
| |
|
|
|
|
| |
any issues now that we have our own tgmath.h.
llvm-svn: 70090
|
| |
|
|
|
|
| |
aggregates even though we already accept explicit ones. Easy fix.
llvm-svn: 69661
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
Add a few commented lines to the test case that point out things that don't work yet.
llvm-svn: 69354
|
| |
|
|
|
|
| |
declaring a static Block 'const'.
llvm-svn: 69306
|
| |
|
|
| |
llvm-svn: 69251
|
| |
|
|
| |
llvm-svn: 69244
|
| |
|
|
| |
llvm-svn: 69240
|
| |
|
|
| |
llvm-svn: 69186
|
| |
|
|
| |
llvm-svn: 69172
|
| |
|
|
|
|
| |
anonymous structs or unions. Fixes PR3778.
llvm-svn: 69153
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
| |
extension.
llvm-svn: 69100
|
| |
|
|
|
|
|
| |
syntax into extension warnings, and provide code-modification hints
showing how to fix the problem.
llvm-svn: 67885
|
| |
|
|
| |
llvm-svn: 67543
|
| |
|
|
|
|
| |
attempting to illegally modify a BlockDeclRefExpr.
llvm-svn: 67491
|
| |
|
|
| |
llvm-svn: 67456
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 67417
|
| |
|
|
|
|
| |
unclear areas. Maybe Doug can shed some light on some of the fixmes.
llvm-svn: 67059
|
| |
|
|
|
|
| |
instantiating template expressions.
llvm-svn: 67030
|
| |
|
|
| |
llvm-svn: 66997
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 66909
|
| |
|
|
| |
llvm-svn: 66837
|
| |
|
|
| |
llvm-svn: 66696
|
| |
|
|
|
|
| |
chosen sub-expression, rather than just evaluating the condition.
llvm-svn: 66018
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
Daniel. Some minor fixes/cleanup. Allow __builtin_choose_expr,
__real__, and __imag__ in ICEs, following gcc's example.
llvm-svn: 65610
|