| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 72492
|
|
|
|
|
|
| |
exressions.
llvm-svn: 72479
|
|
|
|
|
|
| |
one else is tempted to copy the style, incorrectly.
llvm-svn: 72448
|
|
|
|
| |
llvm-svn: 72439
|
|
|
|
|
|
| |
we actually have a destination.
llvm-svn: 72429
|
|
|
|
| |
llvm-svn: 72353
|
|
|
|
| |
llvm-svn: 72352
|
|
|
|
|
|
| |
how to get the backend to know that the operation is volatile.
llvm-svn: 72348
|
|
|
|
| |
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
|