| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
Removed an unnecessary loop to get to setters incoming
argument. Added DoxyGen comments. Still more work
to do in this area (WIP).
llvm-svn: 79365
|
|
|
|
| |
llvm-svn: 79197
|
|
|
|
| |
llvm-svn: 79196
|
|
|
|
|
|
| |
temporaries from being destroyed when they're bound to a reference variable.
llvm-svn: 79179
|
|
|
|
|
|
| |
VLASize isn't populated for the type yet.
llvm-svn: 79057
|
|
|
|
| |
llvm-svn: 78946
|
|
|
|
| |
llvm-svn: 78756
|
|
|
|
| |
llvm-svn: 77638
|
|
|
|
| |
llvm-svn: 77629
|
|
|
|
|
|
|
|
|
|
| |
ever trigger). Add an "unsupported" case that triggers for C++ code.
It would be nice if someone would implement this properly... it
shouldn't be too hard, but I haven't looked closely at the relevant
code.
llvm-svn: 77562
|
|
|
|
| |
llvm-svn: 77514
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Type::getAsReferenceType() -> Type::getAs<ReferenceType>()
Type::getAsRecordType() -> Type::getAs<RecordType>()
Type::getAsPointerType() -> Type::getAs<PointerType>()
Type::getAsBlockPointerType() -> Type::getAs<BlockPointerType>()
Type::getAsLValueReferenceType() -> Type::getAs<LValueReferenceType>()
Type::getAsRValueReferenceType() -> Type::getAs<RValueReferenceType>()
Type::getAsMemberPointerType() -> Type::getAs<MemberPointerType>()
Type::getAsReferenceType() -> Type::getAs<ReferenceType>()
Type::getAsTagType() -> Type::getAs<TagType>()
And remove Type::getAsReferenceType(), etc.
This change is similar to one I made a couple weeks ago, but that was partly
reverted pending some additional design discussion. With Doug's pending smart
pointer changes for Types, it seemed natural to take this approach.
llvm-svn: 77510
|
|
|
|
|
|
|
| |
excpression, if needed, and remove some ir-gen code
now unnencessary.
llvm-svn: 77490
|
|
|
|
|
|
| |
and use it in several places.
llvm-svn: 77411
|
|
|
|
| |
llvm-svn: 77368
|
|
|
|
| |
llvm-svn: 77351
|
|
|
|
| |
llvm-svn: 77332
|
|
|
|
| |
llvm-svn: 77012
|
|
|
|
|
|
| |
since it's meaning is completely different than for non-bit fields.
llvm-svn: 76882
|
|
|
|
|
|
|
| |
__attribute__((address_space(1))) struct {int arr[ 3 ]; } *p1;
... = p1->arr[2]; // load from address space 1
llvm-svn: 76717
|
|
|
|
|
|
|
|
|
| |
until Doug Gregor's Type smart pointer code lands (or more discussion occurs).
These methods just call the new Type::getAs<XXX> methods, so we still have
reduced implementation redundancy. Having explicit getAsXXXType() methods makes
it easier to set breakpoints in the debugger.
llvm-svn: 76193
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This method is intended to eventually replace the individual
Type::getAsXXXType<> methods.
The motivation behind this change is twofold:
1) Reduce redundant implementations of Type::getAsXXXType() methods. Most of
them are basically copy-and-paste.
2) By centralizing the implementation of the getAs<Type> logic we can more
smoothly move over to Doug Gregor's proposed canonical type smart pointer
scheme.
Along with this patch:
a) Removed 'Type::getAsPointerType()'; now clients use getAs<PointerType>.
b) Removed 'Type::getAsBlockPointerTypE()'; now clients use getAs<BlockPointerType>.
llvm-svn: 76098
|
|
|
|
|
|
| |
Convert all clients to use the new predicate on Type.
llvm-svn: 76076
|
|
|
|
| |
llvm-svn: 75869
|
|
|
|
| |
llvm-svn: 75705
|
|
|
|
|
|
|
|
|
|
|
|
| |
The idea is to segregate Objective-C "object" pointers from general C pointers (utilizing the recently added ObjCObjectPointerType). The fun starts in Sema::GetTypeForDeclarator(), where "SomeInterface *" is now represented by a single AST node (rather than a PointerType whose Pointee is an ObjCInterfaceType). Since a significant amount of code assumed ObjC object pointers where based on C pointers/structs, this patch is very tedious. It should also explain why it is hard to accomplish this in smaller, self-contained patches.
This patch does most of the "heavy lifting" related to moving from PointerType->ObjCObjectPointerType. It doesn't include all potential "cleanups". The good news is additional cleanups can be done later (some are noted in the code). This patch is so large that I didn't want to include any changes that are purely aesthetic.
By making the ObjC types truly built-in, they are much easier to work with (and require fewer "hacks"). For example, there is no need for ASTContext::isObjCIdStructType() or ASTContext::isObjCClassStructType()! We believe this change (and the follow-up cleanups) will pay dividends over time.
Given the amount of code change, I do expect some fallout from this change (though it does pass all of the clang tests). If you notice any problems, please let us know asap! Thanks.
llvm-svn: 75314
|
|
|
|
|
|
|
|
|
| |
The implementations of these methods can Use Decl::getASTContext() to get the ASTContext.
This commit touches a lot of files since call sites for these methods are everywhere.
I used pre-tokenized "carbon.h" and "cocoa.h" headers to do some timings, and there was no real time difference between before the commit and after it.
llvm-svn: 74501
|
|
|
|
| |
llvm-svn: 74324
|
|
|
|
| |
llvm-svn: 73702
|
|
|
|
|
|
| |
always_inline from working.
llvm-svn: 73273
|
|
|
|
|
|
|
| |
insert/extract; the relevant instructions are defined to take only an
i32.
llvm-svn: 73005
|
|
|
|
|
|
| |
for the Next runtime.
llvm-svn: 72703
|
|
|
|
|
|
| |
K&R-style definition.
llvm-svn: 72690
|
|
|
|
| |
llvm-svn: 72655
|
|
|
|
| |
llvm-svn: 72649
|
|
|
|
| |
llvm-svn: 72648
|
|
|
|
| |
llvm-svn: 72636
|
|
|
|
|
|
|
| |
any body can spot codegen bugs with volatile, or knows of any in the
bug database, let me know.
llvm-svn: 72572
|
|
|
|
| |
llvm-svn: 72491
|
|
|
|
| |
llvm-svn: 72458
|
|
|
|
|
|
| |
lvalues only for now)
llvm-svn: 72449
|
|
|
|
|
|
| |
emit an expr.
llvm-svn: 72446
|
|
|
|
| |
llvm-svn: 72439
|
|
|
|
|
|
| |
is still ignored.
llvm-svn: 72344
|
|
|
|
|
|
| |
- Otherwise we may incorrectly miss generation of some write barriers.
llvm-svn: 72313
|
|
|
|
|
|
|
|
| |
It would be nice if someone could write an ObjC++ testcase for the case
of passing a property returning a struct to a function taking a const
reference.
llvm-svn: 72159
|
|
|
|
| |
llvm-svn: 72157
|
|
|
|
| |
llvm-svn: 72155
|
|
|
|
| |
llvm-svn: 72153
|
|
|
|
| |
llvm-svn: 72150
|