[Issue 1172] New: Inline assembler: cannot access member of templated aggregate directly
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat Apr 21 00:54:38 PDT 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1172
Summary: Inline assembler: cannot access member of templated
aggregate directly
Product: D
Version: 1.013
Platform: PC
OS/Version: Windows
Status: NEW
Keywords: rejects-valid
Severity: minor
Priority: P2
Component: DMD
AssignedTo: bugzilla at digitalmars.com
ReportedBy: deewiant at gmail.com
struct Foo(T) {
int a;
}
void main() {
Foo!(int) f;
asm {
mov EBX, f;
mov EAX, Foo!(int).a[EBX];
}
}
The code above is essentially the same as what is under "Struct/Union/Class
Member Offsets" at http://www.digitalmars.com/d/iasm.html but fails with the
error "bad type/size of operands 'Foo(T)'".
The workaround is to use an alias:
alias Foo!(int) Foo_int;
asm {
mov EBX, f;
mov EAX, Foo_int.a[EBX];
}
--
More information about the Digitalmars-d-bugs
mailing list