aboutsummaryrefslogtreecommitdiff
path: root/lib/Rewrite/RewriteObjC.cpp
AgeCommit message (Collapse)Author
2010-10-19Do not rewrite new accessor if user has defined accessors.Fariborz Jahanian
Fixes //rdar: // 8570020. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116882 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-19Silence uninitialized value warning.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116877 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-16Fix a rewriting bug of rewriting properties declared inFariborz Jahanian
protocols. // rdar: //8558702 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116652 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-14Rewrite bug fix rewriting a property assignment whenFariborz Jahanian
its RHS is an ivar. Fixes //rdar: //8541517. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116539 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-14Eliminate usage of ObjCSuperExpr used forFariborz Jahanian
'super' as receiver of property or a setter/getter methods. //rdar: //8525788 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116483 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-11Some refactoring of property rewriting stuff Fariborz Jahanian
in rewriter. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116254 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-11This patch does a few things in the area of objective-cFariborz Jahanian
properties. 1. Generates the AST for lexical info. of accessing getter/setter methods using dot-syntax notation. This fixes //rdar: //8528170. 2. Modifes rewriter to handle the AST putout in 1. 3. Supportes in rewriter ObjCImplicitSetterGetter ASTs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116237 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-08When dealing with an assignment with LHS being a property referenceFariborz Jahanian
expression, the entire assignment tree is rewritten into a property setter messaging. This includes rewriting the RHS. Do not attempt to rewrite RHS again. Never rewrite a rewritten text! Fixes //rdar: //8527018. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116104 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-05Fix a block rewriter bug where copy/dispose entries in Fariborz Jahanian
block descriptor for outer block was missing even though the block was importing objects into its inner blocks. //rdar://84995992 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115644 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30Rewriting array element type of qualified-id.Fariborz Jahanian
Fixes rdra://8475819. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115201 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-24Fix rewriting of property declared in @protocol's.Fariborz Jahanian
Fixed //rdar://8472487. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114741 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-31AST work to support [C++] [IRgen] for ?: with missing LHSFariborz Jahanian
This is also pr7726 and wip. No change in functionality at this time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112612 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-28Fix the memory leak of FloatingLiteral/IntegerLiteral.Argyrios Kyrtzidis
For large floats/integers, APFloat/APInt will allocate memory from the heap to represent these numbers. Unfortunately, when we use a BumpPtrAllocator to allocate IntegerLiteral/FloatingLiteral nodes the memory associated with the APFloat/APInt values will never get freed. I introduce the class 'APNumericStorage' which uses ASTContext's allocator for memory allocation and is used internally by FloatingLiteral/IntegerLiteral. Fixes rdar://7637185 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112361 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-26De-memberify the VarDecl and FunctionDecl StorageClass enums.John McCall
This lets us remove Sema.h's dependency on Expr.h and Decl.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112156 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-25GCC didn't care for my attempt at API compatibility, so brute-force everythingJohn McCall
to the new constants. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112047 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-25More incremental progress towards not including Expr.h in Sema.h.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112044 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-17StringRef'ication of lots stuff, patch by Peter Davies!Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111314 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-15Remove dead code, caught by unused function warnings.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111091 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-07Store inheritance paths after CastExprs instead of inside them.John McCall
This takes some trickery since CastExpr has subclasses (and indeed, is abstract). Also, smoosh the CastKind into the bitfield from Expr. Drops two words of storage from Expr in the common case of expressions which don't need inheritance paths. Avoids a separate allocation and another word of overhead in cases needing inheritance paths. Also has the advantage of not leaking memory, since destructors for AST nodes are never run. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110507 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-28Initialize block's imported variable(s) in Fariborz Jahanian
block's synthesized constructor initalizer list. Fixes radar 8240371. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109698 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-21Fix source location of the initializer in Fariborz Jahanian
a copy initialization. Back out hack in objc rewriter. fixes radar 8213998. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109024 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-21Fix a rewriter bug which originates in SemaInit involvingFariborz Jahanian
Constructor Initialization which computes Source Location differently now. Fixes radar 8213998. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109018 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-20Update ImplicitCastExpr to be able to represent an XValue.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108807 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-13When forming a function call or message send expression, be sure toDouglas Gregor
strip cv-qualifiers from the expression's type when the language calls for it: in C, that's all the time, while C++ only does it for non-class types. Centralized the computation of the call expression type in QualType::getCallResultType() and some helper functions in other nodes (FunctionDecl, ObjCMethodDecl, FunctionType), and updated all relevant callers of getResultType() to getCallResultType(). Fixes PR7598 and PR7463, along with a bunch of getResultType() call sites that weren't stripping references off the result type (nothing stripped cv-qualifiers properly before this change). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108234 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-07Remove Decl::getCompoundBody().Argyrios Kyrtzidis
This has 2 (slight) advantages: -Make explicit at getBody()'s callsite that we expect/handle only CompoundStmt and not CXXTryStmt. -Better tracking of Decl::getBody()'s callsites. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107771 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30Rewriter: Use the appropriate printing context instead of the defaultDaniel Dunbar
constructed one -- this is necessary to ensure types get printed correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107312 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-15Break Frontend's dependency on Rewrite, Checker and CodeGen in shared ↵Daniel Dunbar
library configuration Currently, all AST consumers are located in the Frontend library, meaning that in a shared library configuration, Frontend has a dependency on Rewrite, Checker and CodeGen. This is suboptimal for clients which only wish to make use of the frontend. CodeGen in particular introduces a large number of unwanted dependencies. This patch breaks the dependency by moving all AST consumers with dependencies on Rewrite, Checker and/or CodeGen to their respective libraries. The patch therefore introduces dependencies in the other direction (i.e. from Rewrite, Checker and CodeGen to Frontend). After applying this patch, Clang builds correctly using CMake and shared libraries ("cmake -DBUILD_SHARED_LIBS=ON"). N.B. This patch includes file renames which are indicated in the patch body. Changes in this revision of the patch: - Fixed some copy-paste mistakes in the header files - Modified certain aspects of the coding to comply with the LLVM Coding Standards git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106010 91177308-0d34-0410-b5e6-96231b3b80d8