mirror of
https://github.com/byteworksinc/ORCA-C.git
synced 2025-02-06 04:30:13 +00:00
Do not force function type info to be in the global pool.
This should no longer be necessary, because functions are not forced to be in the global symbol table.
This commit is contained in:
parent
202ed3b514
commit
d96a5f86f9
10
Parser.pas
10
Parser.pas
@ -1328,7 +1328,6 @@ var
|
|||||||
{---------------------------------}
|
{---------------------------------}
|
||||||
lisFunction: boolean; {local copy of isFunction}
|
lisFunction: boolean; {local copy of isFunction}
|
||||||
lLastParameter: identPtr; {next parameter to process}
|
lLastParameter: identPtr; {next parameter to process}
|
||||||
luseGlobalPool: boolean; {local copy of useGlobalPool}
|
|
||||||
lSuppressMacroExpansions: boolean;{local copy of suppressMacroExpansions}
|
lSuppressMacroExpansions: boolean;{local copy of suppressMacroExpansions}
|
||||||
ldeclaredTagOrEnumConst: boolean; {local copy of declaredTagOrEnumConst}
|
ldeclaredTagOrEnumConst: boolean; {local copy of declaredTagOrEnumConst}
|
||||||
|
|
||||||
@ -1477,8 +1476,6 @@ var
|
|||||||
if token.kind in declarationSpecifiersElement then begin
|
if token.kind in declarationSpecifiersElement then begin
|
||||||
{handle a prototype variable list}
|
{handle a prototype variable list}
|
||||||
numberOfParameters := 0; {don't allow K&R parm declarations}
|
numberOfParameters := 0; {don't allow K&R parm declarations}
|
||||||
luseGlobalPool := useGlobalPool; {use global memory}
|
|
||||||
useGlobalPool := true;
|
|
||||||
done2 := false;
|
done2 := false;
|
||||||
lisFunction := isFunction; {preserve global variables}
|
lisFunction := isFunction; {preserve global variables}
|
||||||
with tPtr2^ do begin
|
with tPtr2^ do begin
|
||||||
@ -1530,7 +1527,6 @@ var
|
|||||||
until done2;
|
until done2;
|
||||||
end; {with}
|
end; {with}
|
||||||
isFunction := lisFunction; {restore global variables}
|
isFunction := lisFunction; {restore global variables}
|
||||||
useGlobalPool := luseGlobalPool;
|
|
||||||
end {if prototype}
|
end {if prototype}
|
||||||
else if token.kind = ident then begin
|
else if token.kind = ident then begin
|
||||||
|
|
||||||
@ -1664,12 +1660,6 @@ StackDeclarations; {stack the type records}
|
|||||||
while typeStack <> nil do begin {reverse the type stack}
|
while typeStack <> nil do begin {reverse the type stack}
|
||||||
tsPtr := typeStack;
|
tsPtr := typeStack;
|
||||||
typeStack := tsPtr^.next;
|
typeStack := tsPtr^.next;
|
||||||
if isFunction and (not useGlobalPool) then begin
|
|
||||||
tPtr2 := pointer(GMalloc(sizeof(typeRecord)));
|
|
||||||
tPtr2^ := tsPtr^.typeDef^;
|
|
||||||
tPtr2^.saveDisp := 0;
|
|
||||||
end {if}
|
|
||||||
else
|
|
||||||
tPtr2 := tsPtr^.typeDef;
|
tPtr2 := tsPtr^.typeDef;
|
||||||
dispose(tsPtr);
|
dispose(tsPtr);
|
||||||
case tPtr2^.kind of
|
case tPtr2^.kind of
|
||||||
|
Loading…
x
Reference in New Issue
Block a user