| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
string.
That said, we should probably try and track down the correct clobber
lists for the targets that don't have them (PPC, ARM, and Sparc),
so that we can generate correct code.
llvm-svn: 61298
|
| |
|
|
| |
llvm-svn: 61295
|
| |
|
|
|
|
|
|
|
|
| |
which can refer to static data members, enumerators, and member
functions as well as to non-static data members.
Implement correct lvalue computation for member references in C++.
Compute the result type of non-static data members of reference type properly.
llvm-svn: 61294
|
| |
|
|
|
|
| |
warning by using an unsigned index.
llvm-svn: 61292
|
| |
|
|
|
|
|
|
|
|
| |
simple test that actually does VLA codegen.
Note that despite the fact that the alloca isn't in the entry block, it
should dominate all uses; this is guaranteed by the restrictions on goto
into VLA scope in C99.
llvm-svn: 61291
|
| |
|
|
| |
llvm-svn: 61290
|
| |
|
|
|
|
| |
return statements. Noticed by Eli Friedman.
llvm-svn: 61289
|
| |
|
|
| |
llvm-svn: 61288
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Emit the size even if the declared type is a variably modified type. This lets us handle
void f(int n) {
int (*a)[n];
printf("size: %d\n", sizeof(*a));
}
llvm-svn: 61285
|
| |
|
|
| |
llvm-svn: 61284
|
| |
|
|
| |
llvm-svn: 61283
|
| |
|
|
|
|
| |
@encode of classes and bitfields.
llvm-svn: 61268
|
| |
|
|
|
|
| |
code gen which did not belong there.
llvm-svn: 61203
|
| |
|
|
|
|
|
|
|
|
| |
- Update comment to reflect fact that StructRet is now supported for
any type (modulo LLVM support).
- No functionality change, no scalar types currently use this
feature.
llvm-svn: 61192
|
| |
|
|
|
|
|
| |
Note that one test duplicate-ivar-check.m will fail because I
need to re-implement duplicate ivar checking.
llvm-svn: 61154
|
| |
|
|
|
|
|
| |
Someone should double-check that I didn't somehow break ObjC
serialization; I think the change there actually changes the semantics.
llvm-svn: 61098
|
| |
|
|
| |
llvm-svn: 61097
|
| |
|
|
|
|
|
| |
is done. Layout is calculated lazily at code gen type.
This patch changes the name.
llvm-svn: 61054
|
| |
|
|
|
|
| |
ivars.
llvm-svn: 61043
|
| |
|
|
|
|
| |
when a break/continue won't cross a try block.
llvm-svn: 60998
|
| |
|
|
|
|
| |
matching the storage layout for this ivar
llvm-svn: 60996
|
| |
|
|
| |
llvm-svn: 60989
|
| |
|
|
| |
llvm-svn: 60943
|
| |
|
|
| |
llvm-svn: 60939
|
| |
|
|
|
|
| |
(Saving the stack isn't implemented right now :)
llvm-svn: 60925
|
| |
|
|
| |
llvm-svn: 60924
|
| |
|
|
|
|
| |
output that GCC does. rdar://6440297
llvm-svn: 60922
|
| |
|
|
| |
llvm-svn: 60897
|
| |
|
|
|
|
| |
RecordDecl::field_const_iterator, propagating the constness down to the FieldDecls.
llvm-svn: 60883
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 60827
|
| |
|
|
|
|
|
| |
the synthesis is in an implementation of s subclass of
a super class where the property has been declared.
llvm-svn: 60792
|
| |
|
|
| |
llvm-svn: 60778
|
| |
|
|
| |
llvm-svn: 60729
|
| |
|
|
|
|
|
|
|
|
|
|
| |
expressions, and value-dependent expressions. This permits us to parse
some template definitions.
This is not a complete solution; we're missing type- and
value-dependent computations for most of the expression types, and
we're missing checks for dependent types and type-dependent
expressions throughout Sema.
llvm-svn: 60615
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
parameters, with some semantic analysis:
- Template parameters are introduced into template parameter scope
- Complain about template parameter shadowing (except in Microsoft mode)
Note that we leak template parameter declarations like crazy, a
problem we'll remedy once we actually create proper declarations for
templates.
Next up: dependent types and value-dependent/type-dependent
expressions.
llvm-svn: 60597
|
| |
|
|
| |
llvm-svn: 60535
|
| |
|
|
|
|
| |
makes several CodeGenObjC tests pass on 64-bit by fixing assertions. This doesn't mean that the result is actually what the GNU runtime expects, though.
llvm-svn: 60515
|
| |
|
|
|
|
| |
to external.
llvm-svn: 60462
|
| |
|
|
|
|
| |
ScalarExprEmitter::VisitBinLOr.
llvm-svn: 60415
|
| |
|
|
|
|
| |
PR3152.
llvm-svn: 60389
|
| |
|
|
| |
llvm-svn: 60324
|
| |
|
|
| |
llvm-svn: 60323
|
| |
|
|
| |
llvm-svn: 60321
|
| |
|
|
|
|
|
|
| |
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: 60147
|
| |
|
|
| |
llvm-svn: 60122
|
| |
|
|
|
|
| |
PR3134.
llvm-svn: 60109
|
| |
|
|
| |
llvm-svn: 60058
|
| |
|
|
| |
llvm-svn: 60051
|