Commit Graph

744 Commits

Author SHA1 Message Date
Chris Lattner 0cb7803341 move some initialization checking code from SemaDecl.cpp
to SemaInit.cpp, no functionality change.

llvm-svn: 65394
2009-02-24 22:27:37 +00:00
Chris Lattner d7e7b8e411 first wave of fixes for @encode sema support. This is part of PR3648.
The big difference here is that (like string literal) @encode has 
array type, not pointer type.

llvm-svn: 65391
2009-02-24 22:18:39 +00:00
Daniel Dunbar 94ceb61574 Fix two @synchronized bugs found by inspection: the expression to sychronize on should only be evaluated once, and it is evaluated outside the cleanup scope.
Also, lift SyncEnter and SyncExit up in nervous anticipation of x86-64
zero cost EH.

llvm-svn: 65362
2009-02-24 01:43:46 +00:00
Anders Carlsson d05f44b5ca Correctly encode incomplete and variable length arrays. Fixes PR3639.
llvm-svn: 65255
2009-02-22 01:38:57 +00:00
Fariborz Jahanian ccfd554024 Fixed an ICE in meta-data generation of __weak/__strong ivars.
llvm-svn: 65235
2009-02-21 18:23:24 +00:00
Fariborz Jahanian 1dd6094517 Fixes a bug in property type encoding.
llvm-svn: 64672
2009-02-16 21:41:04 +00:00
Fariborz Jahanian 99bed6fd21 Fixed a problem caused by foreward @class use
which consequently caused a Seg fault. during meta-data
generation. It also addresses an issue related to
late binding of newly synthesize ivars (when we support it).

llvm-svn: 64563
2009-02-14 20:13:28 +00:00
Fariborz Jahanian d8fc1053ab Fixed a 64bit code gen bug of a cateogory
implementation with no category declaration!

llvm-svn: 64470
2009-02-13 17:52:22 +00:00
Daniel Dunbar eb39504426 Use -fnext-runtime for this test.
llvm-svn: 63688
2009-02-04 00:03:15 +00:00
Daniel Dunbar c41a0b8a3c Force -triple/-fnext-runtime for a few more test cases.
llvm-svn: 63679
2009-02-03 23:04:31 +00:00
Fariborz Jahanian 2f85a6450a Detailed documentation for encoding of properties and a test
case.

llvm-svn: 62607
2009-01-20 20:04:12 +00:00
Fariborz Jahanian 218c630171 Improving on encoding of objective-c's property types. More to come.
llvm-svn: 62601
2009-01-20 19:14:18 +00:00
Fariborz Jahanian 705c6d9cdd Patch to re-implement ivar-list meta-data generation to fix
cases of unnamed ivar bitfields.

llvm-svn: 62429
2009-01-17 19:36:33 +00:00
Douglas Gregor 088ea012cd Add -fnext-runtime to Objective-C properties testcase
llvm-svn: 62390
2009-01-17 00:53:59 +00:00
Fariborz Jahanian 5c76772f49 Patch to fix encoding of Enum bitfields in ObjC.
llvm-svn: 62135
2009-01-13 01:18:13 +00:00
Fariborz Jahanian 30e7864661 Patch to implement code gen for aggrgate-valued property used
to access a field of its type.

llvm-svn: 62123
2009-01-12 23:27:26 +00:00
Fariborz Jahanian 17290c3638 Objc's compatibility-alias semantics and code
gen issue fix.

llvm-svn: 61901
2009-01-08 01:10:55 +00:00
Fariborz Jahanian 475831bd6e Another nasty code gen. bug with trivial fix. Calling class
method on 'super' receiver in a category implementation.
Other simpler cases were working by accident.

llvm-svn: 61880
2009-01-07 20:11:22 +00:00
Sebastian Redl 4f84ddccc8 Fix a grep error that caused CodeGenObjC/encode-test.m to fail.
llvm-svn: 61455
2008-12-28 15:48:05 +00:00
Fariborz Jahanian 4ecf1e94db Last patch, for now, to privde ObjC's encoding of types.
We now pass all gcc's encoding compatibility tests.

llvm-svn: 61387
2008-12-23 21:30:15 +00:00
Fariborz Jahanian daef00bca6 More encoding support; in this case, encoding of
outer-most const of pointer types.

llvm-svn: 61355
2008-12-22 23:22:27 +00:00
Sebastian Redl f795cbed2e Test case makes a platform assumption, so force triple.
llvm-svn: 61310
2008-12-21 12:17:24 +00:00
Fariborz Jahanian a0befc0a6f Finish up saving original parameter type and
using it in ObjC's method parameter encoding.

llvm-svn: 61293
2008-12-20 23:29:59 +00:00
Fariborz Jahanian 7acf0749d4 Strangely enough, name of ObjC class is not encoded into the
full encoding of the class which has an ivar of pointer to this
class. Its name is encoded in the type for the ivar in the
ivar-list metadata. This patch conforms to the above rule.

llvm-svn: 61282
2008-12-20 19:17:01 +00:00
Fariborz Jahanian 1d35f12e6b More encoding support. This time for
@encode of classes and bitfields.

llvm-svn: 61268
2008-12-19 23:34:38 +00:00
Fariborz Jahanian 8c036a3af4 Test case for my last @encode patch.
llvm-svn: 61247
2008-12-19 17:45:06 +00:00
Fariborz Jahanian cfac794a5c And a test case for my previous patch.
llvm-svn: 61044
2008-12-15 20:39:58 +00:00
Fariborz Jahanian 7572ac5614 Patch to allow a getter call using property dot-syntax notation.
llvm-svn: 60816
2008-12-10 00:21:50 +00:00
Fariborz Jahanian 3d8552a75d Support for implementation of property in the case where
the synthesis is in an implementation of s subclass of
a super class where the property has been declared.

llvm-svn: 60792
2008-12-09 20:23:04 +00:00
Fariborz Jahanian fbbaf6afae This test checks for duplicate implementation of the same
property. It also checks for duplicate use of the same ivar
in two different iproperty implementations. It also caught
an error for a test case used in CodeGen :).

llvm-svn: 60610
2008-12-05 22:32:48 +00:00
Fariborz Jahanian 6de7eb8587 Another test for property code gen.
llvm-svn: 60128
2008-11-26 23:20:29 +00:00
Fariborz Jahanian 57251782d0 Code gen for aggregate-valued properties and a test case.
llvm-svn: 60122
2008-11-26 22:36:09 +00:00
Fariborz Jahanian f8ef9f3dc9 Set default property attributes on each property.
Implemented anonymous category (also know as continuation class)
used to override main class's property attribute. This is work in 
propgress.

llvm-svn: 60114
2008-11-26 20:01:34 +00:00
Fariborz Jahanian 9ac535162b Implemented ir-gen for 'implicit' properties using the new AST nodes.
llvm-svn: 59886
2008-11-22 22:30:21 +00:00
Fariborz Jahanian e2caaaa13c Fixed bugzilla bug# 3095 related to code gen. for @synchronized.
llvm-svn: 59838
2008-11-21 19:21:53 +00:00
Douglas Gregor 0f492d1a11 Only test test/CodeGenObjC/synchronized.m as a i686-apple-darwin8 target
llvm-svn: 59463
2008-11-17 20:45:14 +00:00
Fariborz Jahanian e3126a24e3 Test case for objective-c's @synchronized statement.
llvm-svn: 59451
2008-11-17 18:03:28 +00:00
Zhongxing Xu e76577a97d add targe triple commandline option to fix test failure on Linux.
llvm-svn: 59412
2008-11-16 09:17:52 +00:00
Daniel Dunbar c475d4224b NeXT: Emit protocol objects lazily.
- That is, the metadata for a protocol is only emitted if that
   protocol is actually used in the translation unit. This is
   important because Objective-C headers frequently contain a large
   number of protocol definitions, only a few of which will be used in
   any given file.

llvm-svn: 58400
2008-10-29 22:36:39 +00:00
Daniel Dunbar 340b5ddcf9 Fix regression in comparison of qualified id; == operator was being
created with LHS and RHS whose types didn't match.

llvm-svn: 58049
2008-10-23 23:30:52 +00:00
Daniel Dunbar fbe68a84f8 NeXT: Update to use CreateRuntimeFunction for the routines it imports.
llvm-svn: 56902
2008-10-01 01:06:06 +00:00
Daniel Dunbar 3a28b9acbd Add more testing of Obj-C property synthesis.
llvm-svn: 56564
2008-09-24 18:00:13 +00:00
Daniel Dunbar ce05c8eb49 Fix two bugs exposed by array passing assert:
(1) Additional arguments to variadic methods should have default
promotions applied.

(2) Additional arguments to non-variadic methods were allowed.

llvm-svn: 56084
2008-09-11 00:50:25 +00:00
Daniel Dunbar c01f56c8de Add some Objective-C code generation tests.
- Note that these don't really test anything other than that code
   generation doesn't fail or crash. Better than nothing though!

llvm-svn: 55761
2008-09-04 04:36:23 +00:00