~ubuntu-branches/ubuntu/lucid/fpc/lucid-proposed

« back to all changes in this revision

Viewing changes to fpcsrc/compiler/symsym.pas

  • Committer: Bazaar Package Importer
  • Author(s): Mazen Neifer, Torsten Werner, Mazen Neifer
  • Date: 2008-10-09 23:29:00 UTC
  • mfrom: (4.1.1 sid)
  • Revision ID: james.westby@ubuntu.com-20081009232900-553f61m37jkp6upv
Tags: 2.2.2-4
[ Torsten Werner ]
* Update ABI version in fpc-depends automatically.
* Remove empty directories from binary package fpc-source.

[ Mazen Neifer ]
* Removed leading path when calling update-alternatives to remove a Linitian
  error.
* Fixed clean target.
* Improved description of packages. (Closes: #498882)

Show diffs side-by-side

added added

removed removed

Lines of Context:
51
51
 
52
52
       tlabelsym = class(tstoredsym)
53
53
          used,
54
 
          defined : boolean;
 
54
          defined,
 
55
          nonlocal : boolean;
55
56
          { points to the matching node, only valid resultdef pass is run and
56
57
            the goto<->label relation in the node tree is created, should
57
58
            be a tnode }
119
120
 
120
121
       tabstractvarsym = class(tstoredsym)
121
122
          varoptions    : tvaroptions;
 
123
          notifications : Tlinkedlist;
122
124
          varspez       : tvarspez;  { sets the type of access }
123
125
          varregable    : tvarregable;
124
126
          varstate      : tvarstate;
125
 
          notifications : Tlinkedlist;
 
127
          { Has the address of this variable potentially escaped the }
 
128
          { block in which is was declared?                          }
 
129
          { could also be part of tabstractnormalvarsym, but there's }
 
130
          { one byte left here till the next 4 byte alignment        }
 
131
          addr_taken     : boolean;
126
132
          constructor create(st:tsymtyp;const n : string;vsp:tvarspez;def:tdef;vopts:tvaroptions);
127
133
          constructor ppuload(st:tsymtyp;ppufile:tcompilerppufile);
128
134
          destructor  destroy;override;
385
391
         inherited create(labelsym,n);
386
392
         used:=false;
387
393
         defined:=false;
 
394
         nonlocal:=false;
388
395
         code:=nil;
389
396
      end;
390
397
 
394
401
         inherited ppuload(labelsym,ppufile);
395
402
         code:=nil;
396
403
         used:=false;
 
404
         nonlocal:=false;
397
405
         defined:=true;
398
406
      end;
399
407
 
415
423
       if not(defined) then
416
424
         begin
417
425
           defined:=true;
418
 
           current_asmdata.getjumplabel(asmblocklabel);
 
426
           if nonlocal then
 
427
             current_asmdata.getglobaljumplabel(asmblocklabel)
 
428
           else
 
429
             current_asmdata.getjumplabel(asmblocklabel);
419
430
         end;
420
431
       result:=asmblocklabel.name;
421
432
     end;
922
933
         varstate:=vs_readwritten;
923
934
         varspez:=tvarspez(ppufile.getbyte);
924
935
         varregable:=tvarregable(ppufile.getbyte);
 
936
         addr_taken:=boolean(ppufile.getbyte);
925
937
         ppufile.getderef(vardefderef);
926
938
         ppufile.getsmallset(varoptions);
927
939
      end;
964
976
         oldintfcrc:=ppufile.do_crc;
965
977
         ppufile.do_crc:=false;
966
978
         ppufile.putbyte(byte(varregable));
 
979
         ppufile.putbyte(byte(addr_taken));
967
980
         ppufile.do_crc:=oldintfcrc;
968
981
         ppufile.putderef(vardefderef);
969
982
         ppufile.putsmallset(varoptions);