summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenObjC
Commit message (Collapse)AuthorAgeFilesLines
* Further simplify test case from r186894David Blaikie2013-07-231-15/+5
| | | | llvm-svn: 186905
* Simplify testcase.Adrian Prantl2013-07-231-18/+3
| | | | | | rdar://problem/14386148 llvm-svn: 186901
* Debug Info: Acknowledge the alignment when locating byref block variables.Adrian Prantl2013-07-221-0/+38
| | | | | | Fixes rdar://problem/14386148 llvm-svn: 186894
* Don't generate bogus line table entries for __copy_helper_block_ andAdrian Prantl2013-07-181-3/+17
| | | | | | __destroy_helper_block_, but do generate scope information. llvm-svn: 186553
* Objective-C: Produce gcc compatible encoding ofFariborz Jahanian2013-07-121-0/+18
| | | | | | | ivar type in meta-data while preventing recursive encoding in a corner case. // rdar://14408244 llvm-svn: 186169
* Replace 'grep foo | count 0' with 'not grep foo'.Rafael Espindola2013-07-045-10/+10
| | | | | | This avoids depending on pipefail not being used. llvm-svn: 185648
* DebugInfo: handle the DI asm printing change to reword '[fwd]' as '[decl]' ↵David Blaikie2013-06-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | and add '[def]' for non-decl tag types This is to make test cases looking for definitions more legible by making the definition explicit rather than just the absence of '[fwd]'. This allowed the debug-info-record tests to be rephrased - and in the interests of reducing the number of individual test cases/invocations we have, I merged them into one file, separated them with namespaces (& then moved them to C++ because namespaces are great). If they need to remain 'C' only tests, they can be moved back. (I didn't group them with 'debug-info-class.cpp' because these tests only apply to -fno-limit-debug-info) I removed the pieces of code that would cause these tests to pass under -flimit-debug-info to ensure the tests remain relevant to their fixes should we ever improve -flimit-debug-info to catch that kind of code. This commit is version locked with the corresponding change to DebugInfo.h in LLVM. Except some transient buildbot fallout. llvm-svn: 184524
* Unify return type checking for functions and ObjC methods. Move all theEli Friedman2013-06-141-1/+1
| | | | | | | | random checks for ObjC object return types to SemaType.cpp. Fixes issue with ObjC method type checking reported on cfe-dev. llvm-svn: 184006
* Correctly handle designated initializers which modify an array initializedEli Friedman2013-06-111-0/+8
| | | | | | | | | | with a string. This case is sort of tricky because we can't modify the StringLiteral used to represent such initializers. We are forced to decompose the string into individual characters. Fixes <rdar://problem/10465114>. llvm-svn: 183791
* Make sure we don't emit invalid IR for StmtExprs with complex cleanups.Eli Friedman2013-06-101-3/+9
| | | | | | Fixes <rdar://problem/14074868>. llvm-svn: 183699
* ObjC Debug Info: Emit the names of accessors whenever they diverge fromAdrian Prantl2013-06-071-0/+56
| | | | | | | | the default names, not just when the isImplicit flag is set. rdar://problem/14035789 llvm-svn: 183474
* Objective-C encoding. Fixes up encodeing forFariborz Jahanian2013-06-041-1/+1
| | | | | | | arrays of empty structs. // rdar://14053082 (also pr13062). llvm-svn: 183234
* Do not reuse the debug location of the return value's store if there is ↵Adrian Prantl2013-05-301-0/+40
| | | | | | | | autorelease code to be emitted between store and return instructions. This is analoguous to what we do for lexical scope cleanups. rdar://problem/13977888 llvm-svn: 182947
* Bugfix for r181629:Adrian Prantl2013-05-221-1/+2
| | | | | | | | | - The return type should be a pointer to the class type. - Make the condition more specific. rdar://problem/13359718 llvm-svn: 182504
* ObjC Debug Info: Emit the correct method names for accessors forAdrian Prantl2013-05-171-0/+35
| | | | | | | | properties declared in a protocol. rdar://problem/13798000 llvm-svn: 182176
* ObjC debug info: Substitute the class type for methods that returnAdrian Prantl2013-05-101-0/+27
| | | | | | | | a related type (e.g., if they use the instancetype keyword). rdar://problem/13359718 llvm-svn: 181629
* Correctly emit certain implicit references to 'self' even withinJohn McCall2013-05-032-4/+2
| | | | | | | | | | | | | | | | | | a lambda. Bug #1 is that CGF's CurFuncDecl was "stuck" at lambda invocation functions. Fix that by generally improving getNonClosureContext to look through lambdas and captured statements but only report code contexts, which is generally what's wanted. Audit uses of CurFuncDecl and getNonClosureAncestor for correctness. Bug #2 is that lambdas weren't specially mapping 'self' when inside an ObjC method. Fix that by removing the requirement for that and using the normal EmitDeclRefLValue path in LoadObjCSelf. rdar://13800041 llvm-svn: 181000
* Ensure that the line table for functions with cleanups is sequential.Adrian Prantl2013-05-022-4/+108
| | | | | | | | | | | | | | | | If there is cleanup code, the cleanup code gets the debug location of the closing '}'. The subsequent ret IR-instruction does not get a debug location. The return _expression_ will get the debug location of the return statement. If the function contains only a single, simple return statement, the cleanup code may become the first breakpoint in the function. In this case we set the debug location for the cleanup code to the location of the return statement. rdar://problem/13442648 llvm-svn: 180932
* Remove an empty line so the line numbers match up again after the recent ↵Adrian Prantl2013-04-191-1/+0
| | | | | | documentation change. llvm-svn: 179898
* still not relaxed enough.Adrian Prantl2013-04-191-1/+1
| | | | llvm-svn: 179897
* cleanup and relax test casesAdrian Prantl2013-04-191-2/+3
| | | | llvm-svn: 179896
* Emit the underlying type in the debug info for all kinds of fixed enumsAdrian Prantl2013-04-191-0/+64
| | | | | | | | instead of only C++11-scoped-with-class-tag enums. rdar://problem/13463793 llvm-svn: 179879
* objc_autoreleasePoolPop() can throw if a -dealloc does.John McCall2013-04-161-2/+25
| | | | | | | | | | | | | Model it as throwing so that the exception can be caught. This is generally not expected to have significant code-size impact because the contents of the @autoreleasepool block are very likely to contain a call, very likely at the same cleanup level as the @autoreleasepool itself. rdar://13660038 llvm-svn: 179630
* Trying fixing test to make buildbot happy again.Fariborz Jahanian2013-04-161-1/+1
| | | | llvm-svn: 179629
* modify test to try to make buildbot happy.Fariborz Jahanian2013-04-161-2/+1
| | | | llvm-svn: 179606
* Objective-C IRGen. Use llvm::WeakVHFariborz Jahanian2013-04-161-0/+44
| | | | | | | | | | for caching couple of global symbols used for generation of CF/NS string meta-data so they are not released prematuely in certain corner cases. // rdar:// 13598026. Reviewed by John M. llvm-svn: 179599
* FileCheck-ify more grep tests with quoted double quotesReid Kleckner2013-04-113-62/+69
| | | | | | | | This required some tedious reordering to match clang's order. Presumably these ObjC tests were generated based on llvm-gcc's output ordering. llvm-svn: 179282
* FileCheck-ify some clang grep tests that use double quotesReid Kleckner2013-04-103-14/+16
| | | | | | | The escaping interaction between Python and grep doesn't work on my system. This change fixes the tests for me. llvm-svn: 179214
* Don't copy just to capture a strong block pointer under ARC.John McCall2013-04-081-0/+39
| | | | | | | | | It turns out that the optimizer can't eliminate this without extra information, for which there's a separate bug. rdar://13588325 llvm-svn: 179069
* Be sure to check ARC conventions on the implicit method declarationsJohn McCall2013-04-041-0/+45
| | | | | | | | | of a property just in case the property's getter happens to be +1. We won't synthesize a getter for such a property, but we will allow the user to define a +1 method for it. rdar://13115896 llvm-svn: 178731
* Protect the values of array and dictionary literals from theJohn McCall2013-04-041-24/+67
| | | | | | | | | | ARC optimizer while they're held in local unsafe buffers. Based on a patch by Jesse Rusak! rdar://13573224 llvm-svn: 178721
* In ObjC++ on legacy runtimes, push an EH cleanup as well asJohn McCall2013-04-031-2/+2
| | | | | | | | | | | | a normal cleanup when entering a @try or @synchronized to ensure that we clean that up if an exception is triggered. Apparently GCC did this, so it's hard to argue that we shouldn't do at least as much. rdar://12364847 llvm-svn: 178599
* generalize testcaseAdrian Prantl2013-03-291-1/+1
| | | | llvm-svn: 178383
* Bugfix/Followup for r177086.Adrian Prantl2013-03-294-20/+35
| | | | | | | | | * Store the .block_descriptor (instead of self) in the alloca so we can guarantee that all captured variables are available at -O0. * Add the missing OpDeref for the alloca. rdar://problem/12767564 llvm-svn: 178361
* Make clang to mark static stack allocations with lifetime markers to enable ↵Nadav Rotem2013-03-232-12/+13
| | | | | | | | | a more aggressive stack coloring. Patch by John McCall with help by Shuxin Yang. rdar://13115369 llvm-svn: 177819
* Under ARC, when we're passing the address of a strong variableJohn McCall2013-03-233-10/+16
| | | | | | | | | | | | to an out-parameter using the indirect-writeback conversion, and we copied the current value of the variable to the temporary, make sure that we register an intrinsic use of that value with the optimizer so that the value won't get released until we have a chance to retain it. rdar://13195034 llvm-svn: 177813
* Generalize debug info tests to be forward compatible with future ↵David Blaikie2013-03-212-2/+2
| | | | | | DISubprogram changes llvm-svn: 177659
* Simplify/generalize some debug info test casesDavid Blaikie2013-03-197-17/+17
| | | | | | | | | Mostly, try to depend on the annotation comments more so these tests are more legible, brief, and agnostic to schema changes in the future (sure, they're not agnostic to changes to the comment annotations but since they're easier to read they should be easier to update if that happens). llvm-svn: 177457
* Add a clarifying note when a return statement is rejected becauseJohn McCall2013-03-191-4/+12
| | | | | | | | we expect a related result type. rdar://12493140 llvm-svn: 177378
* Generalize a few debug info test casesDavid Blaikie2013-03-171-1/+1
| | | | | | | | Checking for the annotation comment rather than the metadata values makes these tests resilient to a coming refactor that will pull these fields out into a separate metadata node. llvm-svn: 177237
* Add a testcase for r177118.Adrian Prantl2013-03-141-1/+2
| | | | llvm-svn: 177124
* Allocate stack storage for .block_descriptor and captured self at -O0.Adrian Prantl2013-03-141-0/+64
| | | | | | | | | This way the register allocator will not optimize away the debug info for captured variables. Fixes rdar://problem/12767564 llvm-svn: 177086
* Tighten up the rules for precise lifetime and documentJohn McCall2013-03-132-72/+121
| | | | | | | | the requirements on the ARC optimizer. rdar://13407451 llvm-svn: 176924
* Improve the caching of debuginfo Objective C interface types.Adrian Prantl2013-03-111-0/+5
| | | | | | | | Generate forward declarations that are RAUW'd by finalize(). We thus avoid outputting the same type several times in multiple stages of completion. llvm-svn: 176820
* Ensure that DIType is regenerated after we visit an implementationAdrian Prantl2013-03-063-0/+96
| | | | | | | | | | that adds ivars to an interface. Fixes rdar://13175234 This is an update to r176116 that performs a smart caching of interfaces. llvm-svn: 176584
* Add more of the command line options as attribute flags.Bill Wendling2013-02-282-1/+4
| | | | | | These can be easily queried by the back-end. llvm-svn: 176304
* Use the actual ABI-determined C calling convention for runtimeJohn McCall2013-02-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | calls and declarations. LLVM has a default CC determined by the target triple. This is not always the actual default CC for the ABI we've been asked to target, and so we sometimes find ourselves annotating all user functions with an explicit calling convention. Since these calling conventions usually agree for the simple set of argument types passed to most runtime functions, using the LLVM-default CC in principle has no effect. However, the LLVM optimizer goes into histrionics if it sees this kind of formal CC mismatch, since it has no concept of CC compatibility. Therefore, if this module happens to define the "runtime" function, or got LTO'ed with such a definition, we can miscompile; so it's quite important to get this right. Defining runtime functions locally is quite common in embedded applications. llvm-svn: 176286
* Temporarily revert r176116 for compile-time performance regression.Adrian Prantl2013-02-273-95/+0
| | | | | | This reverts commit ea95e4587fd13606fbf63b10a07a7d02026aa39c. llvm-svn: 176151
* Reapply r176133 with testcase fixes.Bill Wendling2013-02-275-22/+13
| | | | llvm-svn: 176145
* Ensure that DIType is regenerated after we visited an implementation that ↵Adrian Prantl2013-02-263-0/+95
| | | | | | adds ivars to an interface. Fixes rdar://13175234 llvm-svn: 176116
OpenPOWER on IntegriCloud