BUG REPORT: type checking

Thomas.AC
Benutzer
Avatar
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

BUG REPORT: type checking

 · 
Posted: 18.07.2017 - 13:45  ·  #1
Hallo,

Zuweisungen der Art 'string := byte' werden nicht immer als Fehler erkannt.
Siehe code. (Im Fall einer ASCII-Datenschnittstelle schleichen sich dadurch schnell Bugs ein, da man hier oft Bytes in Strings konvertiert)

Code

program TEST; // compiler Ver 5.9.15
Device = mega2560, VCC=5;
Import;
Define
  ProcClock      = 8000000;       {Hertz}
  StackSize      = $0100, iData;
  FrameSize      = $0100, iData;

implementation

type
  tStr24 = string[24];
  tByteWrapper = record
    byteValue : byte;
  end;

{$IDATA}
var
 testByte : byte;
 testStr : tStr24;
 testByteWrapper : tByteWrapper;
 
procedure checkStr (value : tStr24);
begin
end;

begin
  checkStr(testByte); // bug: keine Compilerfehler
  testStr := testByteWrapper.byteValue; // bug: keine Compilerfehler
end.

rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: BUG REPORT: type checking

 · 
Posted: 20.07.2017 - 20:27  ·  #2
Hallo Thomas,
Ich prüfe das
Rolf
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   51   65 · Page-Gen-Time: 0.036402s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI