Commit History

Autor SHA1 Mensaxe Data
  svenbarth 50788e8b3b * correctly encapsulate the RTTI data for sets to avoid alignment problems with the new SetSize field (fixes compilation on Sparc and basically every other target that requires proper alignment with 64-bit values dictating an 8-Byte alignment) %!s(int64=8) %!d(string=hai) anos
  svenbarth 5c97248f85 + also write the set's size to the RTTI as that simplifies handling in Invoke() %!s(int64=8) %!d(string=hai) anos
  svenbarth 7b675b6769 * correctly write the type of open array parameters as the element def and not the array def %!s(int64=8) %!d(string=hai) anos
  florian 126b834976 * ncgrtti has to use target pointer sizes, so changed SizeOf(PtrInt) into SizeOf(PInt), should fix #31964 %!s(int64=8) %!d(string=hai) anos
  florian b1dff29cbf * removed unused units %!s(int64=8) %!d(string=hai) anos
  maciej-izak af8e0efe57 * Rtti info about Management Operators (MO) in init table for records. Note: commit contains minimal changes for RTL (for proper "make") no functional changes. More RTL changes for fully functionally MO in next commits. %!s(int64=8) %!d(string=hai) anos
  Jonas Maebe 265c8e7bbc + support for specifying ms_abi_default, ms_abi_cdelc, sysv_abi_default, and %!s(int64=8) %!d(string=hai) anos
  maciej-izak 1d301b6dbe More consequent writing of Rtti. Part of code related to recorddef moved from recorddef_rtti to write_child_data_rtti(). When typeinfo is used in code init Rtti is a child of the full Rtti. Commit also contains correction for code commited for mantis #31249 (r35376) and mantis #31305 (r35377) for objects. Before was impossible to compile code with usage of typeinfo() function for object without managed fields ("Undefined symbol" error). %!s(int64=8) %!d(string=hai) anos
  svenbarth 7e85e27865 * fix ncgrtti correctly (for once that warning was indeed useful :P ) %!s(int64=8) %!d(string=hai) anos
  florian 4b63da81aa * initialize para to avoid warning %!s(int64=8) %!d(string=hai) anos
  svenbarth c1390b3442 * fix for Mantis #31249: applied (adjusted) patch provided by Maciej Izak %!s(int64=8) %!d(string=hai) anos
  svenbarth f517311227 * ensure that the indirect symbols for VMT, RTTI and IID reside in the same sections as the symbols they point to -> reduces the amount of sections for them by half %!s(int64=8) %!d(string=hai) anos
  svenbarth 1d40e7e159 * correctly encapsulate the location records %!s(int64=8) %!d(string=hai) anos
  svenbarth 26135d605f + implement interface RTTI inspired by the changes from Steve Hildebrandt, yet not exactly the same. Like his implementation this one isn't Delphi compatible either. %!s(int64=8) %!d(string=hai) anos
  svenbarth 41dccb75b9 * for open array parameters the RTTI of the element def needs to be available/written; this is Delphi compatible %!s(int64=8) %!d(string=hai) anos
  svenbarth d044969d88 * applied adjusted patch from Mantis #31250 by Maciej Izak %!s(int64=8) %!d(string=hai) anos
  svenbarth 5fa5ff1730 + new method TRTTIWriter.methods_write_rtti() to ensure that the TypeInfo of parameters and result type of methods is written (can be restricted to certain visibilities and whether hidden parameters shall be checked as well) %!s(int64=8) %!d(string=hai) anos
  svenbarth 22e23fea8c + new parameter allow_hidden for params_write_rtti() so that writing of the TypeInfo of hidden parameters can be enforced as well %!s(int64=8) %!d(string=hai) anos
  svenbarth cf18b7116e * write_paralocs() takes a pcgpara instead of a tparavarsym as this is needed for the result location as well %!s(int64=8) %!d(string=hai) anos
  svenbarth f905303c4a + new TParamFlag pfResult if the result is passed as a parameter and thus needs to be set up as well %!s(int64=8) %!d(string=hai) anos
  svenbarth 854a82b58b * move write_param_flag() from local to class scope %!s(int64=8) %!d(string=hai) anos
  svenbarth 5275c36393 + extend TParamFlags by values for hidden parameters in general and especially the hidden high, self and vmt parameters (this is necessary so a manager approach for Invoke() can be used with as few knowledge about the involved calling conventions as possible) %!s(int64=8) %!d(string=hai) anos
  svenbarth 6b641394d0 * fix for Mantis #31201: don't write any RTTI for undefined defs (and while we're at it abort if an error def is encountered) %!s(int64=8) %!d(string=hai) anos
  svenbarth 417f1cd49d + initial implementation of the RTTI for parameter locations (not *yet* used by anything) %!s(int64=8) %!d(string=hai) anos
  svenbarth 0ed00f64f5 * move writing of the calling convention into its own method %!s(int64=8) %!d(string=hai) anos
  svenbarth e3f10500b0 * move writing of the methodkind into its own function (and return the value as its a bit more complicated to calculate than merely checking proctypeoption) %!s(int64=8) %!d(string=hai) anos
  florian 2e779239ad * fix rtti for targets with a max. C record alignment > 8 bytes %!s(int64=8) %!d(string=hai) anos
  florian 0b82f71e8d * take care of the fact that there are 32 bit abis (e.g. ARMHF) which align qword on 8 byte boundaries, resolves issue #31132 %!s(int64=8) %!d(string=hai) anos
  svenbarth 7023a6f95b * have the remaining 7 Boolean types also use tkBool as typekind instead of tkInteger %!s(int64=8) %!d(string=hai) anos
  svenbarth dbbb6dca32 * correctly treat Boolean64 as otUQword and QWordBool as otSQWord (the former having QWord range 0..1, the latter Low(Int64)..High(Int64)) %!s(int64=8) %!d(string=hai) anos