summaryrefslogtreecommitdiffstats
path: root/clang/lib/Rewrite/RewriteModernObjC.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Split library clangRewrite into clangRewriteCore and clangRewriteFrontend.Ted Kremenek2012-09-011-7540/+0
| | | | | | | This is similar to how we divide up the StaticAnalyzer libraries to separate core functionality to what is clearly associated with Frontend actions. llvm-svn: 163050
* Push ArrayRef through the Expr hierarchy.Benjamin Kramer2012-08-241-26/+16
| | | | | | No functionality change. llvm-svn: 162552
* Modern objc translator: Fixes a crash in rewriter when rewriting the APIFariborz Jahanian2012-08-211-1/+8
| | | | | | for structure valued method messaging. // rdar://12142241 llvm-svn: 162303
* Store SourceManager pointer on PrintingPolicy in the case where we're dumping,Richard Smith2012-08-161-5/+4
| | | | | | | | | and remove ASTContext reference (which was frequently bound to a dereferenced null pointer) from the recursive lump of printPretty functions. In so doing, fix (at least) one case where we intended to use the 'dump' mode, but that failed because a null ASTContext reference had been passed in. llvm-svn: 162011
* objective-c modern translator. Provide declaration ofFariborz Jahanian2012-07-251-6/+3
| | | | | | | | "memset' lazily when is needed in translation of struct-valued methods which require checkinf of nil receivers outside their bodies. // rdar://11847319 llvm-svn: 160759
* modern objective-c translator: conditionally includeFariborz Jahanian2012-07-161-1/+5
| | | | | | <string.h>. // rdar://11847319 llvm-svn: 160287
* objective-c modern translator: synthesize argument typeFariborz Jahanian2012-06-291-6/+7
| | | | | | | correctly for blocks and function pointer arguments in the written constructor. // rdar://11359268 llvm-svn: 159456
* modern objc translator: string.h is unavailable on some non-OSXFariborz Jahanian2012-06-291-1/+1
| | | | | | platforms declare memset in rewritten code instead. llvm-svn: 159454
* objective-c modern translator: Translation into objc_msgSend_stretFariborz Jahanian2012-06-291-40/+115
| | | | | | | entry point which requires nil check before calling objc_msgSend_stret. // rdar://11359268 - wip. llvm-svn: 159445
* PR13064: Store whether an in-class initializer uses direct or copyRichard Smith2012-06-101-9/+9
| | | | | | | initialization, and use that information to produce the right kind of initialization during template instantiation. llvm-svn: 158288
* Revert Decl's iterators back to pointer value_type rather than reference ↵David Blaikie2012-06-061-9/+9
| | | | | | | | | | | | | | value_type In addition, I've made the pointer and reference typedef 'void' rather than T* just so they can't get misused. I would've omitted them entirely but std::distance likes them to be there even if it doesn't use them. This rolls back r155808 and r155869. Review by Doug Gregor incorporating feedback from Chandler Carruth. llvm-svn: 158104
* Fix typos found by http://github.com/lyda/misspell-checkBenjamin Kramer2012-06-021-1/+1
| | | | llvm-svn: 157886
* cleanup some code.Fariborz Jahanian2012-05-241-3/+2
| | | | llvm-svn: 157436
* modern objc translation: Add translation of @autoreleasepoolFariborz Jahanian2012-05-231-0/+25
| | | | | | statement. // rdar://11474836. llvm-svn: 157359
* Modern objective-c translation. Translating defaultFariborz Jahanian2012-05-081-19/+74
| | | | | | synthesis of property getter/setters. // rdar://11374235 llvm-svn: 156447
* modern objc translation. objc_getClass() and objc_getMetaClass()Fariborz Jahanian2012-05-081-17/+14
| | | | | | | prototypes should both return `struct objc_class *`. // rdar://11375495 llvm-svn: 156418
* Revert r156097, which appears to be causing some breakage.Douglas Gregor2012-05-071-2/+2
| | | | llvm-svn: 156304
* objc modern translator: fix up attribute for dynamic property in a category.Fariborz Jahanian2012-05-031-1/+1
| | | | | | // rdar://11095151 llvm-svn: 156127
* modern objc translator: support for default propertyFariborz Jahanian2012-05-031-15/+31
| | | | | | synthesis translation. // rdar://11374235 - wip. llvm-svn: 156125
* modern objc translator: used size_t in coupleFariborz Jahanian2012-05-031-2/+2
| | | | | | of places. // rdar://11375908 llvm-svn: 156106
* modern objc translation. objc_getClass() and objc_getMetaClass()Fariborz Jahanian2012-05-031-2/+2
| | | | | | | prototypes should both return `struct objc_class *`. // rdar://11375495 llvm-svn: 156097
* modern objective-c translator: Fix destructor def.Fariborz Jahanian2012-05-021-1/+1
| | | | | | for __NSContainer_literal. llvm-svn: 156035
* Modern objective-c translation: Fixing couple of bugsFariborz Jahanian2012-05-021-2/+14
| | | | | | | related to laying out ivar structs and accessing non-fragile-ivar in more compilated cases. // rdar://11323187 llvm-svn: 156004
* modern objective-c translation of private ivars.Fariborz Jahanian2012-05-011-24/+16
| | | | | | // rdar://11351299 llvm-svn: 155921
* modern objective-c translator. named aggregate typesFariborz Jahanian2012-04-301-13/+68
| | | | | | | | defined inside the objc class belong to class's decl. scope. This is to conform to objective-c rules. // rdar://11351299 llvm-svn: 155855
* minor refactoring of modern objc translator.Fariborz Jahanian2012-04-301-5/+17
| | | | llvm-svn: 155843
* modern objective-c translation: de-virtualize allFariborz Jahanian2012-04-301-9/+9
| | | | | | local rewriting functions. llvm-svn: 155826
* Remove the ref/value inconsistency in filter_decl_iterator.David Blaikie2012-04-301-17/+17
| | | | | | | | | | | | | filter_decl_iterator had a weird mismatch where both op* and op-> returned T* making it difficult to generalize this filtering behavior into a reusable library of any kind. This change errs on the side of value, making op-> return T* and op* return T&. (reviewed by Richard Smith) llvm-svn: 155808
* objective-c modern translator: Correctly translateFariborz Jahanian2012-04-271-1/+38
| | | | | | | nonfragile ivar access code when ivar type is a locally defined struct/union type. // rdar://11323187 llvm-svn: 155740
* modern objective-c translator: _OBJC_PROTOCOL_REFERENCE_* Fariborz Jahanian2012-04-271-2/+1
| | | | | | symbols should be static. // rdar://11337074 llvm-svn: 155736
* modern objective-c transltion: Fixes a translation bugFariborz Jahanian2012-04-261-2/+7
| | | | | | | of writing a __block variable being initialized with a constructed object. // rdar://11326988 llvm-svn: 155673
* modern objc rewriter: fixes a bug writing Fariborz Jahanian2012-04-251-1/+3
| | | | | | | a const qualified static c-function. // rdar://11314329 llvm-svn: 155564
* modern objc translator: Allow writing of multipleFariborz Jahanian2012-04-241-31/+27
| | | | | | | declaration of __block variables on same lines with initializers. // rdsr://7547630 llvm-svn: 155473
* objc modern rewriter: allow translation ofFariborz Jahanian2012-04-241-3/+16
| | | | | | | multiple declaration of block variables (with no initializer) on the same line. llvm-svn: 155462
* objc modern rewriter: minor refactoring.Fariborz Jahanian2012-04-241-31/+17
| | | | llvm-svn: 155449
* objective-c modern translator: Further improving the lastFariborz Jahanian2012-04-191-14/+14
| | | | | | | patch fixing writing a spurious 'static' into the wrong place. // rdar://11275241 llvm-svn: 155130
* modern objective-c translator: Fix writing a spurious 'static'Fariborz Jahanian2012-04-191-8/+31
| | | | | | | into the wrong place when rewriting a static function which declares block literals. // rdar://11275241 llvm-svn: 155084
* Implements boxed expressions for Objective-C. <rdar://problem/10194391>Patrick Beard2012-04-191-24/+22
| | | | llvm-svn: 155082
* objective-c modern translation. Correct rewriting ofFariborz Jahanian2012-04-171-34/+19
| | | | | | | | block meta-data of block literals declared inside of extern "C" functions. // rdar://1131490 llvm-svn: 154939
* Modern objective-c translator:'self' used insideFariborz Jahanian2012-04-161-4/+8
| | | | | | block literal is imported. // rdar://11259664 llvm-svn: 154876
* modern objective-c translator: translation of implicitFariborz Jahanian2012-04-161-15/+12
| | | | | | | cast to/from block pointer types. // rdar://11202764 Also, many more modern translator tests. llvm-svn: 154869
* objective-c modern translator: Make metadataFariborz Jahanian2012-04-141-7/+2
| | | | | | definition for protocols static. // rdar://11248048 llvm-svn: 154753
* modern objective-c translator: Fixes translation ofFariborz Jahanian2012-04-131-1/+4
| | | | | | | __typeof which is a regression by reverting r154360. // rdar://11233924 llvm-svn: 154679
* modern objective-c translator: When translatingFariborz Jahanian2012-04-131-37/+23
| | | | | | | | call to 'super' use __rw_objc_super as type of the 'super' meta-data instead of objc_super. // rdar://11239894 llvm-svn: 154670
* objective-c modern translator: beautify rewrite ofFariborz Jahanian2012-04-121-7/+7
| | | | | | struct __rw_objc_super; no functionality change. llvm-svn: 154632
* modern objective-c translator. ifdef'out Fariborz Jahanian2012-04-121-0/+5
| | | | | | | __weak and __block when rewriting. // rdar://11236342 llvm-svn: 154592
* modern objective-c translator. Fixes a mis-translation whenFariborz Jahanian2012-04-111-0/+4
| | | | | | of a __block struct object. // rdar://11230308 llvm-svn: 154566
* modern objective-c translator. Fixes a translation bug when Fariborz Jahanian2012-04-111-18/+6
| | | | | | | first ivar in the list is a bitfield. // rdar://11229770 llvm-svn: 154534
* modern objective-c translation: writing containerFariborz Jahanian2012-04-101-11/+23
| | | | | | subscripting. // rdar://11203853 llvm-svn: 154441
* objective-c modern translator: rewriting specificFariborz Jahanian2012-04-101-0/+22
| | | | | | | implicit casts which is needed to produce good c++ code. // rdar://11202764 llvm-svn: 154360
OpenPOWER on IntegriCloud