Fix SysV calling convention bug in interop. We need to treat delegate field (NFT_DELE...
authorYi Zhang (CLR) <yzha@microsoft.com>
Tue, 19 Apr 2016 07:32:10 +0000 (00:32 -0700)
committerYi Zhang (CLR) <yzha@microsoft.com>
Tue, 19 Apr 2016 16:31:55 +0000 (09:31 -0700)
This fixes MarshalStructAsLayoutSeq test on mac/linux.

src/vm/methodtable.cpp
tests/testsFailingOutsideWindows.txt

index 056c7cb..ce04b51 100644 (file)
@@ -2921,15 +2921,17 @@ bool MethodTable::ClassifyEightBytesWithNativeLayout(SystemVStructRegisterPassin
             case NFT_ANSICHAR:
             case NFT_WINBOOL:
             case NFT_CBOOL:
+            case NFT_DELEGATE:
+            case NFT_SAFEHANDLE:
+            case NFT_CRITICALHANDLE:
                 fieldClassificationType = SystemVClassificationTypeInteger;
                 break;
 
-            case NFT_DELEGATE:
+            // It's not clear what the right behavior for NTF_DECIMAL and NTF_DATE is
+            // But those two types would only make sense on windows. We can revisit this later
             case NFT_DECIMAL:
             case NFT_DATE:
             case NFT_ILLEGAL:
-            case NFT_SAFEHANDLE:
-            case NFT_CRITICALHANDLE:
             default:
                 return false;
             }
index d39319a..f6dce3f 100644 (file)
@@ -161,7 +161,6 @@ JIT/Methodical/Boxing/xlang/_relsin_cs_il/_relsin_cs_il.sh
 JIT/Methodical/localloc/call/call01_small/call01_small.sh
 JIT/Regression/Dev11/External/dev11_145295/CSharpPart/CSharpPart.sh
 Interop/StructMarshalling/PInvoke/MarshalStructAsLayoutExp/MarshalStructAsLayoutExp.sh
-Interop/StructMarshalling/PInvoke/MarshalStructAsLayoutSeq/MarshalStructAsLayoutSeq.sh
 GC/LargeMemory/Allocation/finalizertest/finalizertest.sh
 GC/LargeMemory/API/gc/reregisterforfinalize/reregisterforfinalize.sh
 GC/LargeMemory/API/gc/collect/collect.sh