| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Convert all clients to use the new predicate on Type.
llvm-svn: 76076
|
|
|
|
|
|
| |
some target hooks.
llvm-svn: 75895
|
|
|
|
| |
llvm-svn: 75869
|
|
|
|
| |
llvm-svn: 75832
|
|
|
|
|
|
|
|
|
|
|
|
| |
pseudo built-in types, since Sema still injects a typedef for recognition (i.e. they aren't truly built-ins from a parser perspective).
This removes the static data/methods on ObjCObjectPointerType while preserving the nice API (no need to fiddle with ASTContext:-).
This patch also adds Type::isObjCBuiltinType().
This should be the last fairly large patch related to recrafting the ObjC type system. The follow-on patches should be fairly small.
llvm-svn: 75808
|
|
|
|
| |
llvm-svn: 75705
|
|
|
|
| |
llvm-svn: 75684
|
|
|
|
|
|
| |
I don't love the name, however it simplifies the code and is a worthwhile change. If/when we come up with a better name, we can do a search/replace.
llvm-svn: 75650
|
|
|
|
| |
llvm-svn: 75647
|
|
|
|
| |
llvm-svn: 75641
|
|
|
|
|
|
|
| |
--- Reverse-merging r75614 into '.':
U lib/CodeGen/CGDebugInfo.cpp
llvm-svn: 75639
|
|
|
|
|
|
| |
an incremental patch
llvm-svn: 75622
|
|
|
|
| |
llvm-svn: 75614
|
|
|
|
| |
llvm-svn: 75589
|
|
|
|
|
|
|
|
|
| |
- Previously this would crash on recursive types, and it was also incorrectly
stripping off a level of indirection.
- I'm not 100% convinced this is all correct, but it should be a monotonic
improvment.
llvm-svn: 75582
|
|
|
|
| |
llvm-svn: 75569
|
|
|
|
|
|
|
|
| |
http://llvm.org/viewvc/llvm-project?view=rev&revision=75314.
Still more to come...just wanted to get the no-brainers out of the way.
llvm-svn: 75477
|
|
|
|
| |
llvm-svn: 75473
|
|
|
|
| |
llvm-svn: 75471
|
|
|
|
| |
llvm-svn: 75446
|
|
|
|
|
|
|
| |
- Previous code was based on a misunderstanding (on my part) of the type
representation.
llvm-svn: 75385
|
|
|
|
|
|
| |
- This was a latent bug exposed by the recent objc type changes.
llvm-svn: 75383
|
|
|
|
| |
llvm-svn: 75325
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 75265
|
|
|
|
| |
llvm-svn: 75041
|
|
|
|
| |
llvm-svn: 75028
|
|
|
|
| |
llvm-svn: 75021
|
|
|
|
| |
llvm-svn: 74986
|
|
|
|
|
|
|
| |
when struct variables with GC'able members are copied into.
Will provide a test case later.
llvm-svn: 74984
|
|
|
|
|
|
|
| |
Also, enable them in sema so that they are tested, and now that the x86 backend
has stablized.
llvm-svn: 74983
|
|
|
|
|
|
| |
from Enea Zaffanella!
llvm-svn: 74831
|
|
|
|
|
|
|
|
| |
errors when you reference a class before defining it (GNU runtime).
Patch by David Chisnall.
llvm-svn: 74772
|
|
|
|
| |
llvm-svn: 74657
|
|
|
|
| |
llvm-svn: 74642
|
|
|
|
| |
llvm-svn: 74615
|
|
|
|
| |
llvm-svn: 74585
|
|
|
|
|
|
|
| |
Remove ASTContext parameter from DeclContext's methods. This change cascaded down to other Decl's methods and changes to call sites started "escalating".
Timings using pre-tokenized "cocoa.h" showed only a ~1% increase in time run between and after this commit.
llvm-svn: 74506
|
|
|
|
|
|
|
|
| |
subclasses.
Timings showed no significant difference before and after the commit.
llvm-svn: 74504
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is simple enough, but then I thought it would be nice to make PrintingPolicy
get a LangOptions so that various things can key off "bool" and "C++" independently.
This spiraled out of control. There are many fixme's, but I think things are slightly
better than they were before.
One thing that can be improved: CFG should probably have an ASTContext pointer in it,
which would simplify its clients.
llvm-svn: 74493
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Track implicit instantiations vs. the not-yet-supported explicit
specializations
- Give implicit instantiations of function templates (and member
functions of class templates) linkonce_odr linkage.
- Improve name mangling for function template specializations,
including the template arguments of the instantiation and the return
type of the function.
Note that our name-mangling is improved, but not correct: we still
don't mangle substitutions, although the manglings we produce can be
demangled.
llvm-svn: 74466
|
|
|
|
|
|
|
| |
redundant, implicit instantiations of function templates and provide a
place where we can hang function template specializations.
llvm-svn: 74454
|
|
|
|
|
|
| |
FunctionTemplateSpecializationInfo, in DeclTemplate.h. No functionality change.
llvm-svn: 74431
|
|
|
|
| |
llvm-svn: 74414
|
|
|
|
|
|
|
|
| |
function attributes. There are predefined macros that are defined when stack
protectors are used: __SSP__=1 with -fstack-protector and __SSP_ALL__=2 with
-fstack-protector-all.
llvm-svn: 74405
|
|
|
|
| |
llvm-svn: 74324
|
|
|
|
| |
llvm-svn: 74307
|
|
|
|
| |
llvm-svn: 74305
|
|
|
|
| |
llvm-svn: 74304
|