| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 77228
|
| |
|
|
|
|
| |
This requires llvm rev. 76769 or higher.
llvm-svn: 76770
|
| |
|
|
| |
llvm-svn: 76327
|
| |
|
|
| |
llvm-svn: 76321
|
| |
|
|
| |
llvm-svn: 75684
|
| |
|
|
| |
llvm-svn: 75647
|
| |
|
|
| |
llvm-svn: 75641
|
| |
|
|
|
|
|
| |
--- Reverse-merging r75614 into '.':
U lib/CodeGen/CGDebugInfo.cpp
llvm-svn: 75639
|
| |
|
|
| |
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: 75473
|
| |
|
|
| |
llvm-svn: 75471
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
from Enea Zaffanella!
llvm-svn: 74831
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 74304
|
| |
|
|
| |
llvm-svn: 74099
|
| |
|
|
|
|
|
|
|
|
|
|
| |
representation.
Add a type (ObjCObjectPointerType) and remove a type (ObjCQualifiedIdType).
This large/tedious patch is just a first step. Next step is to remove ObjCQualifiedInterfaceType. After that, I will remove the magic TypedefType for 'id' (installed by Sema). This work will enable various simplifications throughout clang (when dealing with ObjC types).
No functionality change.
llvm-svn: 73649
|
| |
|
|
|
|
|
|
| |
info. To handle this edge case, always create main compile unit first.
This fixes PR 4228.
llvm-svn: 73520
|
| |
|
|
|
|
|
|
|
| |
printing logic to help customize the output. For now, we use this
rather than a special flag to suppress the "struct" when printing
"struct X" and to print the Boolean type as "bool" in C++ but "_Bool"
in C.
llvm-svn: 72590
|
| |
|
|
|
|
| |
- Just SmallVectors this time.
llvm-svn: 72432
|
| |
|
|
| |
llvm-svn: 72210
|
| |
|
|
|
|
| |
interface types.
llvm-svn: 72036
|
| |
|
|
| |
llvm-svn: 71763
|
| |
|
|
|
|
|
| |
emit the correct "display name". I suspect we need more work here, see
FIXME for example.
llvm-svn: 71761
|
| |
|
|
|
|
| |
debug info.
llvm-svn: 71736
|
| |
|
|
|
|
|
| |
types. In this case, it was objc_selector and objc_class. This fixes
rdar://6852754 - clang sometimes generates incorrect/unknown file/line info for DW_TAG__structure_type dies
llvm-svn: 70969
|
| |
|
|
|
|
|
|
| |
DIEs. We were generating a loc with line of 0 and a file.
These tags do not need locations at all, just remove it.
this fixes rdar://6852792 - Clang generates incorrect (and unnecessary) file and line info for DW_TAG_inheritance dies
llvm-svn: 70966
|
| |
|
|
|
|
|
|
| |
in ObjC) to not emit file/line location information. Previously
we would output a file with bogus line information. This fixes:
rdar://6852814 - Clang generates incorrect file & line info for automatic/understood formal parameters for objc-programs
llvm-svn: 70965
|
| |
|
|
| |
llvm-svn: 70825
|
| |
|
|
|
|
|
| |
the runtime version number onto it, so that the debugger knows it's an objc
interface, not a C struct. rdar://6848435
llvm-svn: 70618
|
| |
|
|
| |
llvm-svn: 70617
|
| |
|
|
|
|
|
|
| |
rdar://6848435,
several other fixes coming.
llvm-svn: 70616
|
| |
|
|
| |
llvm-svn: 70266
|
| |
|
|
| |
llvm-svn: 70145
|
| |
|
|
|
|
|
|
| |
preprocessed source file without -main-file-name. In this case, CDDebugInfo is not able identify correct main source file becase SM.isFromMainFile() returns true for locations from header files as well as locations from main source file.
This patch takes conservative approach by not emitting more then one compile unit with isMain bit set.
llvm-svn: 69902
|
| |
|
|
| |
llvm-svn: 69873
|
| |
|
|
| |
llvm-svn: 69784
|
| |
|
|
| |
llvm-svn: 69783
|
| |
|
|
| |
llvm-svn: 69517
|
| |
|
|
| |
llvm-svn: 69389
|
| |
|
|
| |
llvm-svn: 69387
|
| |
|
|
|
|
| |
No functionality change (really).
llvm-svn: 68726
|
| |
|
|
| |
llvm-svn: 68630
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- This is pretty ugly, but the most obvious solution. Chime in if you
have a nicer one.
- The problem is that with -save-temps, clang-cc has no idea what the
name of the original input file is. However, the user expects to be
able to set breakpoints based on the input file name.
- We support this by providing a new option -main-file-name (similar
to -dumpbase used by gcc) which allows the driver to pass in the
original file name.
- <rdar://problem/6753383> building with clang using --save-temps
gets the compile unit name from the .i file...
llvm-svn: 68595
|
| |
|
|
|
|
|
|
| |
types. It is no longer needed now that the code generator
re-lays-out interfaces if they are defines after being laid out
from a forward decl.
llvm-svn: 68194
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
representation handles the various ways in which one can name a
template, including unqualified references ("vector"), qualified
references ("std::vector"), and dependent template names
("MetaFun::template apply").
One immediate effect of this change is that the representation of
nested-name-specifiers in type names for class template
specializations (e.g., std::vector<int>) is more accurate. Rather than
representing std::vector<int> as
std::(vector<int>)
we represent it as
(std::vector)<int>
which more closely follows the C++ grammar.
Additionally, templates are no longer represented as declarations
(DeclPtrTy) in Parse-Sema interactions. Instead, I've introduced a new
OpaquePtr type (TemplateTy) that holds the representation of a
TemplateName. This will simplify the handling of dependent
template-names, once we get there.
llvm-svn: 68074
|