comparison dmd2/mtype.h @ 953:5fa3e0ea06e9

Merged a bunch recent dmd v1 frontend changes into the dmd v2 tree.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Fri, 13 Feb 2009 22:20:30 +0100
parents 356e65836fb5
children 964af20461a9
comparison
equal deleted inserted replaced
952:29da57670853 953:5fa3e0ea06e9
21 #include "arraytypes.h" 21 #include "arraytypes.h"
22 #include "expression.h" 22 #include "expression.h"
23 23
24 // llvm 24 // llvm
25 #include "../ir/irtype.h" 25 #include "../ir/irtype.h"
26 namespace llvm { class Type; }
26 27
27 struct Scope; 28 struct Scope;
28 struct Identifier; 29 struct Identifier;
29 struct Expression; 30 struct Expression;
30 struct StructDeclaration; 31 struct StructDeclaration;
502 503
503 // LDC 504 // LDC
504 bool retInPtr; 505 bool retInPtr;
505 bool usesThis; 506 bool usesThis;
506 bool usesNest; 507 bool usesNest;
508 // when the last arg is a struct and passed in EAX, this holds its real type
509 const llvm::Type* structInregArg;
507 unsigned retAttrs; 510 unsigned retAttrs;
508 unsigned thisAttrs; // also used for nest 511 unsigned thisAttrs; // also used for nest
512 // parameter index in the llvm function that contains the first not-implicit arg
513 size_t firstRealArg;
509 514
510 bool reverseParams; 515 bool reverseParams;
511 size_t reverseIndex;
512 }; 516 };
513 517
514 struct TypeDelegate : TypeNext 518 struct TypeDelegate : TypeNext
515 { 519 {
516 // .next is a TypeFunction 520 // .next is a TypeFunction