summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-05-14 20:32:43 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-05-14 20:32:43 +0000
commitdd72aafffc897e565c1ffc6d17009a05f52c995b (patch)
treef8628d36d1749357ec56e186db6cde5dd034832b /clang/lib/CodeGen/CodeGenModule.cpp
parent7da04c636728570fc66e9a2fc605d8674738b602 (diff)
downloadbcm5719-llvm-dd72aafffc897e565c1ffc6d17009a05f52c995b.tar.gz
bcm5719-llvm-dd72aafffc897e565c1ffc6d17009a05f52c995b.zip
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
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud