<div dir="ltr">In aceste conditii, pot fi sigura ca GetElementPtrInst va accesa al n*lea camp din structura corect, right? Desi exista padding.</div><div class="gmail_extra"><br><div class="gmail_quote">2015-12-22 21:40 GMT+02:00 Alexandru Guduleasa <span dir="ltr"><<a href="mailto:alexandru.guduleasa@gmail.com" target="_blank">alexandru.guduleasa@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">E posibil să consideri pointerii pe 64 de biți => 8 + 3 * 4 = 20 de octeți.<br>
Cu padding, ajungi la 24.<br>
<br>
Încearcă să adaugi în data layout "p:32:32:32".<br>
Mai multe detalii aici: [1].<br>
<br>
Nu e ok sa înmulțești direct cu 4 pentru ca pot apărea probleme cu<br>
instrucțiunile care accesează memoria (să citească/scrie din/în altă<br>
locație).<br>
<br>
Numai bine,<br>
Alex<br>
<br>
[1] <a href="http://llvm.org/docs/LangRef.html#data-layout" rel="noreferrer" target="_blank">http://llvm.org/docs/LangRef.html#data-layout</a><br>
<div class="HOEnZb"><div class="h5"><br>
<br>
2015-12-22 20:15 GMT+02:00 Oana Stroie via cpl <<a href="mailto:cpl@cursuri.cs.pub.ro">cpl@cursuri.cs.pub.ro</a>>:<br>
><br>
> ---------- Forwarded message ----------<br>
> From: Oana Stroie <<a href="mailto:mail.oana.stroie@gmail.com">mail.oana.stroie@gmail.com</a>><br>
> Date: 2015-12-22 20:13 GMT+02:00<br>
> Subject: Re: [cpl] [Tema 3] nelamurire<br>
> To: <a href="mailto:Lavinia.Ghica@microchip.com">Lavinia.Ghica@microchip.com</a><br>
><br>
><br>
> Inca o intrebare:<br>
><br>
> Am o mare dificultate in a seta campul "Dimensiunea in bytes a obiectului,<br>
> incluzând informația de runtime"<br>
> in enunt este 4bytes ( ceea ce este logic - pointer la rtti )<br>
> in rularea codului Hello da 8 (ceea ce este diferit).<br>
> In implementare am setat ca 4 * (nr de atribute + 1[pointer la rtti]).<br>
> insa daca folosesc o functie din api : getTypeAllocSize(struct_TClass) ce ar<br>
> trebui sa imi spuna dimensiunea unei structuri, imi da o infomarmatie cu<br>
> totul diferita<br>
> ( ex pt o structura de genul Main modificat:<br>
> %struct.TMain = type { %struct.__lcpl_rtti*, i32, i32, i32 }<br>
> am valoarea: i32 24 ( 24 de bytes )<br>
> De asteptat era 4 * 4 = 16 bytes.<br>
> Imi poti spune de ce diferenta, si daca e ok sa punem noi de mana (numarul<br>
> de atribute + 1 ) * 4?<br>
><br>
> 2015-12-22 20:00 GMT+02:00 <<a href="mailto:Lavinia.Ghica@microchip.com">Lavinia.Ghica@microchip.com</a>>:<br>
>><br>
>> Buna Oana,<br>
>><br>
>> Da, este recomandat sa lucrati cu ceea ce ati implementat la tema 2.<br>
>><br>
>> Spor,<br>
>> Lavinia<br>
>> > On 22 Dec 2015, at 19:56, Oana Stroie via cpl <<a href="mailto:cpl@cursuri.cs.pub.ro">cpl@cursuri.cs.pub.ro</a>><br>
>> > wrote:<br>
>> ><br>
>> > Buna ziua,<br>
>> ><br>
>> > Tinand cont ca avem nevoie de tabela de tipuri si tabela de simboluri la<br>
>> > tema 3, este recomandat sa lucram cu cele deja implementate din scheletul<br>
>> > temei 2?<br>
>> ><br>
>> > Nu imi dau seama inca daca acopera toate cazurile inatalnite in cadrul<br>
>> > temei 3 ( cele doua structuri + una cu adresele alocate simbolurilor) sau<br>
>> > trebuie sa implementam alta logica de a retine tipurile si simbolurile?<br>
>> ><br>
>> > Multumesc,<br>
>> > Oana Stroie<br>
>> > _______________________________________________<br>
>> > cpl mailing list<br>
>> > <a href="mailto:cpl@cursuri.cs.pub.ro">cpl@cursuri.cs.pub.ro</a><br>
>> > <a href="http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/cpl" rel="noreferrer" target="_blank">http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/cpl</a><br>
>><br>
><br>
><br>
><br>
> _______________________________________________<br>
> cpl mailing list<br>
> <a href="mailto:cpl@cursuri.cs.pub.ro">cpl@cursuri.cs.pub.ro</a><br>
> <a href="http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/cpl" rel="noreferrer" target="_blank">http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/cpl</a><br>
><br>
</div></div></blockquote></div><br></div>