浏览代码

* Fix bug ID #31718

git-svn-id: trunk@35966 -
michael 8 年之前
父节点
当前提交
fe2df71ef5
共有 2 个文件被更改,包括 21 次插入1 次删除
  1. 1 1
      packages/fcl-passrc/src/pparser.pp
  2. 20 0
      packages/fcl-passrc/tests/tcexprparser.pas

+ 1 - 1
packages/fcl-passrc/src/pparser.pp

@@ -1804,7 +1804,7 @@ begin
 
   ok:=false;
   try
-    if Last.Kind in [pekIdent,pekSelf] then
+    if Last.Kind in [pekIdent,pekSelf,pekNil] then
       begin
       while CurToken in [tkDot] do
         begin

+ 20 - 0
packages/fcl-passrc/tests/tcexprparser.pas

@@ -136,6 +136,8 @@ type
     procedure TestTypeCast2;
     Procedure TestCreate;
     procedure TestChainedPointers;
+    Procedure TestNilCaret;
+    Procedure TestExpCaret;
   end;
 
 implementation
@@ -605,6 +607,24 @@ begin
   ParseModule;
 end;
 
+procedure TTestExpressions.TestNilCaret;
+begin
+  Source.Add('{$mode objfpc}');
+  Source.Add('begin');
+  Source.Add('FillChar(nil^,10,10);');
+  Source.Add('end.');
+  ParseModule;
+end;
+
+procedure TTestExpressions.TestExpCaret;
+begin
+  Source.Add('{$mode objfpc}');
+  Source.Add('begin');
+  Source.Add('A:=B^;');
+  Source.Add('end.');
+  ParseModule;
+end;
+
 
 procedure TTestExpressions.TestUnaryMinus;
 begin