summaryrefslogtreecommitdiff
path: root/compiler/export.pas
diff options
context:
space:
mode:
authorsvenbarth <svenbarth@3ad0048d-3df7-0310-abae-a5850022a9f2>2016-01-15 16:06:06 +0000
committersvenbarth <svenbarth@3ad0048d-3df7-0310-abae-a5850022a9f2>2016-01-15 16:06:06 +0000
commitb1b644abb6a62390910c6005e4e87b27fc51a8f2 (patch)
tree891802146406f75b8a50c9c0af86941ed556345f /compiler/export.pas
parent8f6567f71f1ba249587b77701d9adf5384ae660c (diff)
downloadfpc-b1b644abb6a62390910c6005e4e87b27fc51a8f2.tar.gz
Merged revision(s) 28691, 31914 from branches/svenbarth/packages:
Convert export options from constants to a set and accordingly adjust all usage locations git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@32945 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/export.pas')
-rw-r--r--compiler/export.pas40
1 files changed, 21 insertions, 19 deletions
diff --git a/compiler/export.pas b/compiler/export.pas
index d363d7434a..f168c1e924 100644
--- a/compiler/export.pas
+++ b/compiler/export.pas
@@ -31,18 +31,20 @@ uses
symtype,symdef,symsym,
aasmbase,aasmdata;
-const
+type
{ export options }
- eo_resident = $1;
- eo_index = $2;
- eo_name = $4;
+ texportoption=(eo_none,
+ eo_resident,
+ eo_index,
+ eo_name
+ );
+ texportoptions=set of texportoption;
-type
texported_item = class(TLinkedListItem)
sym : tsym;
index : longint;
name : pshortstring;
- options : word;
+ options : texportoptions;
is_var : boolean;
constructor create;
destructor destroy;override;
@@ -71,14 +73,14 @@ type
TExportLibClass=class of TExportLib;
- procedure exportprocsym(sym: tsym; const s : string; index: longint; options: word);
- procedure exportvarsym(sym: tsym; const s : string; index: longint; options: word);
+ procedure exportprocsym(sym: tsym; const s : string; index: longint; options: texportoptions);
+ procedure exportvarsym(sym: tsym; const s : string; index: longint; options: texportoptions);
{ to export symbols not directly related to a tsym (e.g., the Objective-C
rtti) }
- procedure exportname(const s : string; options: word);
+ procedure exportname(const s : string; options: texportoptions);
- procedure exportallprocdefnames(sym: tprocsym; pd: tprocdef; options: word);
- procedure exportallprocsymnames(ps: tprocsym; options: word);
+ procedure exportallprocdefnames(sym: tprocsym; pd: tprocdef; options: texportoptions);
+ procedure exportallprocsymnames(ps: tprocsym; options: texportoptions);
var
@@ -98,20 +100,20 @@ uses
TExported_procedure
****************************************************************************}
-procedure exportprocsym(sym: tsym; const s : string; index: longint; options: word);
+procedure exportprocsym(sym: tsym; const s : string; index: longint; options: texportoptions);
var
hp : texported_item;
begin
hp:=texported_item.create;
hp.name:=stringdup(s);
hp.sym:=sym;
- hp.options:=options or eo_name;
+ hp.options:=options+[eo_name];
hp.index:=index;
exportlib.exportprocedure(hp);
end;
-procedure exportvarsym(sym: tsym; const s : string; index: longint; options: word);
+procedure exportvarsym(sym: tsym; const s : string; index: longint; options: texportoptions);
var
hp : texported_item;
begin
@@ -119,19 +121,19 @@ procedure exportvarsym(sym: tsym; const s : string; index: longint; options: wor
hp.name:=stringdup(s);
hp.sym:=sym;
hp.is_var:=true;
- hp.options:=options or eo_name;
+ hp.options:=options+[eo_name];
hp.index:=index;
exportlib.exportvar(hp);
end;
-procedure exportname(const s : string; options: word);
+procedure exportname(const s : string; options: texportoptions);
begin
exportvarsym(nil,s,0,options);
end;
- procedure exportallprocdefnames(sym: tprocsym; pd: tprocdef; options: word);
+ procedure exportallprocdefnames(sym: tprocsym; pd: tprocdef; options: texportoptions);
var
item: TCmdStrListItem;
begin
@@ -148,7 +150,7 @@ procedure exportname(const s : string; options: word);
end;
- procedure exportallprocsymnames(ps: tprocsym; options: word);
+ procedure exportallprocsymnames(ps: tprocsym; options: texportoptions);
var
i: longint;
begin
@@ -167,7 +169,7 @@ begin
sym:=nil;
index:=-1;
name:=nil;
- options:=0;
+ options:=[];
is_var:=false;
end;