[LLVMdev] Regarding anonymous types
Devang Patel
dpatel at apple.com
Tue Dec 6 10:36:32 PST 2011
Pankaj,
I encourage you to read Chris's excellent blog entry on type system @ http://blog.llvm.org/2011/11/llvm-30-type-system-rewrite.html
-
Devang
On Dec 6, 2011, at 3:54 AM, Pankaj Gode wrote:
> Hi All,
>
> While collecting type information for "anonymous types", I had below observation.
>
> For the example with anonymous types, given below
> struct test
> {
> struct {
> union {
> Char a[4];
> };
> };
> struct {
> int b;
> char c;
> };
> };
>
> LLVM 2.6 defines the types as
> %struct.anon1 = type { %union.anon0}
> %struct.anon2 = type { i32, i8}
> %struct.test = type { %struct.anon1, %struct.anon2}
> %union.anon0 = type {[4 x i8]}
>
> Whereas, LLVM 2.9 defines the types as
> %0 = type { i32, i8}
> %anonanonct. = type {%anonanonn.}
> %anonanonn. = type { [ 4x i8] }
> %struct.test = type { %anonanonct., %0}
>
> In case of LLVM2.9, "%0" is interesting case.
> When I try to extract types using "Module_Ptr->getTypeSymbolTable()".
> for(TypeSymbolTable::const_iterator I = M->getTypeSymbolTable().begin(),
> E = M->getTypeSymbolTable().end(); I != E; ++I) {
> if( I->second->isStructTy() )
> {
> //code to collect type names
> }
> }
>
> I don't get this type in TypeSymbolTable. :(
>
> Though
> struct{
> union {
> char a[4];
> };
> };
> too is anonymous, but a name is given to it, i.e anonanonct.
>
> I need this information as I want to collect all type-names.
>
>
> Thanks & Regards,
> Pankaj
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20111206/506b8704/attachment.html>
More information about the llvm-dev
mailing list