llvm-project/clang/test/CodeGenObjCXX
Argyrios Kyrtzidis dd72aafffc Create proper Objective-C @encoding for C++ classes; fixes rdar://9357400.
Go through and expand the members of bases into the encoding string (and encode the VTable as well).
Unlike gcc which expands virtual bases as many times as they appear in the
hierarchy, clang will only expand them once at the end, to reflect the actual layout.

Note that there doesn't seem to be a way to indicate in the encoding that
packing/alignment of members is different that normal, in which case
the encoding will be out-of-sync with the real layout.
If the runtime switches to just consider the size of types without
taking into account alignment, we could easily make padding explicit in the
encoding (e.g. using arrays of chars). The encoding strings would be
longer then though.

Also encode a flexible array member as array of 0 size, like gcc, not as a pointer.

llvm-svn: 131365
2011-05-14 20:32:43 +00:00
..
block-in-template-inst.mm When instantiating a block expression, the instantiated 2011-05-05 17:18:12 +00:00
block-var-layout.mm A few more tweaks to the blocks AST representation: 2011-02-07 10:33:21 +00:00
blocks.mm Implement objective-c++'s block pointer type matching involving 2011-02-12 19:07:46 +00:00
copyable-property-object.mm Moved objective-c++ code gen. tests to their own directory and 2010-06-15 23:49:10 +00:00
encode.mm Create proper Objective-C @encoding for C++ classes; fixes rdar://9357400. 2011-05-14 20:32:43 +00:00
exceptions.mm Add -fcxx-exceptions to all tests that use C++ exceptions. 2011-02-28 00:40:07 +00:00
foreach-statement.mm Objective-c++ IR gen. 2010-05-27 16:05:06 +00:00
implicit-copy-assign-operator.mm Moved objective-c++ code gen. tests to their own directory and 2010-06-15 23:49:10 +00:00
implicit-copy-constructor.mm Move unnamed_addr after the function arguments on Sabre's request. 2011-01-25 19:10:24 +00:00
ivar-objects.mm The emission of an Objective-C++'s class .cxx_destruct method should be 2011-03-22 07:05:39 +00:00
mangle-blocks.mm Fix testsuite for blocks mangling change 2010-05-25 17:46:21 +00:00
mangle.mm Add encoding of reference types like gcc does for objc methods and 2010-04-13 23:45:47 +00:00
message-reference.mm IRGen. Fix IR when message returns reference type. 2011-03-02 20:09:49 +00:00
method-local-extern-mangle.mm extern variable declared locally to objective-c++ method 2010-06-30 18:27:47 +00:00
property-derived-to-base-conv.mm Add an assertion, fix a whole bunch of bugs, comment the assertion 2010-11-18 19:01:18 +00:00
property-dot-copy.mm Only assignment operator triggers property setter call. 2010-09-17 20:45:45 +00:00
property-dot-reference.mm Revert r126678. 2011-02-28 21:19:34 +00:00
property-object-conditional-exp.mm Revert r126678. 2011-02-28 21:19:34 +00:00
property-objects.mm property reference expression used on lhs of assignment 2010-09-09 23:01:10 +00:00
property-reference.mm Fix IRGen issues related to using property-dot syntax 2011-03-30 16:11:20 +00:00
refence-assign-write-barrier.mm Fix a bug where write-barriers for assignment through reference 2010-11-18 22:39:16 +00:00
references.mm Warn for any kind of initialization if initializer does not 2011-04-08 18:25:29 +00:00
rtti.mm Mark VTables and RTTI data linkonce_odr instead of weak_odr, with the exception of explicit template instantiations, which have to be weak_odr. 2011-01-24 00:46:19 +00:00
selector-expr-lvalue.mm Renamed selactor-expr-lvalue.mm to selector-expr-lvalue.mm. 2010-06-24 16:40:16 +00:00
write-barrier-global-assign.mm Generate write-barriers for global objc 2011-01-13 20:00:54 +00:00