diff dmd/mtype.h @ 938:a904cc9bc064

Convert struct arg to integer when passing inreg to make sure LLVM doesn't ignore the attribute!
author Christian Kamm <kamm incasoftware de>
date Wed, 04 Feb 2009 18:39:33 +0100
parents 7985bb036db4
children 9167d492cbc2
line wrap: on
line diff
--- a/dmd/mtype.h	Tue Feb 03 21:46:54 2009 +0100
+++ b/dmd/mtype.h	Wed Feb 04 18:39:33 2009 +0100
@@ -23,6 +23,7 @@
 
 // llvm
 #include "../ir/irtype.h"
+namespace llvm { class Type; }
 
 struct Scope;
 struct Identifier;
@@ -438,7 +439,8 @@
     bool retInPtr;
     bool usesThis;
     bool usesNest;
-    bool structInregArg;
+    // when the last arg is a struct and passed in EAX, this holds its real type
+    const llvm::Type* structInregArg;
     unsigned retAttrs;
     unsigned thisAttrs; // also used for nest
     // parameter index in the llvm function that contains the first not-implicit arg