Browse Source

* don't crash on invalid property declarations, resolves #8451

git-svn-id: trunk@7065 -
florian 18 years ago
parent
commit
56e30e75af
3 changed files with 39 additions and 0 deletions
  1. 1 0
      .gitattributes
  2. 2 0
      compiler/pdecvar.pas
  3. 36 0
      tests/tbf/tw8303.pp

+ 1 - 0
.gitattributes

@@ -5745,6 +5745,7 @@ tests/tbf/tb0195.pp svneol=native#text/plain
 tests/tbf/tb0196.pp svneol=native#text/plain
 tests/tbf/tb0197.pp svneol=native#text/plain
 tests/tbf/tb0198.pp svneol=native#text/plain
+tests/tbf/tw8303.pp svneol=native#text/plain
 tests/tbf/ub0115.pp svneol=native#text/plain
 tests/tbf/ub0149.pp svneol=native#text/plain
 tests/tbf/ub0158a.pp svneol=native#text/plain

+ 2 - 0
compiler/pdecvar.pas

@@ -104,6 +104,7 @@ implementation
                     else
                       begin
                         Message1(parser_e_illegal_field_or_method,orgpattern);
+                        def:=generrordef;
                         result:=false;
                       end;
                   end;
@@ -111,6 +112,7 @@ implementation
                else
                 begin
                   Message1(parser_e_illegal_field_or_method,orgpattern);
+                  def:=generrordef;
                   result:=false;
                 end;
                consume(_ID);

+ 36 - 0
tests/tbf/tw8303.pp

@@ -0,0 +1,36 @@
+{ %fail }
+{$mode objfpc}
+program bug8303;
+
+{$APPTYPE CONSOLE}
+
+uses
+  SysUtils;
+
+type proptype1=record
+                record_member:integer;
+                end;
+
+const records_array: array[0..3] of proptype1 = ((record_member:0),(record_member:0),(record_member:0),(record_member:0));
+      array_idx=2;
+
+
+
+type
+              tsomeclass = class
+                        procedure setprop1(p:proptype1);
+                        property prop1: proptype1  read records_array[array_idx].record_member write setprop1;
+                        end;
+
+
+procedure tsomeclass.setprop1(p>proptype1);
+
+begin
+
+end;
+
+begin
+end.
+
+
+