mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-06 16:50:25 +02:00
+ added test tasm18b.pp, which is yet another for 3-byte records, which should
not set a valid operand size in the intel asm syntax mode. The difference with tasm18a.pp is, this one tests recordtype.a3bytefield, while tasm18a.pp tests a3byterecord directly. git-svn-id: trunk@38199 -
This commit is contained in:
parent
3d16d38f10
commit
a834e6d5c5
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -12495,6 +12495,7 @@ tests/test/tasm16.pp svneol=native#text/plain
|
||||
tests/test/tasm17.pp svneol=native#text/plain
|
||||
tests/test/tasm18.pp svneol=native#text/plain
|
||||
tests/test/tasm18a.pp svneol=native#text/plain
|
||||
tests/test/tasm18b.pp svneol=native#text/plain
|
||||
tests/test/tasm2.inc svneol=native#text/plain
|
||||
tests/test/tasm2.pp svneol=native#text/plain
|
||||
tests/test/tasm2a.pp svneol=native#text/plain
|
||||
|
39
tests/test/tasm18b.pp
Normal file
39
tests/test/tasm18b.pp
Normal file
@ -0,0 +1,39 @@
|
||||
{ %FAIL }
|
||||
{ %CPU=i8086,i386,x86_64 }
|
||||
program tasm18b;
|
||||
|
||||
{$ifdef FPC}
|
||||
{$asmmode intel}
|
||||
{$else}
|
||||
{$define CPUI8086}
|
||||
{$endif FPC}
|
||||
|
||||
const
|
||||
cval = 1;
|
||||
|
||||
type
|
||||
foo3 = packed record
|
||||
b1: byte;
|
||||
b2: byte;
|
||||
b3: byte;
|
||||
end;
|
||||
foo = packed record
|
||||
bb1: byte;
|
||||
fb3: foo3;
|
||||
end;
|
||||
|
||||
begin
|
||||
asm
|
||||
{ this should produce an error, because foo3 is a 3-byte record and there's
|
||||
no explicit operand size specified (i.e. no 'byte ptr' or 'word ptr') }
|
||||
{$ifdef CPUI8086}
|
||||
test [di + foo.fb3], cval
|
||||
{$endif}
|
||||
{$ifdef CPUI386}
|
||||
test [edi + foo.fb3], cval
|
||||
{$endif}
|
||||
{$ifdef CPUX86_64}
|
||||
test [rdi + foo.fb3], cval
|
||||
{$endif}
|
||||
end;
|
||||
end.
|
Loading…
Reference in New Issue
Block a user