Am 03.09.2015 um 12:09 schrieb Alfred:
I would like to report back about RTTI.

RTTI Branch was tested on RPi2 (ARMV7A, hardfloat), win32/64 (Win8.1), Linux i386 (Arch VM) and Linux64 (Ubuntu VM).

I did encounter some new alignment issues again on ARM (see checkMethod).
But some other alignment issues have vanished (see checkParam).

Also some register values did change:
Stacksize difference between Win64 and Linux64
Other difference most visible in : checkMethod(p, 'TestStdCall', ....

The included TestInterfaceRTTI.lpr runs flawless on all of my (VM-) systems and on RPi2.

Thanks !

No problem.
Can you check again with this diff applied?
If this doesn't work I'm a bit clueless.
Since I have no platform available to test alignment issues on, maybe you can look into it.

Steve
 compiler/ncgrtti.pas | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/compiler/ncgrtti.pas b/compiler/ncgrtti.pas
index 0465f64..d53c3c5 100644
--- a/compiler/ncgrtti.pas
+++ b/compiler/ncgrtti.pas
@@ -526,7 +526,14 @@ implementation
                   targetinfos[target_info.system]^.alignment.recordalignmin,
                   targetinfos[target_info.system]^.alignment.maxCrecordalign);
 
+                tcb.begin_anonymous_record('',1,reqalign,
+                  targetinfos[target_info.system]^.alignment.recordalignmin,
+                  targetinfos[target_info.system]^.alignment.maxCrecordalign);
+
                 tcb.emit_shortstring_const(sym.realname);
+
+                tcb.end_anonymous_record;
+
                 tcb.emit_ord_const(3,u8inttype);
                 
tcb.emit_ord_const(ProcCallOptionToCallConv[def.proccalloption],u8inttype);
                 write_rtti_reference(tcb,def.returndef,fullrtti);
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to