summaryrefslogtreecommitdiff
path: root/compiler/htypechk.pas
diff options
context:
space:
mode:
authorpeter <peter@3ad0048d-3df7-0310-abae-a5850022a9f2>2005-10-02 11:17:05 +0000
committerpeter <peter@3ad0048d-3df7-0310-abae-a5850022a9f2>2005-10-02 11:17:05 +0000
commitea174083b742a44ae216ef2e8ac8288df4827bfb (patch)
tree34816bc4f20c8058a2087abbe7f70b90e641a6ce /compiler/htypechk.pas
parent2b6b5886655168dcee78e3b71197239af043b044 (diff)
downloadfpc-ea174083b742a44ae216ef2e8ac8288df4827bfb.tar.gz
* move all stabs ($ifdef gdb) code to dbgstabs
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@1255 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/htypechk.pas')
-rw-r--r--compiler/htypechk.pas12
1 files changed, 9 insertions, 3 deletions
diff --git a/compiler/htypechk.pas b/compiler/htypechk.pas
index c34f0707ee..c82ec9b9e1 100644
--- a/compiler/htypechk.pas
+++ b/compiler/htypechk.pas
@@ -715,7 +715,8 @@ implementation
begin
result:=false;
{ remove voidpointer typecast for tp procvars }
- if (m_tp_procvar in aktmodeswitches) and
+ if ((m_tp_procvar in aktmodeswitches) or
+ (m_mac_procvar in aktmodeswitches)) and
(p.nodetype=typeconvn) and
is_voidpointer(p.resulttype.def) then
p:=tunarynode(p).left;
@@ -1363,10 +1364,15 @@ implementation
procvardef :
begin
{ in tp7 mode proc -> procvar is allowed }
- if (m_tp_procvar in aktmodeswitches) and
+ if ((m_tp_procvar in aktmodeswitches) or
+ (m_mac_procvar in aktmodeswitches)) and
(p.left.nodetype=calln) and
(proc_to_procvar_equal(tprocdef(tcallnode(p.left).procdefinition),tprocvardef(def_to),true)>=te_equal) then
- eq:=te_equal;
+ eq:=te_equal
+ else
+ if (m_mac_procvar in aktmodeswitches) and
+ is_procvar_load(p.left) then
+ eq:=te_convert_l2;
end;
end;
end;