| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 72347
|
| |
|
|
|
|
| |
is still ignored.
llvm-svn: 72344
|
| |
|
|
| |
llvm-svn: 72342
|
| |
|
|
| |
llvm-svn: 72315
|
| |
|
|
| |
llvm-svn: 72308
|
| |
|
|
|
|
| |
Stub out VisitCXXExprWithTemporaries.
llvm-svn: 72103
|
| |
|
|
| |
llvm-svn: 71937
|
| |
|
|
| |
llvm-svn: 70785
|
| |
|
|
| |
llvm-svn: 70067
|
| |
|
|
| |
llvm-svn: 69747
|
| |
|
|
|
|
|
|
|
|
|
|
| |
struct S {
S(int, int);
};
void f() {
S s(10, 10);
}
llvm-svn: 69330
|
| |
|
|
|
|
| |
implies an all-zero bit pattern.
llvm-svn: 68994
|
| |
|
|
|
|
| |
No functionality change (really).
llvm-svn: 68726
|
| |
|
|
| |
llvm-svn: 67896
|
| |
|
|
| |
llvm-svn: 67477
|
| |
|
|
| |
llvm-svn: 67207
|
| |
|
|
| |
llvm-svn: 65701
|
| |
|
|
|
|
|
|
| |
copies with memcpy instead of memmove. This matches what GCC does and if it
causes a problem with a particular libc we can always fix it with a target
hook.
llvm-svn: 65699
|
| |
|
|
| |
llvm-svn: 64961
|
| |
|
|
|
|
| |
case on x86_64.
llvm-svn: 64333
|
| |
|
|
|
|
| |
list that involves the GNU array-range designator extension
llvm-svn: 63327
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
represents an implicit value-initialization of a subobject of a
particular type. This replaces the (ab)use of CXXZeroValueInitExpr
within initializer lists for the "holes" that occur due to the use of
C99 designated initializers.
The new test case is currently XFAIL'd, because CodeGen's
ConstExprEmitter (in lib/CodeGen/CGExprConstant.cpp) needs to be
taught to value-initialize when it sees ImplicitValueInitExprs.
llvm-svn: 63317
|
| |
|
|
|
|
| |
have to try to guess which member is being initialized.
llvm-svn: 63315
|
| |
|
|
|
|
|
|
|
|
|
|
| |
initializers.
- We now initialize unions properly when a member other than the
first is named by a designated initializer.
- We now provide proper semantic analysis and code generation for
GNU array-range designators *except* that side effects will occur
more than once. We warn about this.
llvm-svn: 63253
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The approach I've taken in this patch is relatively straightforward,
although the code itself is non-trivial. Essentially, as we process
an initializer list we build up a fully-explicit representation of the
initializer list, where each of the subobject initializations occurs
in order. Designators serve to "fill in" subobject initializations in
a non-linear way. The fully-explicit representation makes initializer
lists (both with and without designators) easy to grok for codegen and
later semantic analyses. We keep the syntactic form of the initializer
list linked into the AST for those clients interested in exactly what
the user wrote.
Known limitations:
- Designating a member of a union that isn't the first member may
result in bogus initialization (we warn about this)
- GNU array-range designators are not supported (we warn about this)
llvm-svn: 63242
|
| |
|
|
| |
llvm-svn: 63101
|
| |
|
|
|
|
|
|
| |
accurately states what the function is trying to do and how it is
different from Expr::isEvaluatable. Also get rid of a parameter that is both
unused and inaccurate.
llvm-svn: 62951
|
| |
|
|
|
|
| |
init of static vars still not working. I'll get back to it tomorrow or so
llvm-svn: 62278
|
| |
|
|
| |
llvm-svn: 62008
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and separates lexical name lookup from qualified name lookup. In
particular:
* Make DeclContext the central data structure for storing and
looking up declarations within existing declarations, e.g., members
of structs/unions/classes, enumerators in C++0x enums, members of
C++ namespaces, and (later) members of Objective-C
interfaces/implementations. DeclContext uses a lazily-constructed
data structure optimized for fast lookup (array for small contexts,
hash table for larger contexts).
* Implement C++ qualified name lookup in terms of lookup into
DeclContext.
* Implement C++ unqualified name lookup in terms of
qualified+unqualified name lookup (since unqualified lookup is not
purely lexical in C++!)
* Limit the use of the chains of declarations stored in
IdentifierInfo to those names declared lexically.
* Eliminate CXXFieldDecl, collapsing its behavior into
FieldDecl. (FieldDecl is now a ScopedDecl).
* Make RecordDecl into a DeclContext and eliminates its
Members/NumMembers fields (since one can just iterate through the
DeclContext to get the fields).
llvm-svn: 60878
|
| |
|
|
|
|
| |
PR3152.
llvm-svn: 60389
|
| |
|
|
|
|
|
|
| |
initializers. llvm-gcc appears to be more aggressive, but incorrect,
for constructs like "const int a[] = {1,2,3};"; that said, current
optimizers will do the appropriate optimizations when safe.
llvm-svn: 60270
|
| |
|
|
| |
llvm-svn: 59886
|
| |
|
|
|
|
|
| |
Issuing diagnostics when assigning to read-only properties.
This is work in progress.
llvm-svn: 59874
|
| |
|
|
|
|
| |
memcpy/memmove etc.
llvm-svn: 59824
|
| |
|
|
| |
llvm-svn: 59821
|
| |
|
|
| |
llvm-svn: 59806
|
| |
|
|
|
|
|
|
|
|
| |
- Use dotted notation for blocks related to a particular statement
type.
- Use .end for landing pads.
No functionality change in NDEBUG mode. :)
llvm-svn: 59210
|
| |
|
|
|
|
|
| |
- Emits an unconditional branch, with extra logic to avoid generating
spurious branches out of dummy blocks.
llvm-svn: 59037
|
| |
|
|
|
|
| |
- No functionality change.
llvm-svn: 59017
|
| |
|
|
|
|
| |
now).
llvm-svn: 58681
|
| |
|
|
|
|
| |
- No functionality change.
llvm-svn: 58546
|
| |
|
|
|
|
|
|
| |
t.c:1:13: error: cannot codegen this designators yet
int a[10] = {2, 4, [8]=9, 10};
^~~~~~~~~~~~~~~~~
llvm-svn: 58220
|
| |
|
|
|
|
| |
- No functionality change.
llvm-svn: 56010
|
| |
|
|
|
|
| |
Add CodeGenFunction::EmitMemSetToZero and make AggExprEmitter::EmitAggregateClear use it.
llvm-svn: 55573
|
| |
|
|
| |
llvm-svn: 55567
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Change Obj-C runtime message API, drop the ObjCMessageExpr arg in
favor of just result type and selector. Necessary so it can be
reused in situations where we don't want to cons up an
ObjCMessageExpr.
- Update aggregate binary assignment to know about special property
ref lvalues.
- Add CodeGenFunction::EmitCallArg overload which takes an already
emitted rvalue.
Add CodeGenFunction::StoreComplexIntoAddr.
Disabled logic in Sema for parsing Objective-C dot-syntax that
accesses methods. This code does not search in the correct order and
the AST node has no way of properly representing its results.
Updated StmtDumper to print a bit more information about
ObjCPropertyRefExprs.
llvm-svn: 55561
|
| |
|
|
| |
llvm-svn: 55410
|
| |
|
|
| |
llvm-svn: 55244
|
| |
|
|
|
|
|
|
|
|
|
| |
Implement Obj-C lvalue message sends (aggregate returns).
Update several places to emit more precise ErrorUnsupported warnings
for currently unimplemented Obj-C features (main missing chunks are
property references, Obj-C exception handling, and the for ... in
syntax).
llvm-svn: 55234
|