Browse Source

Modify tbs/tb0588.pp to check that a warning is issued about non-initialized return value, moved to tbf directory

git-svn-id: trunk@40521 -
pierre 6 years ago
parent
commit
e7aadde92f
3 changed files with 33 additions and 22 deletions
  1. 1 1
      .gitattributes
  2. 32 0
      tests/tbf/tb0588.pp
  3. 0 21
      tests/tbs/tb0588.pp

+ 1 - 1
.gitattributes

@@ -11080,6 +11080,7 @@ tests/tbf/tb0262.pp svneol=native#text/pascal
 tests/tbf/tb0263.pp svneol=native#text/pascal
 tests/tbf/tb0264.pp svneol=native#text/pascal
 tests/tbf/tb0265.pp svneol=native#text/pascal
+tests/tbf/tb0588.pp svneol=native#text/pascal
 tests/tbf/ub0115.pp svneol=native#text/plain
 tests/tbf/ub0149.pp svneol=native#text/plain
 tests/tbf/ub0158a.pp svneol=native#text/plain
@@ -11671,7 +11672,6 @@ tests/tbs/tb0584.pp svneol=native#text/pascal
 tests/tbs/tb0585.pp svneol=native#text/pascal
 tests/tbs/tb0586.pp svneol=native#text/pascal
 tests/tbs/tb0587.pp svneol=native#text/plain
-tests/tbs/tb0588.pp svneol=native#text/pascal
 tests/tbs/tb0589.pp svneol=native#text/pascal
 tests/tbs/tb0590.pp svneol=native#text/pascal
 tests/tbs/tb0591.pp svneol=native#text/pascal

+ 32 - 0
tests/tbf/tb0588.pp

@@ -0,0 +1,32 @@
+{ %FAIL }
+{ %opt=-O4 -Sew }
+
+{ This code can generate trouble because
+  uninitialized retrun value in f method 
+  can have a pattern that generates a
+  floating point exception later.
+
+  As core decided not to generate an error in such cases,
+  this test was modified to al least test that a warning
+  is issued about non-initialized return value. }
+
+{$mode objfpc}
+uses
+  sysutils;
+type
+  tmyclass = class
+    function f : double;virtual;
+  end;
+
+function tmyclass.f : double;
+  begin
+  end;
+
+var
+  myclass : tmyclass;
+begin
+  myclass:=tmyclass.create;
+  writeln(myclass.f+myclass.f+myclass.f);
+  myclass.free;
+  writeln('ok');
+end.

+ 0 - 21
tests/tbs/tb0588.pp

@@ -1,21 +0,0 @@
-{ %opt=-O4 }
-{$mode objfpc}
-uses
-  sysutils;
-type
-  tmyclass = class
-    function f : double;virtual;
-  end;
-
-function tmyclass.f : double;
-  begin
-  end;
-
-var
-  myclass : tmyclass;
-begin
-  myclass:=tmyclass.create;
-  writeln(myclass.f+myclass.f+myclass.f);
-  myclass.free;
-  writeln('ok');
-end.