t_id
2
t_version
1.1
t_adddate
2003/10/03
t_result
0
t_knownrunerror
0
t_opts
-Og
tr_id | run | tr_ok | tr_skip | tr_result |
---|---|---|---|---|
1022536349 | 1027351 | True | False | Successfully run |
Record count: 1
{ %VERSION=1.1 } {%OPT=-Og} { This verifies if the strings are correctly aligned, normally the generated assembler should be verified manually. } program talign2; {$ifdef fpc} {$mode objfpc} {$ifndef ver1_0} {$define haswidestring} {$endif} {$else} {$ifndef ver70} {$define haswidestring} {$endif} {$endif} {$mode objfpc} procedure test(b : boolean); begin if b then exit; WriteLn('Error in length/alignment!!'); halt(1); end; var pt: pchar; const b: byte = 0; { lets just misalign the stuff } p : pchar = 'simple pchar stuff'; ansistr : ansistring = 'simple ansistring'; {$ifdef haswidestring} widestr : widestring = 'simple widestring'; {$endif} shortstr :shortstring = 'simple shortstring'; begin test(length(ansistr)=17); {$ifdef haswidestring} test(length(widestr)=17); {$endif} test(length(shortstr)=18); { verify if the address are correctly aligned! } pt:=@shortstr; test((cardinal(pt) mod sizeof(pointer))=0); pt:=p; test((cardinal(pt) mod sizeof(pointer))=0); pt:=pchar(ansistr); test((cardinal(pt) mod sizeof(pointer))=0); {$ifdef haswidestring} pt:=pchar(widestr); test((cardinal(pt) mod sizeof(pointer))=0); {$endif} end. { $Log: talign2.pp,v $ Revision 1.2 2002/11/09 21:19:21 carl * now check address of tc's also and give error. + 1.1 only Revision 1.1 2002/11/09 13:18:25 carl * more alignment checking }