symdefh.inc 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692
  1. {
  2. $Id$
  3. Copyright (c) 1993-98 by Florian Klaempfl, Pierre Muller
  4. Interface for the definition types of the symtable
  5. This program is free software; you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation; either version 2 of the License, or
  8. (at your option) any later version.
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with this program; if not, write to the Free Software
  15. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  16. ****************************************************************************
  17. }
  18. {************************************************
  19. TDef
  20. ************************************************}
  21. { definition contains the informations about a type }
  22. tdeftype = (abstractdef,arraydef,recorddef,pointerdef,orddef,
  23. stringdef,enumdef,procdef,objectdef,errordef,
  24. filedef,formaldef,setdef,procvardef,floatdef,
  25. classrefdef);
  26. pdef = ^tdef;
  27. tdef = object(tsymtableentry)
  28. deftype : tdeftype;
  29. sym : ptypesym; { which type the definition was generated this def }
  30. has_inittable : boolean;
  31. { adress of init informations }
  32. inittable_label : pasmlabel;
  33. has_rtti : boolean;
  34. { address of rtti }
  35. rtti_label : pasmlabel;
  36. nextglobal,
  37. previousglobal : pdef;
  38. {$ifdef GDB}
  39. globalnb : word;
  40. is_def_stab_written : boolean;
  41. {$endif GDB}
  42. constructor init;
  43. constructor load;
  44. destructor done;virtual;
  45. procedure deref;virtual;
  46. procedure symderef;virtual;
  47. function typename:string;
  48. procedure write;virtual;
  49. function size:longint;virtual;
  50. function alignment:longint;virtual;
  51. function gettypename:string;virtual;
  52. function is_publishable : boolean;virtual;
  53. function is_in_current : boolean;
  54. procedure correct_owner_symtable; { registers enumdef inside objects or
  55. record directly in the owner symtable !! }
  56. { debug }
  57. {$ifdef GDB}
  58. function stabstring : pchar;virtual;
  59. procedure concatstabto(asmlist : paasmoutput);virtual;
  60. function NumberString:string;
  61. procedure set_globalnb;
  62. function allstabstring : pchar;
  63. {$endif GDB}
  64. { init. tables }
  65. function needs_inittable : boolean;virtual;
  66. procedure generate_inittable;
  67. function get_inittable_label : pasmlabel;
  68. { the default implemenation calls write_rtti_data }
  69. { if init and rtti data is different these procedures }
  70. { must be overloaded }
  71. procedure write_init_data;virtual;
  72. procedure write_child_init_data;virtual;
  73. { rtti }
  74. procedure write_rtti_name;
  75. function get_rtti_label : string;virtual;
  76. procedure generate_rtti;virtual;
  77. procedure write_rtti_data;virtual;
  78. procedure write_child_rtti_data;virtual;
  79. function is_intregable : boolean;
  80. function is_fpuregable : boolean;
  81. private
  82. savesize : longint;
  83. end;
  84. targconvtyp = (act_convertable,act_equal,act_exact);
  85. tvarspez = (vs_value,vs_const,vs_var);
  86. pdefcoll = ^tdefcoll;
  87. tdefcoll = record
  88. data : pdef;
  89. datasym : ptypesym;
  90. next : pdefcoll;
  91. paratyp : tvarspez;
  92. argconvtyp : targconvtyp;
  93. convertlevel : byte;
  94. register : tregister;
  95. end;
  96. tfiletype = (ft_text,ft_typed,ft_untyped);
  97. pfiledef = ^tfiledef;
  98. tfiledef = object(tdef)
  99. filetype : tfiletype;
  100. typed_as : pdef;
  101. constructor init(ft : tfiletype;tas : pdef);
  102. constructor load;
  103. procedure write;virtual;
  104. procedure deref;virtual;
  105. function gettypename:string;virtual;
  106. procedure setsize;
  107. { debug }
  108. {$ifdef GDB}
  109. function stabstring : pchar;virtual;
  110. procedure concatstabto(asmlist : paasmoutput);virtual;
  111. {$endif GDB}
  112. end;
  113. pformaldef = ^tformaldef;
  114. tformaldef = object(tdef)
  115. constructor init;
  116. constructor load;
  117. procedure write;virtual;
  118. function gettypename:string;virtual;
  119. {$ifdef GDB}
  120. function stabstring : pchar;virtual;
  121. procedure concatstabto(asmlist : paasmoutput);virtual;
  122. {$endif GDB}
  123. end;
  124. perrordef = ^terrordef;
  125. terrordef = object(tdef)
  126. constructor init;
  127. function gettypename:string;virtual;
  128. { debug }
  129. {$ifdef GDB}
  130. function stabstring : pchar;virtual;
  131. {$endif GDB}
  132. end;
  133. { tpointerdef and tclassrefdef should get a common
  134. base class, but I derived tclassrefdef from tpointerdef
  135. to avoid problems with bugs (FK)
  136. }
  137. ppointerdef = ^tpointerdef;
  138. tpointerdef = object(tdef)
  139. definition : pdef;
  140. defsym : ptypesym;
  141. is_far : boolean;
  142. constructor init(def : pdef);
  143. constructor initfar(def : pdef);
  144. constructor load;
  145. procedure write;virtual;
  146. procedure deref;virtual;
  147. function gettypename:string;virtual;
  148. { debug }
  149. {$ifdef GDB}
  150. function stabstring : pchar;virtual;
  151. procedure concatstabto(asmlist : paasmoutput);virtual;
  152. {$endif GDB}
  153. end;
  154. pobjectdef = ^tobjectdef;
  155. tobjectdef = object(tdef)
  156. childof : pobjectdef;
  157. objname : pstring;
  158. symtable : psymtable;
  159. objectoptions : tobjectoptions;
  160. { to be able to have a variable vmt position }
  161. { and no vmt field for objects without virtuals }
  162. vmt_offset : longint;
  163. constructor init(const n : string;c : pobjectdef);
  164. constructor load;
  165. destructor done;virtual;
  166. procedure write;virtual;
  167. procedure deref;virtual;
  168. function size : longint;virtual;
  169. function alignment:longint;virtual;
  170. function vmtmethodoffset(index:longint):longint;
  171. function is_publishable : boolean;virtual;
  172. function vmt_mangledname : string;
  173. function rtti_name : string;
  174. procedure check_forwards;
  175. function is_related(d : pobjectdef) : boolean;
  176. function is_class : boolean;
  177. function next_free_name_index : longint;
  178. procedure insertvmt;
  179. procedure set_parent(c : pobjectdef);
  180. { debug }
  181. {$ifdef GDB}
  182. function stabstring : pchar;virtual;
  183. {$endif GDB}
  184. { init/final }
  185. function needs_inittable : boolean;virtual;
  186. procedure write_init_data;virtual;
  187. procedure write_child_init_data;virtual;
  188. { rtti }
  189. function get_rtti_label : string;virtual;
  190. procedure generate_rtti;virtual;
  191. procedure write_rtti_data;virtual;
  192. procedure write_child_rtti_data;virtual;
  193. end;
  194. pclassrefdef = ^tclassrefdef;
  195. tclassrefdef = object(tpointerdef)
  196. constructor init(def : pdef);
  197. constructor load;
  198. procedure write;virtual;
  199. function gettypename:string;virtual;
  200. { debug }
  201. {$ifdef GDB}
  202. function stabstring : pchar;virtual;
  203. procedure concatstabto(asmlist : paasmoutput);virtual;
  204. {$endif GDB}
  205. end;
  206. parraydef = ^tarraydef;
  207. tarraydef = object(tdef)
  208. private
  209. rangenr : longint;
  210. public
  211. lowrange,
  212. highrange : longint;
  213. definition : pdef;
  214. rangedef : pdef;
  215. IsVariant,
  216. IsConstructor,
  217. IsArrayOfConst : boolean;
  218. function gettypename:string;virtual;
  219. function elesize : longint;
  220. constructor init(l,h : longint;rd : pdef);
  221. constructor load;
  222. procedure write;virtual;
  223. {$ifdef GDB}
  224. function stabstring : pchar;virtual;
  225. procedure concatstabto(asmlist : paasmoutput);virtual;
  226. {$endif GDB}
  227. procedure deref;virtual;
  228. function size : longint;virtual;
  229. function alignment : longint;virtual;
  230. { generates the ranges needed by the asm instruction BOUND (i386)
  231. or CMP2 (Motorola) }
  232. procedure genrangecheck;
  233. { returns the label of the range check string }
  234. function getrangecheckstring : string;
  235. function needs_inittable : boolean;virtual;
  236. procedure write_rtti_data;virtual;
  237. procedure write_child_rtti_data;virtual;
  238. end;
  239. precorddef = ^trecorddef;
  240. trecorddef = object(tdef)
  241. symtable : psymtable;
  242. constructor init(p : psymtable);
  243. constructor load;
  244. destructor done;virtual;
  245. procedure write;virtual;
  246. procedure deref;virtual;
  247. function size:longint;virtual;
  248. function alignment : longint;virtual;
  249. function gettypename:string;virtual;
  250. { debug }
  251. {$ifdef GDB}
  252. function stabstring : pchar;virtual;
  253. procedure concatstabto(asmlist : paasmoutput);virtual;
  254. {$endif GDB}
  255. { init/final }
  256. procedure write_init_data;virtual;
  257. procedure write_child_init_data;virtual;
  258. function needs_inittable : boolean;virtual;
  259. { rtti }
  260. procedure write_rtti_data;virtual;
  261. procedure write_child_rtti_data;virtual;
  262. end;
  263. porddef = ^torddef;
  264. torddef = object(tdef)
  265. low,high : longint;
  266. rangenr : longint;
  267. typ : tbasetype;
  268. constructor init(t : tbasetype;v,b : longint);
  269. constructor load;
  270. procedure write;virtual;
  271. function is_publishable : boolean;virtual;
  272. function gettypename:string;virtual;
  273. procedure setsize;
  274. { generates the ranges needed by the asm instruction BOUND }
  275. { or CMP2 (Motorola) }
  276. procedure genrangecheck;
  277. function getrangecheckstring : string;
  278. { debug }
  279. {$ifdef GDB}
  280. function stabstring : pchar;virtual;
  281. {$endif GDB}
  282. { rtti }
  283. procedure write_rtti_data;virtual;
  284. end;
  285. pfloatdef = ^tfloatdef;
  286. tfloatdef = object(tdef)
  287. typ : tfloattype;
  288. constructor init(t : tfloattype);
  289. constructor load;
  290. procedure write;virtual;
  291. function gettypename:string;virtual;
  292. function is_publishable : boolean;virtual;
  293. procedure setsize;
  294. { debug }
  295. {$ifdef GDB}
  296. function stabstring : pchar;virtual;
  297. {$endif GDB}
  298. { rtti }
  299. procedure write_rtti_data;virtual;
  300. end;
  301. pabstractprocdef = ^tabstractprocdef;
  302. tabstractprocdef = object(tdef)
  303. { saves a definition to the return type }
  304. retdef : pdef;
  305. proctypeoption : tproctypeoption;
  306. proccalloptions : tproccalloptions;
  307. procoptions : tprocoptions;
  308. para1 : pdefcoll;
  309. symtablelevel : byte;
  310. fpu_used : byte; { how many stack fpu must be empty }
  311. constructor init;
  312. constructor load;
  313. destructor done;virtual;
  314. procedure write;virtual;
  315. procedure deref;virtual;
  316. procedure concatdef(p : pdef;vsp : tvarspez);
  317. procedure concattypesym(p : ptypesym;vsp : tvarspez);
  318. function para_size : longint;
  319. function demangled_paras : string;
  320. procedure test_if_fpu_result;
  321. { debug }
  322. {$ifdef GDB}
  323. function stabstring : pchar;virtual;
  324. procedure concatstabto(asmlist : paasmoutput);virtual;
  325. {$endif GDB}
  326. end;
  327. pprocvardef = ^tprocvardef;
  328. tprocvardef = object(tabstractprocdef)
  329. constructor init;
  330. constructor load;
  331. procedure write;virtual;
  332. function size : longint;virtual;
  333. function gettypename:string;virtual;
  334. function is_publishable : boolean;virtual;
  335. { debug }
  336. {$ifdef GDB}
  337. function stabstring : pchar;virtual;
  338. procedure concatstabto(asmlist : paasmoutput); virtual;
  339. {$endif GDB}
  340. { rtti }
  341. procedure write_child_rtti_data;virtual;
  342. procedure write_rtti_data;virtual;
  343. end;
  344. tmessageinf = record
  345. case integer of
  346. 0 : (str : pchar);
  347. 1 : (i : longint);
  348. end;
  349. pprocdef = ^tprocdef;
  350. tprocdef = object(tabstractprocdef)
  351. private
  352. _mangledname : pchar;
  353. public
  354. extnumber : longint;
  355. messageinf : tmessageinf;
  356. nextoverloaded : pprocdef;
  357. { where is this function defined, needed here because there
  358. is only one symbol for all overloaded functions }
  359. fileinfo : tfileposinfo;
  360. { pointer to the local symbol table }
  361. localst : psymtable;
  362. { pointer to the parameter symbol table }
  363. parast : psymtable;
  364. { symbol owning this definition }
  365. procsym : pprocsym;
  366. { browser info }
  367. lastref,
  368. defref,
  369. crossref,
  370. lastwritten : pref;
  371. refcount : longint;
  372. _class : pobjectdef;
  373. { it's a tree, but this not easy to handle }
  374. { used for inlined procs }
  375. code : pointer;
  376. { true, if the procedure is only declared }
  377. { (forward procedure) }
  378. forwarddef,
  379. { true if the procedure is declared in the interface }
  380. interfacedef : boolean;
  381. { check the problems of manglednames }
  382. count : boolean;
  383. is_used : boolean;
  384. { small set which contains the modified registers }
  385. {$ifdef newcg}
  386. usedregisters : tregisterset;
  387. {$else newcg}
  388. usedregisters : longint;
  389. {$endif newcg}
  390. constructor init;
  391. constructor load;
  392. destructor done;virtual;
  393. procedure write;virtual;
  394. procedure deref;virtual;
  395. function haspara:boolean;
  396. function mangledname : string;
  397. procedure setmangledname(const s : string);
  398. procedure load_references;
  399. function write_references : boolean;
  400. function procname: string;
  401. { debug }
  402. {$ifdef GDB}
  403. function cplusplusmangledname : string;
  404. function stabstring : pchar;virtual;
  405. procedure concatstabto(asmlist : paasmoutput);virtual;
  406. {$endif GDB}
  407. { browser }
  408. {$ifdef BrowserLog}
  409. procedure add_to_browserlog;
  410. {$endif BrowserLog}
  411. end;
  412. pstringdef = ^tstringdef;
  413. tstringdef = object(tdef)
  414. string_typ : tstringtype;
  415. len : longint;
  416. constructor shortinit(l : byte);
  417. constructor shortload;
  418. constructor longinit(l : longint);
  419. constructor longload;
  420. constructor ansiinit(l : longint);
  421. constructor ansiload;
  422. constructor wideinit(l : longint);
  423. constructor wideload;
  424. function stringtypname:string;
  425. function size : longint;virtual;
  426. procedure write;virtual;
  427. function gettypename:string;virtual;
  428. function is_publishable : boolean;virtual;
  429. { debug }
  430. {$ifdef GDB}
  431. function stabstring : pchar;virtual;
  432. procedure concatstabto(asmlist : paasmoutput);virtual;
  433. {$endif GDB}
  434. { init/final }
  435. function needs_inittable : boolean;virtual;
  436. { rtti }
  437. procedure write_rtti_data;virtual;
  438. end;
  439. penumdef = ^tenumdef;
  440. tenumdef = object(tdef)
  441. rangenr,
  442. minval,
  443. maxval : longint;
  444. has_jumps : boolean;
  445. firstenum : penumsym;
  446. basedef : penumdef;
  447. constructor init;
  448. constructor init_subrange(_basedef:penumdef;_min,_max:longint);
  449. constructor load;
  450. destructor done;virtual;
  451. procedure write;virtual;
  452. procedure deref;virtual;
  453. function gettypename:string;virtual;
  454. function is_publishable : boolean;virtual;
  455. procedure calcsavesize;
  456. procedure setmax(_max:longint);
  457. procedure setmin(_min:longint);
  458. function min:longint;
  459. function max:longint;
  460. function getrangecheckstring:string;
  461. procedure genrangecheck;
  462. { debug }
  463. {$ifdef GDB}
  464. function stabstring : pchar;virtual;
  465. {$endif GDB}
  466. { rtti }
  467. procedure write_child_rtti_data;virtual;
  468. procedure write_rtti_data;virtual;
  469. end;
  470. psetdef = ^tsetdef;
  471. tsetdef = object(tdef)
  472. setof : pdef;
  473. settype : tsettype;
  474. constructor init(s : pdef;high : longint);
  475. constructor load;
  476. procedure write;virtual;
  477. procedure deref;virtual;
  478. function gettypename:string;virtual;
  479. function is_publishable : boolean;virtual;
  480. { debug }
  481. {$ifdef GDB}
  482. function stabstring : pchar;virtual;
  483. procedure concatstabto(asmlist : paasmoutput);virtual;
  484. {$endif GDB}
  485. { rtti }
  486. procedure write_rtti_data;virtual;
  487. procedure write_child_rtti_data;virtual;
  488. end;
  489. {
  490. $Log$
  491. Revision 1.41 1999-08-10 12:34:49 pierre
  492. + procsym field in tprocdef to allow correct gdb info generation
  493. Revision 1.40 1999/08/09 22:19:57 peter
  494. * classes vmt changed to only positive addresses
  495. * sharedlib creation is working
  496. Revision 1.39 1999/08/07 14:21:02 florian
  497. * some small problems fixed
  498. Revision 1.38 1999/08/05 16:53:15 peter
  499. * V_Fatal=1, all other V_ are also increased
  500. * Check for local procedure when assigning procvar
  501. * fixed comment parsing because directives
  502. * oldtp mode directives better supported
  503. * added some messages to errore.msg
  504. Revision 1.37 1999/08/03 22:03:16 peter
  505. * moved bitmask constants to sets
  506. * some other type/const renamings
  507. Revision 1.36 1999/08/02 21:29:04 florian
  508. * the main branch psub.pas is now used for
  509. newcg compiler
  510. Revision 1.35 1999/07/27 23:42:20 peter
  511. * indirect type referencing is now allowed
  512. Revision 1.34 1999/07/23 16:05:30 peter
  513. * alignment is now saved in the symtable
  514. * C alignment added for records
  515. * PPU version increased to solve .12 <-> .13 probs
  516. Revision 1.33 1999/06/22 16:24:45 pierre
  517. * local browser stuff corrected
  518. Revision 1.32 1999/06/02 10:11:51 florian
  519. * make cycle fixed i.e. compilation with 0.99.10
  520. * some fixes for qword
  521. * start of register calling conventions
  522. Revision 1.31 1999/05/31 16:42:35 peter
  523. * interfacedef flag for procdef if it's defined in the interface, to
  524. make a difference with 'forward;' directive forwarddef. Fixes 253
  525. Revision 1.30 1999/05/27 19:45:04 peter
  526. * removed oldasm
  527. * plabel -> pasmlabel
  528. * -a switches to source writing automaticly
  529. * assembler readers OOPed
  530. * asmsymbol automaticly external
  531. * jumptables and other label fixes for asm readers
  532. Revision 1.29 1999/05/23 18:42:15 florian
  533. * better error recovering in typed constants
  534. * some problems with arrays of const fixed, some problems
  535. due my previous
  536. - the location type of array constructor is now LOC_MEM
  537. - the pushing of high fixed
  538. - parameter copying fixed
  539. - zero temp. allocation removed
  540. * small problem in the assembler writers fixed:
  541. ref to nil wasn't written correctly
  542. Revision 1.28 1999/05/19 16:48:28 florian
  543. * tdef.typename: returns a now a proper type name for the most types
  544. Revision 1.27 1999/05/13 21:59:42 peter
  545. * removed oldppu code
  546. * warning if objpas is loaded from uses
  547. * first things for new deref writing
  548. Revision 1.26 1999/05/12 00:19:59 peter
  549. * removed R_DEFAULT_SEG
  550. * uniform float names
  551. Revision 1.25 1999/05/08 19:52:37 peter
  552. + MessagePos() which is enhanced Message() function but also gets the
  553. position info
  554. * Removed comp warnings
  555. Revision 1.24 1999/05/06 09:05:30 peter
  556. * generic write_float and str_float
  557. * fixed constant float conversions
  558. Revision 1.23 1999/04/26 18:30:02 peter
  559. * farpointerdef moved into pointerdef.is_far
  560. Revision 1.22 1999/04/26 13:31:49 peter
  561. * release storenumber,double_checksum
  562. Revision 1.21 1999/04/21 09:43:52 peter
  563. * storenumber works
  564. * fixed some typos in double_checksum
  565. + incompatible types type1 and type2 message (with storenumber)
  566. Revision 1.20 1999/04/14 09:15:00 peter
  567. * first things to store the symbol/def number in the ppu
  568. Revision 1.19 1999/04/08 15:57:52 peter
  569. + subrange checking for readln()
  570. Revision 1.18 1999/03/02 18:24:21 peter
  571. * fixed overloading of array of char
  572. Revision 1.17 1999/03/01 13:45:06 pierre
  573. + added staticppusymtable symtable type for local browsing
  574. Revision 1.16 1999/02/22 20:13:39 florian
  575. + first implementation of message keyword
  576. Revision 1.15 1999/01/20 14:18:40 pierre
  577. * bugs related to mangledname solved
  578. - linux external without name
  579. -external procs already used
  580. (added count and is_used boolean fiels in tprocvar)
  581. Revision 1.14 1999/01/12 14:25:33 peter
  582. + BrowserLog for browser.log generation
  583. + BrowserCol for browser info in TCollections
  584. * released all other UseBrowser
  585. Revision 1.13 1998/12/30 22:15:53 peter
  586. + farpointer type
  587. * absolutesym now also stores if its far
  588. Revision 1.12 1998/12/10 09:47:28 florian
  589. + basic operations with int64/qord (compiler with -dint64)
  590. + rtti of enumerations extended: names are now written
  591. Revision 1.11 1998/11/29 21:45:49 florian
  592. * problem with arrays with init tables fixed
  593. Revision 1.10 1998/11/20 15:36:00 florian
  594. * problems with rtti fixed, hope it works
  595. Revision 1.9 1998/11/10 10:09:14 peter
  596. * va_list -> array of const
  597. Revision 1.8 1998/11/09 11:44:37 peter
  598. + va_list for printf support
  599. Revision 1.7 1998/11/05 12:02:59 peter
  600. * released useansistring
  601. * removed -Sv, its now available in fpc modes
  602. Revision 1.6 1998/10/22 17:11:23 pierre
  603. + terminated the include exclude implementation for i386
  604. * enums inside records fixed
  605. Revision 1.5 1998/10/16 13:12:55 pierre
  606. * added vmt_offsets in destructors code also !!!
  607. * vmt_offset code for m68k
  608. Revision 1.4 1998/10/16 08:51:52 peter
  609. + target_os.stackalignment
  610. + stack can be aligned at 2 or 4 byte boundaries
  611. Revision 1.3 1998/10/05 21:33:30 peter
  612. * fixed 161,165,166,167,168
  613. Revision 1.2 1998/10/02 07:20:40 florian
  614. * range checking in units doesn't work if the units are smartlinked, fixed
  615. Revision 1.1 1998/09/23 12:03:57 peter
  616. * overloading fix for array of const
  617. }