Preliminary support for non-fragile ivars on GNU runtime

This patch provides preliminary support for non-fragile instance variables on the GNU runtime. It currently requires a patches to GNU libobjc (and so is not enabled by default) which are currently being tested and reviewed by GNUstep before being pushed upstream.

This patch does not allow support for synthesized ivars, but does provide the infrastructure needed for supporting them.

David

clang.diff (5.87 KB)

Ooops - I had the versions the wrong way around in the old patch. Didn't notice until I tried testing it with the old runtime. This patch fixes that.

David

clang.diff (5.87 KB)

Hi David,

This patch crashes three test cases in x86_64 mode for the Gnu runtime.

---- /Volumes/sandbox/llvm/tools/clang/test/CodeGenObjC//objc2-retain-codegen.m failed ----

---- /Volumes/sandbox/llvm/tools/clang/test/CodeGenObjC//class-type.m failed ----
.
---- /Volumes/sandbox/llvm/tools/clang/test/CodeGenObjC//objc2-strong-cast-1.m failed ----

- Fariborz

Checked in r72175

- Fariborz

Checked in r72175

The version which fixed the test failures.