Home | History | Annotate | Download | only in m_debuginfo

Lines Matching refs:te

51 Bool ML_(TyEnt__is_type)( const TyEnt* te )
53 switch (te->tag) {
83 void ML_(pp_TyEnt)( const TyEnt* te )
85 VG_(printf)("0x%05lx ", te->cuOff);
86 switch (te->tag) {
91 VG_(printf)("INDIR(0x%05lx)", te->Te.INDIR.indR);
98 te->Te.Atom.valueKnown ? "" : "unknown:",
99 te->Te.Atom.value, te->Te.Atom.name);
102 if (te->Te.Field.nLoc == -1)
104 te->Te.Field.typeR, te->Te.Field.pos.offset,
105 te->Te.Field.name ? te->Te.Field.name : "");
108 te->Te.Field.typeR, te->Te.Field.nLoc,
109 te->Te.Field.pos.loc,
110 te->Te.Field.name ? te->Te.Field.name : "");
114 if (te->Te.Bound.knownL)
115 VG_(printf)("%lld", te->Te.Bound.boundL);
119 if (te->Te.Bound.knownU)
120 VG_(printf)("%lld", te->Te.Bound.boundU);
127 te->Te.TyBase.szB, te->Te.TyBase.enc,
128 te->Te.TyBase.name ? te->Te.TyBase.name
132 VG_(printf)("Te_TyPtr(%d,0x%05lx)", te->Te.TyPorR.szB,
133 te->Te.TyPorR.typeR);
136 VG_(printf)("Te_TyRef(%d,0x%05lx)", te->Te.TyPorR.szB,
137 te->Te.TyPorR.typeR);
140 VG_(printf)("Te_TyMbr(%d,0x%05lx)", te->Te.TyPorR.szB,
141 te->Te.TyPorR.typeR);
144 VG_(printf)("Te_TyRvalRef(%d,0x%05lx)", te->Te.TyPorR.szB,
145 te->Te.TyPorR.typeR);
149 te->Te.TyTyDef.typeR,
150 te->Te.TyTyDef.name ? te->Te.TyTyDef.name
154 if (te->Te.TyStOrUn.complete) {
156 te->Te.TyStOrUn.szB,
157 te->Te.TyStOrUn.isStruct ? 'S' : 'U',
158 te->Te.TyStOrUn.fieldRs,
159 te->Te.TyStOrUn.name ? te->Te.TyStOrUn.name
161 pp_XArray_of_cuOffs( te->Te.TyStOrUn.fieldRs );
164 te->Te.TyStOrUn.name);
169 te->Te.TyEnum.szB, te->Te.TyEnum.atomRs,
170 te->Te.TyEnum.name ? te->Te.TyEnum.name
172 if (te->Te.TyEnum.atomRs)
173 pp_XArray_of_cuOffs( te->Te.TyEnum.atomRs );
177 te->Te.TyArray.typeR, te->Te.TyArray.boundRs);
178 if (te->Te.TyArray.boundRs)
179 pp_XArray_of_cuOffs( te->Te.TyArray.boundRs );
185 VG_(printf)("Te_TyQual(%c,0x%05lx)", te->Te.TyQual.qual,
186 te->Te.TyQual.typeR);
190 te->Te.TyVoid.isFake ? "(fake)" : "");
224 if (ent->Te.Bound.knownL && ent->Te.Bound.knownU
225 && ent->Te.Bound.boundL == 0) {
226 VG_(printf)("[%lld]", 1 + ent->Te.Bound.boundU);
229 if (ent->Te.Bound.knownL && (!ent->Te.Bound.knownU)
230 && ent->Te.Bound.boundL == 0) {
247 if (!ent->Te.TyBase.name) goto unhandled;
248 VG_(printf)("%s", ent->Te.TyBase.name);
251 ML_(pp_TyEnt_C_ishly)(tyents, ent->Te.TyPorR.typeR);
255 ML_(pp_TyEnt_C_ishly)(tyents, ent->Te.TyPorR.typeR);
259 ML_(pp_TyEnt_C_ishly)(tyents, ent->Te.TyPorR.typeR);
263 ML_(pp_TyEnt_C_ishly)(tyents, ent->Te.TyPorR.typeR);
267 VG_(printf)("enum %s", ent->Te.TyEnum.name ? ent->Te.TyEnum.name
272 ent->Te.TyStOrUn.isStruct ? "struct" : "union",
273 ent->Te.TyStOrUn.name ? ent->Te.TyStOrUn.name
277 ML_(pp_TyEnt_C_ishly)(tyents, ent->Te.TyArray.typeR);
278 if (ent->Te.TyArray.boundRs) {
280 XArray* xa = ent->Te.TyArray.boundRs;
289 VG_(printf)("%s", ent->Te.TyTyDef.name ? ent->Te.TyTyDef.name
296 switch (ent->Te.TyQual.qual) {
302 ML_(pp_TyEnt_C_ishly)(tyents, ent->Te.TyQual.typeR);
306 ent->Te.TyVoid.isFake ? "fake" : "");
368 TyEnt* te;
372 te = cache->ce[h].ent0;
376 cache->ce[h].ent1 = te;
489 r = UWord__cmp(te1->Te.INDIR.indR, te2->Te.INDIR.indR);
492 r = Bool__cmp(te1->Te.Atom.valueKnown, te2->Te.Atom.valueKnown);
494 r = Long__cmp(te1->Te.Atom.value, te2->Te.Atom.value);
496 r = Asciiz__cmp(te1->Te.Atom.name, te2->Te.Atom.name);
499 r = Bool__cmp(te1->Te.Field.isStruct, te2->Te.Field.isStruct);
501 r = UWord__cmp(te1->Te.Field.typeR, te2->Te.Field.typeR);
503 r = Asciiz__cmp(te1->Te.Field.name, te2->Te.Field.name);
505 r = UWord__cmp(te1->Te.Field.nLoc, te2->Te.Field.nLoc);
507 if (te1->Te.Field.nLoc == -1)
508 r = Long__cmp(te1->Te.Field.pos.offset, te2->Te.Field.pos.offset);
510 r = Bytevector__cmp(te1->Te.Field.pos.loc, te2->Te.Field.pos.loc,
511 te1->Te.Field.nLoc);
514 r = Bool__cmp(te1->Te.Bound.knownL, te2->Te.Bound.knownL);
516 r = Bool__cmp(te1->Te.Bound.knownU, te2->Te.Bound.knownU);
518 r = Long__cmp(te1->Te.Bound.boundL, te2->Te.Bound.boundL);
520 r = Long__cmp(te1->Te.Bound.boundU, te2->Te.Bound.boundU);
523 r = UChar__cmp(te1->Te.TyBase.enc, te2->Te.TyBase.enc);
525 r = Int__cmp(te1->Te.TyBase.szB, te2->Te.TyBase.szB);
527 r = Asciiz__cmp(te1->Te.TyBase.name, te2->Te.TyBase.name);
533 r = Int__cmp(te1->Te.TyPorR.szB, te2->Te.TyPorR.szB);
535 r = UWord__cmp(te1->Te.TyPorR.typeR, te2->Te.TyPorR.typeR);
538 r = UWord__cmp(te1->Te.TyTyDef.typeR, te2->Te.TyTyDef.typeR);
540 r = Asciiz__cmp(te1->Te.TyTyDef.name, te2->Te.TyTyDef.name);
543 r = Bool__cmp(te1->Te.TyStOrUn.isStruct, te2->Te.TyStOrUn.isStruct);
545 r = Bool__cmp(te1->Te.TyStOrUn.complete, te2->Te.TyStOrUn.complete);
547 r = UWord__cmp(te1->Te.TyStOrUn.szB, te2->Te.TyStOrUn.szB);
549 r = Asciiz__cmp(te1->Te.TyStOrUn.name, te2->Te.TyStOrUn.name);
551 r = XArray_of_UWord__cmp(te1->Te.TyStOrUn.fieldRs,
552 te2->Te.TyStOrUn.fieldRs);
555 r = Int__cmp(te1->Te.TyEnum.szB, te2->Te.TyEnum.szB);
557 r = Asciiz__cmp(te1->Te.TyEnum.name, te2->Te.TyEnum.name);
559 r = XArray_of_UWord__cmp(te1->Te.TyEnum.atomRs, te2->Te.TyEnum.atomRs);
562 r = UWord__cmp(te1->Te.TyArray.typeR, te2->Te.TyArray.typeR);
564 r = XArray_of_UWord__cmp(te1->Te.TyArray.boundRs,
565 te2->Te.TyArray.boundRs);
570 r = UWord__cmp(te1->Te.TyQual.typeR, te2->Te.TyQual.typeR);
572 r = UChar__cmp(te1->Te.TyQual.qual, te2->Te.TyQual.qual);
575 r = Bool__cmp(te1->Te.TyVoid.isFake, te2->Te.TyVoid.isFake);
587 void ML_(TyEnt__make_EMPTY) ( TyEnt* te )
591 switch (te->tag) {
599 if (te->Te.Atom.name) ML_(dinfo_free)(te->Te.Atom.name);
602 if (te->Te.Field.name) ML_(dinfo_free)(te->Te.Field.name);
603 if (te->Te.Field.nLoc > 0 && te->Te.Field.pos.loc)
604 ML_(dinfo_free)(te->Te.Field.pos.loc);
609 if (te->Te.TyBase.name) ML_(dinfo_free)(te->Te.TyBase.name);
617 if (te->Te.TyTyDef.name) ML_(dinfo_free)(te->Te.TyTyDef.name);
620 if (te->Te.TyStOrUn.name) ML_(dinfo_free)(te->Te.TyStOrUn.name);
621 VG_(deleteXA)(te->Te.TyStOrUn.fieldRs);
624 if (te->Te.TyEnum.name) ML_(dinfo_free)(te->Te.TyEnum.name);
625 if (te->Te.TyEnum.atomRs) VG_(deleteXA)(te->Te.TyEnum.atomRs);
628 if (te->Te.TyArray.boundRs) VG_(deleteXA)(te->Te.TyArray.boundRs);
640 saved_cuOff = te->cuOff;
641 VG_(memset)(te, 0, sizeof(*te));
642 te->cuOff = saved_cuOff;
643 te->tag = Te_EMPTY;
680 vg_assert(ent->Te.TyBase.szB > 0);
681 return mk_MaybeULong_Just( ent->Te.TyBase.szB );
683 return ML_(sizeOfType)( tyents, ent->Te.TyQual.typeR );
686 ent->Te.TyTyDef.typeR);
690 return ML_(sizeOfType)( tyents, ent->Te.TyTyDef.typeR );
695 vg_assert(ent->Te.TyPorR.szB == 4 || ent->Te.TyPorR.szB == 8);
696 return mk_MaybeULong_Just( ent->Te.TyPorR.szB );
698 return ent->Te.TyStOrUn.complete
699 ? mk_MaybeULong_Just( ent->Te.TyStOrUn.szB )
702 return mk_MaybeULong_Just( ent->Te.TyEnum.szB );
705 ent->Te.TyArray.typeR);
709 eszB = ML_(sizeOfType)( tyents, ent->Te.TyArray.typeR );
710 for (i = 0; i < VG_(sizeXA)( ent->Te.TyArray.boundRs ); i++) {
712 = *(UWord*)VG_(indexXA)(ent->Te.TyArray.boundRs, i);
717 if (!(bo->Te.Bound.knownL && bo->Te.Bound.knownU))
721 mk_MaybeULong_Just( (ULong)(bo->Te.Bound.boundU
722 - bo->Te.Bound.boundL + 1) ));
784 if (!ty->Te.TyStOrUn.isStruct) goto done;
785 fieldRs = ty->Te.TyStOrUn.fieldRs;
787 && (ty->Te.TyStOrUn.typeR == 0)) goto done;
793 vg_assert(field->Te.Field.nLoc < 0
794 || (field->Te.Field.nLoc > 0
795 && field->Te.Field.pos.loc));
796 if (field->Te.Field.nLoc == -1) {
798 res.word = field->Te.Field.pos.offset;
808 field->Te.Field.pos.loc, field->Te.Field.nLoc,
820 mul = ML_(sizeOfType)( tyents, field->Te.Field.typeR );
835 ty->Te.TyStOrUn.typeR);
843 if (!field->Te.Field.name) goto done;
845 VG_(addBytesToXA)( xa, field->Te.Field.name,
846 VG_(strlen)(field->Te.Field.name) );
849 field->Te.Field.typeR );
865 ty->Te.TyArray.typeR);
869 if (!ty->Te.TyArray.boundRs)
871 if (VG_(sizeXA)( ty->Te.TyArray.boundRs ) != 1) goto done;
872 boundR = *(UWord*)VG_(indexXA)( ty->Te.TyArray.boundRs, 0 );
876 if (!(bound->Te.Bound.knownL && bound->Te.Bound.knownU
877 && bound->Te.Bound.boundL == 0
878 && bound->Te.Bound.boundU >= bound->Te.Bound.boundL))
880 size = bound->Te.Bound.boundU - bound->Te.Bound.boundL + 1;
882 mul = ML_(sizeOfType)( tyents, ty->Te.TyArray.typeR );
899 ty->Te.TyQual.typeR);
907 ty->Te.TyTyDef.typeR);