Merge pull request #2747 from lambdageek/dev/monoerror-mono_remote_class
authormonojenkins <jo.shields+jenkins@xamarin.com>
Tue, 15 Mar 2016 17:00:19 +0000 (17:00 +0000)
committermonojenkins <jo.shields+jenkins@xamarin.com>
Tue, 15 Mar 2016 17:00:19 +0000 (17:00 +0000)
[runtime] Add MonoError to mono_remote_class

227 files changed:
acceptance-tests/SUBMODULES.json
acceptance-tests/coreclr.mk
external/referencesource
man/mono.1
mcs/build/library.make
mcs/class/Facades/Microsoft.Win32.Primitives/Makefile
mcs/class/Facades/Microsoft.Win32.Registry.AccessControl/Makefile
mcs/class/Facades/Microsoft.Win32.Registry/Makefile
mcs/class/Facades/System.AppContext/Makefile
mcs/class/Facades/System.Collections.Concurrent/Makefile
mcs/class/Facades/System.Collections.NonGeneric/Makefile
mcs/class/Facades/System.Collections.Specialized/Makefile
mcs/class/Facades/System.Collections/Makefile
mcs/class/Facades/System.ComponentModel.Annotations/Makefile
mcs/class/Facades/System.ComponentModel.EventBasedAsync/Makefile
mcs/class/Facades/System.ComponentModel.Primitives/Makefile
mcs/class/Facades/System.ComponentModel.TypeConverter/Makefile
mcs/class/Facades/System.ComponentModel/Makefile
mcs/class/Facades/System.Console/Makefile
mcs/class/Facades/System.Data.Common/Makefile
mcs/class/Facades/System.Data.SqlClient/Makefile
mcs/class/Facades/System.Diagnostics.Contracts/Makefile
mcs/class/Facades/System.Diagnostics.Debug/Makefile
mcs/class/Facades/System.Diagnostics.FileVersionInfo/Makefile
mcs/class/Facades/System.Diagnostics.PerformanceCounter/Makefile
mcs/class/Facades/System.Diagnostics.Process/Makefile
mcs/class/Facades/System.Diagnostics.StackTrace/Makefile
mcs/class/Facades/System.Diagnostics.TextWriterTraceListener/Makefile
mcs/class/Facades/System.Diagnostics.Tools/Makefile
mcs/class/Facades/System.Diagnostics.TraceEvent/Makefile
mcs/class/Facades/System.Diagnostics.TraceSource/Makefile
mcs/class/Facades/System.Diagnostics.Tracing/Makefile
mcs/class/Facades/System.Dynamic.Runtime/Makefile
mcs/class/Facades/System.Globalization.Calendars/Makefile
mcs/class/Facades/System.Globalization.Extensions/Makefile
mcs/class/Facades/System.Globalization/Makefile
mcs/class/Facades/System.IO.Compression.ZipFile/Makefile
mcs/class/Facades/System.IO.FileSystem.AccessControl/Makefile
mcs/class/Facades/System.IO.FileSystem.DriveInfo/Makefile
mcs/class/Facades/System.IO.FileSystem.Primitives/Makefile
mcs/class/Facades/System.IO.FileSystem.Watcher/Makefile
mcs/class/Facades/System.IO.FileSystem/Makefile
mcs/class/Facades/System.IO.IsolatedStorage/Makefile
mcs/class/Facades/System.IO.MemoryMappedFiles/Makefile
mcs/class/Facades/System.IO.Pipes/Makefile
mcs/class/Facades/System.IO.UnmanagedMemoryStream/Makefile
mcs/class/Facades/System.IO/Makefile
mcs/class/Facades/System.Linq.Expressions/Makefile
mcs/class/Facades/System.Linq.Parallel/Makefile
mcs/class/Facades/System.Linq.Queryable/Makefile
mcs/class/Facades/System.Linq/Makefile
mcs/class/Facades/System.Net.AuthenticationManager/Makefile
mcs/class/Facades/System.Net.Cache/Makefile
mcs/class/Facades/System.Net.Http.WebRequestHandler/Makefile
mcs/class/Facades/System.Net.HttpListener/Makefile
mcs/class/Facades/System.Net.Mail/Makefile
mcs/class/Facades/System.Net.NameResolution/Makefile
mcs/class/Facades/System.Net.NetworkInformation/Makefile
mcs/class/Facades/System.Net.Primitives/Makefile
mcs/class/Facades/System.Net.Requests/Makefile
mcs/class/Facades/System.Net.Security/Makefile
mcs/class/Facades/System.Net.ServicePoint/Makefile
mcs/class/Facades/System.Net.Sockets/Makefile
mcs/class/Facades/System.Net.Utilities/Makefile
mcs/class/Facades/System.Net.WebHeaderCollection/Makefile
mcs/class/Facades/System.Net.WebSockets.Client/Makefile
mcs/class/Facades/System.Net.WebSockets/Makefile
mcs/class/Facades/System.ObjectModel/Makefile
mcs/class/Facades/System.Private.CoreLib.InteropServices/Makefile
mcs/class/Facades/System.Private.CoreLib.Threading/Makefile
mcs/class/Facades/System.Reflection.Emit.ILGeneration/Makefile
mcs/class/Facades/System.Reflection.Emit.Lightweight/Makefile
mcs/class/Facades/System.Reflection.Emit/Makefile
mcs/class/Facades/System.Reflection.Extensions/Makefile
mcs/class/Facades/System.Reflection.Primitives/Makefile
mcs/class/Facades/System.Reflection.TypeExtensions/Makefile
mcs/class/Facades/System.Reflection/Makefile
mcs/class/Facades/System.Resources.ReaderWriter/Makefile
mcs/class/Facades/System.Resources.ResourceManager/Makefile
mcs/class/Facades/System.Runtime.CompilerServices.VisualC/Makefile
mcs/class/Facades/System.Runtime.Extensions/Makefile
mcs/class/Facades/System.Runtime.Handles/Makefile
mcs/class/Facades/System.Runtime.InteropServices.WindowsRuntime/Makefile
mcs/class/Facades/System.Runtime.InteropServices/Makefile
mcs/class/Facades/System.Runtime.Numerics/Makefile
mcs/class/Facades/System.Runtime.Serialization.Json/Makefile
mcs/class/Facades/System.Runtime.Serialization.Primitives/Makefile
mcs/class/Facades/System.Runtime.Serialization.Xml/Makefile
mcs/class/Facades/System.Runtime/Makefile
mcs/class/Facades/System.Security.AccessControl/Makefile
mcs/class/Facades/System.Security.Claims/Makefile
mcs/class/Facades/System.Security.Cryptography.DeriveBytes/Makefile
mcs/class/Facades/System.Security.Cryptography.Encoding/Makefile
mcs/class/Facades/System.Security.Cryptography.Encryption.Aes/Makefile
mcs/class/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman/Makefile
mcs/class/Facades/System.Security.Cryptography.Encryption.ECDsa/Makefile
mcs/class/Facades/System.Security.Cryptography.Encryption/Makefile
mcs/class/Facades/System.Security.Cryptography.Hashing.Algorithms/Makefile
mcs/class/Facades/System.Security.Cryptography.Hashing/Makefile
mcs/class/Facades/System.Security.Cryptography.ProtectedData/Makefile
mcs/class/Facades/System.Security.Cryptography.RSA/Makefile
mcs/class/Facades/System.Security.Cryptography.RandomNumberGenerator/Makefile
mcs/class/Facades/System.Security.Cryptography.X509Certificates/Makefile
mcs/class/Facades/System.Security.Principal.Windows/Makefile
mcs/class/Facades/System.Security.Principal/Makefile
mcs/class/Facades/System.Security.SecureString/Makefile
mcs/class/Facades/System.ServiceModel.Duplex/Makefile
mcs/class/Facades/System.ServiceModel.Http/Makefile
mcs/class/Facades/System.ServiceModel.NetTcp/Makefile
mcs/class/Facades/System.ServiceModel.Primitives/Makefile
mcs/class/Facades/System.ServiceModel.Security/Makefile
mcs/class/Facades/System.ServiceProcess.ServiceController/Makefile
mcs/class/Facades/System.Text.Encoding.Extensions/Makefile
mcs/class/Facades/System.Text.Encoding/Makefile
mcs/class/Facades/System.Text.RegularExpressions/Makefile
mcs/class/Facades/System.Threading.AccessControl/Makefile
mcs/class/Facades/System.Threading.Overlapped/Makefile
mcs/class/Facades/System.Threading.Tasks.Parallel/Makefile
mcs/class/Facades/System.Threading.Tasks/Makefile
mcs/class/Facades/System.Threading.Thread/Makefile
mcs/class/Facades/System.Threading.ThreadPool/Makefile
mcs/class/Facades/System.Threading.Timer/Makefile
mcs/class/Facades/System.Threading/Makefile
mcs/class/Facades/System.Xml.ReaderWriter/Makefile
mcs/class/Facades/System.Xml.XDocument/Makefile
mcs/class/Facades/System.Xml.XPath.XDocument/Makefile
mcs/class/Facades/System.Xml.XPath/Makefile
mcs/class/Facades/System.Xml.XmlDocument/Makefile
mcs/class/Facades/System.Xml.XmlSerializer/Makefile
mcs/class/Facades/System.Xml.Xsl.Primitives/Makefile
mcs/class/Microsoft.Build.Tasks/Test/Microsoft.Build.Tasks/ErrorTest.cs
mcs/class/Microsoft.Build.Tasks/Test/Microsoft.Build.Tasks/TestMessageLogger.cs
mcs/class/Microsoft.Build.Utilities/Makefile
mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities/Task.cs
mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities/TaskLoggingHelper.cs
mcs/class/Microsoft.Build.Utilities/Microsoft.Build.Utilities_test.dll.sources
mcs/class/Microsoft.Build.Utilities/Test/Microsoft.Build.Utilities/Strings.resx [new file with mode: 0644]
mcs/class/Microsoft.Build.Utilities/Test/Microsoft.Build.Utilities/TaskLoggingHelperTest.cs
mcs/class/Mono.Security.Providers.NewSystemSource/Makefile
mcs/class/System.Net.Http/System.Net.Http.Headers/Lexer.cs
mcs/class/System.Net.Http/Test/System.Net.Http.Headers/EntityTagHeaderValueTest.cs
mcs/class/System.Runtime.Serialization/Assembly/AssemblyInfo.cs
mcs/class/System.Xml.Linq/Makefile
mcs/class/System/Makefile
mcs/class/System/Test/System.Collections.Concurrent/BlockingCollectionTests.cs
mcs/class/corlib/ReferenceSources/ParseNumbers.cs
mcs/class/corlib/System/Delegate.cs
mcs/class/corlib/System/UIntPtr.cs
mcs/class/corlib/Test/System/ConvertTest.cs
mcs/class/corlib/Test/System/DelegateTest.cs
mcs/class/corlib/Test/System/UIntPtrTest.cs
mcs/class/monodoc/Makefile
mcs/mcs/Makefile
mcs/mcs/expression.cs
mcs/mcs/property.cs
mcs/tests/test-async-84.cs [new file with mode: 0644]
mcs/tests/test-expression-bodied-02.cs [new file with mode: 0644]
mcs/tests/ver-il-net_4_x.xml
mcs/tools/browsercaps-updater/Makefile
mcs/tools/cccheck/Makefile
mcs/tools/ccrewrite/Makefile
mcs/tools/cil-stringreplacer/Makefile
mcs/tools/cil-strip/Makefile
mcs/tools/compiler-tester/Makefile
mcs/tools/corcompare/Makefile
mcs/tools/csharp/Makefile
mcs/tools/csharp/getline.cs
mcs/tools/csharp/repl.cs
mcs/tools/culevel/Makefile
mcs/tools/disco/Makefile
mcs/tools/ictool/Makefile
mcs/tools/ikdasm/Makefile
mcs/tools/installutil/Makefile
mcs/tools/lc/Makefile
mcs/tools/linker-analyzer/Makefile
mcs/tools/mconfig/Makefile
mcs/tools/mdbdump/Makefile
mcs/tools/mdbrebase/Makefile
mcs/tools/mdoc/Makefile
mcs/tools/mdoc/Test/en.expected.delete/Mono.DocTest.Generic/GenericBase`1.xml
mcs/tools/mdoc/Test/en.expected.delete/Mono.DocTest/Widget.xml
mcs/tools/mdoc/Test/en.expected.importslashdoc/Mono.DocTest.Generic/GenericBase`1.xml
mcs/tools/mdoc/Test/en.expected.importslashdoc/Mono.DocTest/Widget.xml
mcs/tools/mdoc/Test/en.expected.since/Mono.DocTest.Generic/GenericBase`1.xml
mcs/tools/mdoc/Test/en.expected.since/Mono.DocTest/Widget.xml
mcs/tools/mdoc/Test/en.expected/Mono.DocTest.Generic/GenericBase`1.xml
mcs/tools/mdoc/Test/en.expected/Mono.DocTest/Widget.xml
mcs/tools/mdoc/Test/msxdoc-expected.importslashdoc.xml
mcs/tools/mkbundle/Makefile
mcs/tools/mono-service/Makefile
mcs/tools/mono-shlib-cop/Makefile
mcs/tools/mono-symbolicate/Makefile
mcs/tools/mono-xsd/Makefile
mcs/tools/monop/Makefile
mcs/tools/nunitreport/Makefile
mcs/tools/pdb2mdb/Makefile
mcs/tools/resgen/Makefile
mcs/tools/security/Makefile
mcs/tools/sgen/Makefile
mcs/tools/soapsuds/Makefile
mcs/tools/svcutil/Makefile
mcs/tools/wsdl/Makefile
mcs/tools/xbuild/Makefile
mono/io-layer/io.c
mono/metadata/assembly.c
mono/metadata/icall-def.h
mono/metadata/icall.c
mono/metadata/mono-config.c
mono/metadata/reflection-internals.h
mono/metadata/reflection.c
mono/metadata/reflection.h
mono/metadata/threads.c
mono/mini/aot-runtime.c
mono/mini/debugger-agent.c
mono/mini/llvm-jit.cpp
mono/mini/llvm-jit.h
mono/mini/method-to-ir.c
mono/mini/mini-llvm.c
mono/mini/mini-runtime.c
mono/mini/mini-trampolines.c
mono/mini/mini.c
mono/mini/mini.h
mono/profiler/proflog.c
mono/tests/Makefile.am
mono/tests/assembly-load-remap.cs [new file with mode: 0644]
mono/utils/mono-error.c
mono/utils/mono-proclib.c

index e0335f40f7de3e375f209b4dae3846a63965e71b..9bb324948f7574a942bc284d9c46aeecfc593445 100644 (file)
@@ -10,7 +10,7 @@
   {
     "name": "coreclr", 
     "url": "git://github.com/mono/coreclr.git", 
-    "rev": "96cf61f96b42cf9d013e641609cb7787f6e3a71f", 
+    "rev": "3d9a68d3baaa32df28b70a2266a9ef9ee2176b79", 
     "remote-branch": "origin/mono", 
     "branch": "mono", 
     "directory": "coreclr"
@@ -18,7 +18,7 @@
   {
     "name": "ms-test-suite", 
     "url": "git@github.com:xamarin/ms-test-suite.git", 
-    "rev": "8eb26bd72a38e2c78675db45b13e89237dbdf4f2", 
+    "rev": "1ab0d4972937bf0451fc164f39a67475776a9edf", 
     "remote-branch": "origin/master", 
     "branch": "master", 
     "directory": "ms-test-suite"
index dd141bcb194851ff1394268a8771b4b1d11aaa48..2271e371f6906a8ef575697b7ab23057ab51dd04 100644 (file)
@@ -1186,7 +1186,6 @@ CORECLR_TEST_CS_SRC=              \
        $(CORECLR_PATH)/tests/src/Regressions/coreclr/0576/test0576.cs  \
        $(CORECLR_PATH)/tests/src/Regressions/coreclr/0582/csgen.1.cs   \
        $(CORECLR_PATH)/tests/src/Regressions/coreclr/0583/test583.cs   \
-       $(CORECLR_PATH)/tests/src/Regressions/coreclr/0584/test584.cs   \
        $(CORECLR_PATH)/tests/src/Regressions/coreclr/0792/test0792.cs  \
        $(CORECLR_PATH)/tests/src/Regressions/coreclr/0828/test0828.cs  \
        $(CORECLR_PATH)/tests/src/Regressions/coreclr/0829/test0829.cs  \
@@ -4001,6 +4000,9 @@ CORECLR_DISABLED_TEST_CS_SRC +=   \
        $(CORECLR_PATH)/tests/src/hosting/samples/hosting/usercode/usercode.cs  \
        $(CORECLR_PATH)/tests/src/hosting/samples/resolveevent/usercodedependency/usercodedependency.cs
 
+# this test makes no sense, the expected pattern is the English one for all cultures
+CORECLR_DISABLED_TEST_CS_SRC += $(CORECLR_PATH)/tests/src/Regressions/coreclr/0584/test584.cs
+
 CORECLR_TEST_IL_SRC =                  \
        $(CORECLR_PATH)/tests/src/JIT/BBT/Scenario4/Not-Int32.il        \
        $(CORECLR_PATH)/tests/src/JIT/Directed/Convert/implicitConv.il  \
index 00a0795fcb231d69269013418b059a7da2c3c5a1..f6109ff2bc79dcb052b61239a78870a866bcd42c 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 00a0795fcb231d69269013418b059a7da2c3c5a1
+Subproject commit f6109ff2bc79dcb052b61239a78870a866bcd42c
index 504a9774c94a51268ef8b24d854222bb543bec23..f29f4d1601ee83055ad10cd9599067f4042107ab 100644 (file)
@@ -1638,6 +1638,10 @@ option.
 When this option is set, the runtime will invalidate the domain memory
 pool instead of destroying it.
 .TP
+\fBdisable_omit_fp\fR
+Disables a compiler optimization where the frame pointer is omitted
+from the stack. This optimization can interact badly with debuggers.
+.TP
 \fBdont-free-domains\fR
 This is an Optimization for multi-AppDomain applications (most
 commonly ASP.NET applications).  Due to internal limitations Mono,
index 3d76ff6c0278829bb50f3b1b8d33af2d4378f22f..1df98aeea1f035eb5e187138f58761eaccab60be 100644 (file)
@@ -18,7 +18,7 @@
 # Have to rename to handle differences between assembly/directory names
 DEP_LIBS=$(patsubst System.Xml,System.XML,$(LIB_REFS))
 
-LIB_MCS_FLAGS += $(patsubst %,-r:%,$(LIB_REFS))
+LIB_MCS_FLAGS += $(patsubst %,-r:%.dll,$(LIB_REFS))
 
 sourcefile = $(LIBRARY).sources
 
index 18edf544bdbf8a275598452b990334b058204390..4b0a8ce48f852315136014265fd5026e902eee2b 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = Microsoft.Win32.Primitives.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 8942bcf010d3daeb154c157042f319fdb212c16f..68c77b28ef9b7ab8da342c4ffc948e0cef4b36ed 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = Microsoft.Win32.Registry.AccessControl.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 25a3d1449c4474bc28304aac86c751d1d472b7d1..95a931f2a73e6c76d6e18cb230bab4b083e8f8eb 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = Microsoft.Win32.Registry.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 8b8da8fff5066eb9f16191b690b64cb1a2afe8aa..a428634b310354eea16aa4b1464e33d3906562a4 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.AppContext.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 4eeef250d2807488d8c170ec10a6da0f576a06f0..9fe40d3d849ba6f5fe9a1b854d89d270fb47f01b 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Collections.Concurrent.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 9dc84f82b2e1747fefe45bbf26f7858a84a433c6..6aa88932bd39bd51fdb5b480a0fc15c6c4844e00 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Collections.NonGeneric.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 3b0c07cf2330b6d8dc11e5481655e06e63b29914..7730dc6182e9ce19d9066541087e11619c71a1b6 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Collections.Specialized.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index b0246d2109b10f16116304ce9cf5e962d704f709..e91fa63b8d8946bd8b7d8bfc58b8f9039ffb6a97 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Collections.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 221258a23bc8ed9e7d7fb296eb520855dac11d16..0e5a336b82cfd49d13d88ef67dbf30ca33847a0d 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ComponentModel.Annotations.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.ComponentModel.DataAnnotations
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 01b7479e77ba8eebfe4c4b5cff7c83df7b75c646..3bb78c169959296cd387ae7f09351add9b11ded6 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ComponentModel.EventBasedAsync.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index d97df878246c884d1c927d533b25985522a4993e..8b46af0e4c20bec7dd4b688c8be54e40dbddd4ad 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ComponentModel.Primitives.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 372362338637c31472d7be87ea79a0cc04bacfd4..9479c31e5d55ff566a80649825d80416fac742f4 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ComponentModel.TypeConverter.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 54d137ec6500daf20de140cea167128651ddcbce..57c23bab8fcb480ec9199e685f7a0297d96e7cde 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ComponentModel.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index ecabbb28d9004b68accda62888373e2f9beddb06..7ec5ccd75e51a9b9b5fb3357bd4fd3ff911aa004 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Console.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 0b46feb66de3b93e64bf6eb2a491be26c85f069a..ca5b55bb5e4dfbdb31f8bb7e204654ee536e14ab 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Data.Common.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Data.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Data.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 6706728c4b5eb56010d94b05cf29174e5754ac62..0fa130c8e282d2a27762cf34c4acf6278a628f29 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Data.SqlClient.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Data.dll /r:System.Xml.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Data.dll /r:System.Xml.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 24336c082b12e9fff7a68fbf570da0fa7b353600..23dad544fc916db57359e244df2f82a805919bd4 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Diagnostics.Contracts.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index ebbdd46fb9a4b0489b060fb061c797d3ec1c44af..34574abc438294f2009aacc169f0ee69ab33a4df 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Diagnostics.Debug.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index b8e2dac7274e7d50fc62c8b6dce703ea185fb224..2d2c4bfe8bbb783b2159ba9e254bd68a055e9bf3 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Diagnostics.FileVersionInfo.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index ab906c0af00688e99ee2584cff113eef516dbee9..499d313fc6cdc2b3b2974083d721641cbd401735 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Diagnostics.PerformanceCounter.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 881456cbf79dad106c74139d547c72824ca19d93..c6980725fd1d3b9b2a3bac340130b476134c2cb3 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Diagnostics.Process.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 491f82d816e9f8aa55530e323016df8f1deefe6a..169d8b79e1e61e7fd1a9ac44b712d11c37d90d7b 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Diagnostics.StackTrace.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 80d1f45c324ff1340bc64257aeda7500f7dee2b2..27e24e5ed7a223b4bd997a432b0d26d4ee02e314 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Diagnostics.TextWriterTraceListener.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index e19fe8385a2e85f7fb54e630e25df871d0a7321a..494f8b90da060b4dbce7f760c85e0b015540994b 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Diagnostics.Tools.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index c49247db9bc4bd6af93475bada0710f00cf9090e..a109b64df9ac0b9102519fab385426eb04e91a1f 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Diagnostics.TraceEvent.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index aa77eda689678ba9eee8c1c5b61f1fdbb1f937d1..2dbd5475cca82641a0af997389e9b86bc0582941 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Diagnostics.TraceSource.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 6f1bfe73a25728f77ee3e7d4031af89ef1681bf8..53a49cfff704df5cbefb9b134f291956caffa328 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Diagnostics.Tracing.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index c6d2b591d2771f3a3df9ebbc057edd26f5fe3aa3..9380c0ecba4f95c19ba8b621b03f7c82d5dcf9af 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Dynamic.Runtime.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Core System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 7e8a385be51a394663c4be9c3bbad8c7eb2e90b6..1659260c032b06ce4d0fb36e2e12558812ab73a9 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Globalization.Calendars.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index f5e3a583acc2455bf92fddaf9a6ebfe58aa32611..e4923237e7b79385a76d073e0722c9a5a461419d 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Globalization.Extensions.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index bb46d247e3697cc46b18520fc7afb4ffe2936b1d..e94f4b5561bbe4b68878cc75eca0e2ef3d851661 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Globalization.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 25a310e466282c964aeffc71f81560ca4023275a..0865314a1bda3abaed6ff8033176b11a9859d7f1 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.Compression.ZipFile.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.IO.Compression.FileSystem.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.IO.Compression.FileSystem.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 087369bdfa6657a73f47da7f60a265fe0600987b..6574fc6249952d0b4ddb143a5c2bcc03cf632b59 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.FileSystem.AccessControl.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 58c439f705bbec29c8f2458216c8af51583e879c..096d6c7a7facd196627c335924caea1de7d4cfa3 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.FileSystem.DriveInfo.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index d8f4ae4917b1bb23bc848762c5f30249d1f51cec..2622a088f2d2547165a9965bef8781de3e51bc12 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.FileSystem.Primitives.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 3d7984603ce1b78510b4abf991e535562911a854..2a4d25e107348b40b171c36f5d4da5414f7a5fd0 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.FileSystem.Watcher.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 2bcff2ed7f8d454cf32f242968d9a7cb21b4d9c0..cbd49ccc53525461d170e49f2cc040e30a8264f1 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.FileSystem.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 101b660ed5f5eec34dc53f6d4a078a7c4d304724..e89d4be370bff6b7b2db7177c7470edc9ab28814 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.IsolatedStorage.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 5d44a225ec40496345682e8eb2633c30e3350b05..1ea56e44d9432db6cd5104cca5ca05b32611ba71 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.MemoryMappedFiles.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Core.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Core.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 4ddb0a150c6dc37f9b84bb5cd016b5ebfc4aca9f..999b161afd3c7fdcc284a39e5cbe958651a3b734 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.Pipes.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Core.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Core.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index b36d01944696a3d9e750e5e1e83edd7a4aa1f443..c65888b23119152c3780cb424380e97c5bd4779c 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.UnmanagedMemoryStream.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 3fb49f7f5eb7fd29f957de704f1eb54528b971f9..42a6a9413b47bdab5bbf0052fc480259c8a19e99 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index d262230f5e3598723b5783aa23ef72023a8d4a93..d2ad276ef09b821064fa829c6c23ecc933c16c01 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Linq.Expressions.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index dcaccc2fb06fc9275648bb7386dadddc94704bde..d68ebb41633709974ae71f366d6b7735bdbef05b 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Linq.Parallel.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 2521357fdbcf9da847871a1e12251a8abef5c4f0..1f0225e3aeab978987d912eedf0b8ade5b17a445 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Linq.Queryable.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 79834e732507b3171fd4e72f6ab622e615228269..17bcabbdf83bb028dc8fd82f28cebeb0c9d0dbd3 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Linq.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index f0ca4644b2052c9e4d52cbf2295402f27ace9302..4efed6d1b282b95efb47cbbc2d355990e87ce01e 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.AuthenticationManager.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 55865732b78537caff3dee06a567ff5c1bd14bde..9826235d5b1b5b01139196b8ba490e066808e91c 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.Cache.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 04c74b1e5d733c18862c34a3de3b33583b467035..202bfbe892aba93b0356b9f9626664d9f218d49e 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.Http.WebRequestHandler.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Net.Http.WebRequest.dll /r:System.Net.Http.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Net.Http.WebRequest.dll /r:System.Net.Http.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index ede6c67a7174c0c74325d96e589a5241ef21da3e..401f473303c78037d6d58df94c47046c9f5e7396 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.HttpListener.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index a6a328a67445faea1056b2902b56179ee0ebfce4..32aca2f9665420600d201bb2d5a9499c83e9a5dd 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.Mail.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 07f556a143d9f0b28ab815fc76329ab0d10ff151..ae8b68c79d68b08b685526fdfb1fdd796ffea20b 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.NameResolution.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index c7a8929db7e2c3714a7fbd2ccb95b886871a5aac..29df735469a22123eafc2e9d28163f4c1fd6331f 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.NetworkInformation.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index b1574775df11616b84b5110f6063639a6cbeff9d..babbd33274be478c719ef7b019bd31c6b5106e57 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.Primitives.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 4ea6b004244337dd0ade4e2eded60df37ecce59b..947ca929cef91ae7c3a41704f7f45eb1f8a39f06 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.Requests.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index e1e00e70925b3d722951d6d851bc676978204549..4eab13bc8c870e90a8ff203be795f68f61467f90 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.Security.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index cdfab706037d3f2fd0d261b7371364309048101c..bb8e7229f721bdedb2aab7f4e0d6afe4fe5875f4 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.ServicePoint.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 98052e7cbcac87a0a76fb1e3669c69ecf0c161f0..0cd78a8dac09f04214e7e0456b16cff94bbee806 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.Sockets.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index ef1a805c1ea376c135318742fb5bc5ca6d17bbfb..77d83647a6d9ffc7f567085ea2122e49ac32391c 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.Utilities.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index fc84749e9bf41829c74a4f5505bb1f9966add104..b3fe02b3456caade8da72a4ef77390194ca72a8b 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.WebHeaderCollection.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 29eac24db7bcd71310fedf0adcc03a21fdf520c6..8489220e9602c57945b8d28077d393162d791f78 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.WebSockets.Client.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 7fcaa1ff20a7d860756b9b1bb126fbc7962ee750..783ae541c93d3af0459500e74594aec89b22b86e 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.WebSockets.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index e93b0787f77ae194b87370836196c17c2480a989..56ca84ae0daa2b92d814c4b658b5e131364d5320 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ObjectModel.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 886829a68d81c5f650051cb8c308319d0356caab..ee55fc623754b07f78cbb5d91bfc0eb44d0247d7 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Private.CoreLib.InteropServices.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index dabd5254c0389a333c69684c16df50b51b8e19db..52ce0e308ad25c830d36c54686ea57fcb720fe0c 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Private.CoreLib.Threading.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index d1c857b3b69ff994a5eaa31da874410340d8fb54..f9c54c54b2f4031fe241980dae629348dca72f0b 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Reflection.Emit.ILGeneration.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 751a8ec956c75d8a6f9a99eae26bea08c4f7b81c..70a46b888d520a0311bfccc254c7206ca5531df9 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Reflection.Emit.Lightweight.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 43659a90cac62e5ca8abc636ab26f72e8ced8349..2227a3ca80f0acea2a613d60c0ac2f76accaeb1d 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Reflection.Emit.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index ff09a4df7512110aa1dfd08c12ee2efd472c70d5..db7f3df173d8978bbda3b8522034c160c4336455 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Reflection.Extensions.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 6d1d422f0fa56c363c2a35e5b837172746bada31..99a3a39505d2072a5501f32f5981201724999951 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Reflection.Primitives.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 45991d20460d9b7300fbe4158e781258dc70656c..3e4d713ac5353037aee66eab5b599de85e59c8ab 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Reflection.TypeExtensions.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 12e2a5f649ef3620014991794aa4fc218d62f355..862b9333ccc43509c9fe37ab453d52f5f9742856 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Reflection.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 7ac21c91eb7f37e41f873236fdd5d4cc6a8dd678..48c56ade5a33b199bf38475aab9abbabc36908db 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Resources.ReaderWriter.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 018d07790580c150ad0e71a517a53f57fb6b9d2d..72e539364cf89dc38ca7ac96214114c61ebe0336 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Resources.ResourceManager.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 42666b2acdb8bcdf4b15f04e1184c998cd1e2559..21d3f78844e17e8b91ce7bd25c04536df3abcfed 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Runtime.CompilerServices.VisualC.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 2f14704a5514091b69a7b00425269b31c19ca44e..981cb5f8233e46740c20088a087db5f600d7acdc 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Runtime.Extensions.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index f151966ff08aa3eea38af19496b40ed33cdd0617..396738e44e53ccbd4cfed370816717bb0bf63158 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Runtime.Handles.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index bb8dbee9be6ba28c26b74fd04559353baf750b69..a6340fb3e76fde42cd7b3347c0ef8aa00aafccd5 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Runtime.InteropServices.WindowsRuntime.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 88cda286cd994c3dda825b9143fc20500f7e600e..51ef698b24c1f5b14b64230d738372e2c0fa929f 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Runtime.InteropServices.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index c817782bd7121360f32a6cb14838d5e6c355962d..e452fc5aca5f84d2abe6e8501d24f19502be2e4b 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Runtime.Numerics.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Numerics
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index eaae8623afdf3376e2e2fef16ce8ffba32308a78..304059eaabb16eac768554ffa94417381e4cdba8 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Runtime.Serialization.Json.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Runtime.Serialization
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 678395290f82386c56b048c84c7976a792d6ecea..648884fc9b72276c82b7103587d657d025e332f6 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Runtime.Serialization.Primitives.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Runtime.Serialization
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 3150204d126d79e682e1f7932a97ae9426da7cca..cc0aec4a369d40f21e1c667f26bd1b7781ffb351 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Runtime.Serialization.Xml.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Runtime.Serialization System.Xml
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 7f29b2de761360605a2b83483496c63b0fa5a3aa..c59de1384080e288a20a1b5f3a5368e79129067d 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Runtime.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System System.ComponentModel.Composition System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index c8507cd7f1d9db47348d673083c86899d061216a..3491238f861b314949c1a6100278ec2f80c0c77c 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.AccessControl.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index b54631083bbe0c81c2d701511098a3c39e1f95b3..72b761e38a545cdae65eb899e1b28e82073642ab 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Claims.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 9d4816b668c231695c42024fef16e2530ac9cd35..1beaa35e01372bf07f4670eafcc4754e474d5471 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.DeriveBytes.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index b9e28187b32e54baa92229ec1518090e3ba3977c..5bf1ccf0ab3e4c366b2ae21f30d67d69e061b646 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.Encoding.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 65ac7187e5ba34b1a8afe2ba1b6d68daa088b81e..b43610b676465f01bffde31cd47e558455c90c64 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.Encryption.Aes.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index e64e77454c0bac07e78391b1b8e47df61cf7e744..a2c373ac08aa6e3267ab7a26502ab4acdbbf4913 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.Encryption.ECDiffieHellman.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Core.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Core.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index b364a8def4a5242c99dcc825f1904aa9b33123e0..2bae1ac269dfca35f65fd3a3b6065d512796a146 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.Encryption.ECDsa.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Core.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Core.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 54f49c540a0cd1a229c827f4375291cb10eafb7e..26d1d81df8097a7ab2b9d711f3674cc949b7ce0f 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.Encryption.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 4dcc41428119d32aa6b91efc71300b037acf55c1..e146e689b9771f847bdbddbd1cdbec3fef37e7c3 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.Hashing.Algorithms.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 5416125129889557ac4974bcd392e04126a8f148..450bb596fd866717afb7f142bc914b02ce12a80b 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.Hashing.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 56189e5634667cf8fbb28139198443a45f73a65a..f82c860416253a13030c5d35a30a5049c7a540b9 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.ProtectedData.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Security.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Security.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 0c4121c398a4ef74a2889ad7e113e6c0335133d3..a88e14ef6cc0dbbc3879cc0836347dd1401bade5 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.RSA.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 532d2d3c02f319f07dd43c3aa1be1498569333f2..d9fdec015a2853bf6591d0d2b8bb3386e067fb98 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.RandomNumberGenerator.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 6e783c13ed470f81627d762082d43093dca9ed25..911aa9fd26809df82d0a84e05d3316cd939dbd46 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.X509Certificates.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 8a512fb2006f4797b7e3f10f3168c0543112d1fd..8284f5fd5ba3a6e7d3478e9a83c425fc8e546d70 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Principal.Windows.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 738880ff009cb5092e0d7d6e2f0abf53e08a2b3f..c4db680014922ad7d1a4320932584cd5d56eb691 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Security.Principal.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 1fcf6754c1728fd7d2d2b744755b88eb306709a4..fb949fbe07e8e40b7b59c5bb96cb2fac21b685f5 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.SecureString.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index f3c2d8b845cc9057e25fc3ca3f603f2dd17211ed..90f55a71d5eb9168513708b07cc5fab8d7454c7a 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ServiceModel.Duplex.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.ServiceModel
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index a71717c3473c509697e6dd4e0206987d07ba45bc..99587810c49caec9570c7cb6cde16120cc562fc1 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ServiceModel.Http.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.ServiceModel
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 06ec1cd321962e6b2bc288285485047addb17516..c01e4819efb8fdd94d709a6ca49971c8854025d5 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ServiceModel.NetTcp.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.ServiceModel
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 0827bf942620cf7957cd32442e1388d925c4a15f..6f94ff346f87c6ea87d72ee2e5b3f4f32e4d54d2 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ServiceModel.Primitives.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.ServiceModel System.Xml
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index da1752ec0c96ea5494a70714d674081fec17b40c..4e572464aa800736c72743cc8eba12301c2bd2f7 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ServiceModel.Security.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.ServiceModel
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 8c4bbbf2cb77b5b8cbae24cf1b38ed47226d6f93..9025a6cd91d1f028b489d5f179ab64dd0975a0a7 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ServiceProcess.ServiceController.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.ServiceProcess.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.ServiceProcess.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index b8cbfb22831eb2f5a95333d41897509db70cd9f3..114132e3a0fed95137f758c3280942607c68be5d 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Text.Encoding.Extensions.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index bf200cf7c5f8b8cc235ef5f995d51881c35e8662..aeb003f7bb8810403737dc41b4f80faef827224d 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Text.Encoding.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 6e5ce9767b78b4a5f13403508d36b8f9da8c2342..423212c687c95c769db104d74301ac7e4648c234 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Text.RegularExpressions.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 1eb18441cee62285382729ec3b8400a6dd38ddd7..56cf986675d62aa503060f6c9a8578ddb6563781 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Threading.AccessControl.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index b1d02543c9b9c97d04d27c2198b71175f133fdcf..29dbfe5e191a07be8389120ac3cde1845bb14299 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Threading.Overlapped.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 37059d95bfc7bfcec0284f644eb445023a8fb3a9..1f74d4934d3698e818a16092e451a4b49aa1be56 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Threading.Tasks.Parallel.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 824f75b61e2fcbcdbd8b6310c37389fdb77a200f..c89db2377a85d6f7038bd6d382659d0814225f88 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Threading.Tasks.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index d57451b897696bfae9fb0c5a96bc3e1fe1705941..177e8890f9f3a4ae66a69b6c8bbeaf8ddd9e838a 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Threading.Thread.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index d8c862abb7a4ad8d2f2cb4f7cc0405bb6015fef2..67b0082be9eb45a7f2bc53ab978ac782134423b3 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Threading.ThreadPool.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index eced1c7eee8420db027ae9928c98c2264e6da0ba..35df02e1825fa6abfa486350d6610baa3b9d6278 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Threading.Timer.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 65126553fb3b31d47183ce0ec4a185000b8137c9..1982ff8384e9ea2d120a49c149c125271ca7e772 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Threading.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 1b8ed5a4f3c06ac815e9fb6e9b982602d99bc58e..373c1ff882e09ea5f2813bbb97da43f8a7131ae3 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Xml.ReaderWriter.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Xml
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index ef476a00c4de62a78a300ffc450dbf224997df7a..e55fec5512e39b994298218c5a744dd2f42d218e 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Xml.XDocument.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Xml.Linq System.Xml
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index a75dedf37fb334e1ffcfa5e085c630b2dc116f2f..ee05487967b100037c597d31a989ec4f46ec68bc 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Xml.XPath.XDocument.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Xml.Linq.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Xml.Linq.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 3085087227a8768c47d2c7ced056ce78bb898a00..86a093ba7ad96381ac707493d035fec55368bf6d 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Xml.XPath.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Xml.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Xml.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 4a65050d41f527c60e91257fc3b3f9372cd84e92..68224f9f25fc2ddfc202bae61e11053f3299cafe 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Xml.XmlDocument.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Xml.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Xml.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 69f6f37df00d93e3424382ed2e2c9401bb3cb65a..3a1e1396f75e7777c6f502807a016ebdb931a45a 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Xml.XmlSerializer.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Xml
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index feb987382fc95bdd4fb613f5a9afcc77f5668dc8..d038a8d5840d941fd48ecde2056776e6492a1beb 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Xml.Xsl.Primitives.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib /r:System.Xml.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Xml.dll
 
 PLATFORM_DEBUG_FLAGS =
 
index 91a2b3059ddf81ba7b9320b8e22a8ab916b7dfe4..d57387d754eac9477ef15a2063b90850542996ca 100644 (file)
@@ -145,13 +145,6 @@ namespace MonoTests.Microsoft.Build.Tasks {
                        
                        Assert.AreEqual (0, testLogger.CheckHead ("Text", "HelpKeyword", "Code"), "A1");
                }
-
-               [Test]
-               public void TestExecute1 ()
-               {
-                       Error error = new Error ();
-                       Assert.AreEqual (false, error.Execute (), "A1");
-               }
        }
 }
         
index c6ca1a23901239cb1404143e2dc931d009ef10c0..55b344dceb649c5d70c9472ffdada80506dd2710 100644 (file)
@@ -197,6 +197,19 @@ namespace MonoTests.Microsoft.Build.Tasks
                        return 0;
                }
 
+               public int CheckFullLog (string text)
+               {
+                       for (int i = 0; i < all_messages.Count; i ++) {
+                               BuildEventArgs arg = all_messages [i];
+                               if (text == arg.Message) {
+                                       all_messages.RemoveAt (i);
+                                       return 0;
+                               }
+                       }
+
+                       return 1;
+               }
+
                public void DumpMessages ()
                {
                        foreach (BuildEventArgs arg in all_messages)
index cef01f61c7525bb8be8c70966fe37b3161bf4e8b..e44bbc2fe80a85d6b9b06961e073b20b66097b3a 100644 (file)
@@ -16,7 +16,18 @@ LIB_MCS_FLAGS = \
        /r:System.Xml.dll                       \
        /r:$(XBUILD_FRAMEWORK)
 
-TEST_MCS_FLAGS = /r:$(XBUILD_ENGINE) /r:$(XBUILD_FRAMEWORK) -r:System.dll -r:System.Core.dll
+TEST_RESX_RESOURCES = Test/Microsoft.Build.Utilities/Strings.resources
+
+TEST_MCS_FLAGS = /r:$(XBUILD_ENGINE) /r:$(XBUILD_FRAMEWORK) -r:System.dll -r:System.Core.dll $(TEST_RESX_RESOURCES:%=-resource:%)
 
 include $(XBUILD_DIR)/xbuild_test.make
 include ../../build/library.make
+
+EXTRA_DISTFILES = $(TEST_RESX_RESOURCES:.resources=.resx)
+
+CLEAN_FILES += $(TEST_RESX_RESOURCES)
+
+$(TEST_RESX_RESOURCES): %.resources: %.resx
+       $(RESGEN) $< || cp $@.prebuilt $@
+
+$(test_lib): $(TEST_RESX_RESOURCES)
index d768edb5617d0cd73a6bf792580baa662be68a67..2834c874cbe3fd2101f7b8aef79499d54889fdd1 100644 (file)
@@ -38,7 +38,6 @@ namespace Microsoft.Build.Utilities
                string                  helpKeywordPrefix;
                ITaskHost               hostObject;
                TaskLoggingHelper       log;
-               ResourceManager         taskResources;
                
                protected Task()
                        : this (null, null)
@@ -53,7 +52,8 @@ namespace Microsoft.Build.Utilities
                protected Task(ResourceManager taskResources,
                               string helpKeywordPrefix)
                {
-                       this.taskResources = taskResources;
+                       log = new TaskLoggingHelper (this);
+                       log.TaskResources = taskResources;
                        this.helpKeywordPrefix = helpKeywordPrefix;
                }
 
@@ -65,7 +65,6 @@ namespace Microsoft.Build.Utilities
                        }
                        set {
                                buildEngine = value;
-                               log = new TaskLoggingHelper (this); 
                        }
                }
 
@@ -99,10 +98,10 @@ namespace Microsoft.Build.Utilities
 
                protected ResourceManager TaskResources {
                        get {
-                               return taskResources;
+                               return log.TaskResources;
                        }
                        set {
-                               taskResources = value;
+                               log.TaskResources = value;
                        }
                }
        }
index a274dece6b511f19718ead6f287c57722f468f2a..4947f51c11d4582e4af3caa1e17eb9eae0f6929c 100644 (file)
@@ -41,11 +41,14 @@ namespace Microsoft.Build.Utilities
                string          helpKeywordPrefix;
                string          taskName;
                ResourceManager taskResources;
+               ITask           taskInstance;
        
                public TaskLoggingHelper (ITask taskInstance)
                {
-                       if (taskInstance != null)
-                               this.buildEngine = taskInstance.BuildEngine;
+                       if (taskInstance == null)
+                               throw new ArgumentNullException ("taskInstance");
+
+                       this.taskInstance = taskInstance;
                        taskName = null;
                }
 
@@ -66,8 +69,15 @@ namespace Microsoft.Build.Utilities
                {
                        if (resourceName == null)
                                throw new ArgumentNullException ("resourceName");
-               
-                       return null;
+
+                       if (taskResources == null)
+                               throw new InvalidOperationException ("Task did not register any task resources");
+
+                       string resourceString = taskResources.GetString (resourceName);
+                       if (resourceString == null)
+                               throw new ArgumentException ($"No resource string found for resource named {resourceName}");
+
+                       return FormatString (resourceString, args);
                }
 
                [MonoTODO]
@@ -99,11 +109,13 @@ namespace Microsoft.Build.Utilities
                {
                        if (message == null)
                                throw new ArgumentNullException ("message");
+
+                       ThrowInvalidOperationIf (BuildEngine == null, "Task is attempting to log before it was initialized");
                                
                        BuildErrorEventArgs beea = new BuildErrorEventArgs (
-                               null, null, buildEngine.ProjectFileOfTaskNode, 0, 0, 0, 0, FormatString (message, messageArgs),
+                               null, null, BuildEngine.ProjectFileOfTaskNode, 0, 0, 0, 0, FormatString (message, messageArgs),
                                helpKeywordPrefix, null);
-                       buildEngine.LogErrorEvent (beea);
+                       BuildEngine.LogErrorEvent (beea);
                        hasLoggedErrors = true;
                }
 
@@ -117,12 +129,14 @@ namespace Microsoft.Build.Utilities
                        if (message == null)
                                throw new ArgumentNullException ("message");
                        
+                       ThrowInvalidOperationIf (BuildEngine == null, "Task is attempting to log before it was initialized");
+
                        BuildErrorEventArgs beea = new BuildErrorEventArgs (
                                subcategory, errorCode, file, lineNumber,
                                columnNumber, endLineNumber, endColumnNumber,
                                FormatString (message, messageArgs), helpKeyword /*it's helpKeyword*/,
                                null /*it's senderName*/);
-                       buildEngine.LogErrorEvent (beea);
+                       BuildEngine.LogErrorEvent (beea);
                        hasLoggedErrors = true;
                }
 
@@ -144,14 +158,16 @@ namespace Microsoft.Build.Utilities
                        if (exception == null)
                                throw new ArgumentNullException ("exception");
                
+                       ThrowInvalidOperationIf (BuildEngine == null, "Task is attempting to log before it was initialized");
+
                        StringBuilder sb = new StringBuilder ();
                        sb.Append (exception.Message);
                        if (showStackTrace == true)
                                sb.Append (exception.StackTrace);
                        BuildErrorEventArgs beea = new BuildErrorEventArgs (
-                               null, null, buildEngine.ProjectFileOfTaskNode, 0, 0, 0, 0, sb.ToString (),
+                               null, null, BuildEngine.ProjectFileOfTaskNode, 0, 0, 0, 0, sb.ToString (),
                                exception.HelpLink, exception.Source);
-                       buildEngine.LogErrorEvent (beea);
+                       BuildEngine.LogErrorEvent (beea);
                        hasLoggedErrors = true;
                }
 
@@ -159,7 +175,7 @@ namespace Microsoft.Build.Utilities
                                                   params object[] messageArgs)
                {
                        LogErrorFromResources (null, null, null, null, 0, 0, 0,
-                               0, messageResourceName, null);
+                               0, messageResourceName, messageArgs);
                }
 
                public void LogErrorFromResources (string subcategoryResourceName,
@@ -172,13 +188,22 @@ namespace Microsoft.Build.Utilities
                                                   string messageResourceName,
                                                   params object[] messageArgs)
                {
+                       if (messageResourceName == null)
+                               throw new ArgumentNullException ("messageResourceName");
+
+                       ThrowInvalidOperationIf (BuildEngine == null, "Task is attempting to log before it was initialized");
+
+                       string subcategory = null;
+                       if (!String.IsNullOrEmpty (subcategoryResourceName))
+                               subcategory = taskResources.GetString (subcategoryResourceName);
+
                        BuildErrorEventArgs beea = new BuildErrorEventArgs (
-                               taskResources.GetString (subcategoryResourceName),
+                               subcategory,
                                errorCode, file, lineNumber, columnNumber,
                                endLineNumber, endColumnNumber,
-                               taskResources.GetString (messageResourceName),
+                               FormatResourceString (messageResourceName, messageArgs),
                                helpKeyword, null );
-                       buildEngine.LogErrorEvent (beea);
+                       BuildEngine.LogErrorEvent (beea);
                        hasLoggedErrors = true;
                }
 
@@ -226,16 +251,17 @@ namespace Microsoft.Build.Utilities
                public void LogMessageFromResources (string messageResourceName,
                                                     params object[] messageArgs)
                {
-                       LogMessage (taskResources.GetString (messageResourceName),
-                               messageArgs);
+                       LogMessageFromResources (MessageImportance.Normal, messageResourceName, messageArgs);
                }
 
                public void LogMessageFromResources (MessageImportance importance,
                                                     string messageResourceName,
                                                     params object[] messageArgs)
                {
-                       LogMessage (importance, taskResources.GetString (
-                               messageResourceName), messageArgs);
+                       if (messageResourceName == null)
+                               throw new ArgumentNullException ("messageResourceName");
+
+                       LogMessage (importance, FormatResourceString (messageResourceName, messageArgs));
                }
 
                public bool LogMessagesFromFile (string fileName)
@@ -280,10 +306,12 @@ namespace Microsoft.Build.Utilities
                        if (lineOfText == null)
                                throw new ArgumentNullException ("lineOfText");
 
+                       ThrowInvalidOperationIf (BuildEngine == null, "Task is attempting to log before it was initialized");
+
                        BuildMessageEventArgs bmea = new BuildMessageEventArgs (
                                lineOfText, helpKeywordPrefix,
                                null, messageImportance);
-                       buildEngine.LogMessageEvent (bmea);
+                       BuildEngine.LogMessageEvent (bmea);
 
                        return true;
                }
@@ -291,11 +319,13 @@ namespace Microsoft.Build.Utilities
                public void LogWarning (string message,
                                       params object[] messageArgs)
                {
+                       ThrowInvalidOperationIf (BuildEngine == null, "Task is attempting to log before it was initialized");
+
                        // FIXME: what about all the parameters?
                        BuildWarningEventArgs bwea = new BuildWarningEventArgs (
-                               null, null, buildEngine.ProjectFileOfTaskNode, 0, 0, 0, 0, FormatString (message, messageArgs),
+                               null, null, BuildEngine.ProjectFileOfTaskNode, 0, 0, 0, 0, FormatString (message, messageArgs),
                                helpKeywordPrefix, null);
-                       buildEngine.LogWarningEvent (bwea);
+                       BuildEngine.LogWarningEvent (bwea);
                }
 
                public void LogWarning (string subcategory, string warningCode,
@@ -305,11 +335,13 @@ namespace Microsoft.Build.Utilities
                                        string message,
                                        params object[] messageArgs)
                {
+                       ThrowInvalidOperationIf (BuildEngine == null, "Task is attempting to log before it was initialized");
+
                        BuildWarningEventArgs bwea = new BuildWarningEventArgs (
                                subcategory, warningCode, file, lineNumber,
                                columnNumber, endLineNumber, endColumnNumber,
                                FormatString (message, messageArgs), helpKeyword, null);
-                       buildEngine.LogWarningEvent (bwea);
+                       BuildEngine.LogWarningEvent (bwea);
                }
 
                public void LogWarningFromException (Exception exception)
@@ -331,8 +363,10 @@ namespace Microsoft.Build.Utilities
                public void LogWarningFromResources (string messageResourceName,
                                                     params object[] messageArgs)
                {
-                       LogWarning (taskResources.GetString (messageResourceName),
-                               messageArgs);
+                       if (messageResourceName == null)
+                               throw new ArgumentNullException ("messageResourceName");
+
+                       LogWarningFromResources (null, null, null, null, 0, 0, 0, 0, messageResourceName, messageArgs);
                }
 
                public void LogWarningFromResources (string subcategoryResourceName,
@@ -346,11 +380,17 @@ namespace Microsoft.Build.Utilities
                                                     string messageResourceName,
                                                     params object[] messageArgs)
                {
-                       LogWarning (taskResources.GetString (subcategoryResourceName),
+                       if (messageResourceName == null)
+                               throw new ArgumentNullException ("messageResourceName");
+
+                       string subcategory = null;
+                       if (!String.IsNullOrEmpty (subcategoryResourceName))
+                               subcategory = taskResources.GetString (subcategoryResourceName);
+
+                       LogWarning (subcategory,
                                warningCode, helpKeyword, file, lineNumber,
                                columnNumber, endLineNumber, endColumnNumber,
-                               taskResources.GetString (messageResourceName),
-                               messageArgs);
+                               FormatResourceString (messageResourceName, messageArgs));
                }
 
                public void LogWarningWithCodeFromResources (string messageResourceName,
@@ -391,9 +431,15 @@ namespace Microsoft.Build.Utilities
                {
                }
 
+               void ThrowInvalidOperationIf (bool condition, string message)
+               {
+                       if (condition)
+                               throw new InvalidOperationException (message);
+               }
+
                protected IBuildEngine BuildEngine {
                        get {
-                               return buildEngine;
+                               return taskInstance?.BuildEngine;
                        }
                }
 
index 4e2248a2d48fcba9e145f7ac13231938b0d50b7e..1b4acda3132d1014875ba6b8c448ba6c2328d725 100644 (file)
@@ -4,3 +4,5 @@ Microsoft.Build.Utilities/TaskItemTest.cs
 Microsoft.Build.Utilities/TaskLoggingHelperTest.cs
 Microsoft.Build.Utilities/ToolLocationHelperTest.cs
 Microsoft.Build.Utilities/ToolTaskTest.cs
+../../Microsoft.Build.Tasks/Test/Microsoft.Build.Tasks/TestMessageLogger.cs
+../../Microsoft.Build.Engine/Test/Microsoft.Build.BuildEngine/Consts.cs
diff --git a/mcs/class/Microsoft.Build.Utilities/Test/Microsoft.Build.Utilities/Strings.resx b/mcs/class/Microsoft.Build.Utilities/Test/Microsoft.Build.Utilities/Strings.resx
new file mode 100644 (file)
index 0000000..8a19759
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 1.3
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">1.3</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1">this is my long string</data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        [base64 mime encoded serialized .NET Framework object]
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        [base64 mime encoded string representing a byte array form of the .NET Framework object]
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used forserialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>1.3</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="MessageResource1">
+         <value>Message from resources with arg '{0}'</value>
+  </data>
+</root>
index 8ba85db6fafef033bf08370a71a48bb3ed3f1e11..80174bfd454f5aff558c49715e79b307b4912a7f 100644 (file)
@@ -3,8 +3,10 @@
 //
 // Author:
 //   Marek Sieradzki (marek.sieradzki@gmail.com)
+//   Ankit Jain (ankit.jain@xamarin.com)
 //
 // (C) 2005 Marek Sieradzki
+// (C) 2016 Xamarin, Inc. (http://www.xamarin.com)
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
 
 using System;
 using System.Collections;
+using System.Reflection;
+using System.Resources;
 using Microsoft.Build.Framework;
 using Microsoft.Build.Utilities;
+using Microsoft.Build.BuildEngine;
 using NUnit.Framework;
+using MonoTests.Microsoft.Build.Tasks;
 
 namespace MonoTests.Microsoft.Build.Utilities {
        
        class TestTask : Task {
+               public static Action<TaskLoggingHelper> action = null;
+
+               public TestTask ()
+                       : base (new ResourceManager("Strings", typeof(TestTask).GetTypeInfo().Assembly))
+               {
+               }
+
                public override bool Execute ()
                {
+                       action (Log);
                        return true; 
                }
        }
@@ -45,6 +59,11 @@ namespace MonoTests.Microsoft.Build.Utilities {
        
                TaskLoggingHelper tlh;
                TestTask task;
+
+               public TaskLoggingHelperTest ()
+               {
+                       task = new TestTask ();
+               }
        
                [Test]
                public void TestAssignment ()
@@ -77,6 +96,218 @@ namespace MonoTests.Microsoft.Build.Utilities {
                        string output;
                        tlh.ExtractMessageCode (null, out output);
                }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentNullException))]
+               public void TestLogErrorFromResourcesNullMessage ()
+               {
+                       tlh = new TaskLoggingHelper (task);
+                       tlh.LogErrorFromResources (null);
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentNullException))]
+               public void TestLogErrorFromResourcesNullMessage2 ()
+               {
+                       tlh = new TaskLoggingHelper (task);
+                       tlh.LogErrorFromResources (null, null, null, null, 0, 0, 0, 0, null);
+               }
+
+               [Test]
+               public void TestLogErrorFromResources1 ()
+               {
+                       RunAndCheckTaskLoggingHelper (
+                                       (tlh) => tlh.LogErrorFromResources ("MessageResource1", "foo"),
+                                       (l) => Assert.IsTrue (l.CheckFullLog ("Message from resources with arg 'foo'") == 0, "Message not found")
+                                       );
+               }
+
+               [Test]
+               public void TestLogErrorFromResourcesNonExistantResourceName ()
+               {
+                       RunAndCheckTaskLoggingHelper (
+                                       (tlh) => tlh.LogErrorFromResources ("NonExistantResourceName", "foo"),
+                                       null,
+                                       (p, l) => {
+                                               Assert.IsFalse (p.Build (), "Build should have failed");
+                                               Assert.IsTrue (l.CheckFullLog (
+                                                               "Error executing task TestTask: No resource string found for resource named NonExistantResourceName") == 0,
+                                                               "Error not found in the log");
+                                       }
+                               );
+               }
+
+
+               [Test]
+               public void TestLogErrorFromResourcesNullSubcategoryResourceName ()
+               {
+                       RunAndCheckTaskLoggingHelper (
+                                       (tlh) => tlh.LogErrorFromResources (null, null, null, null, 0, 0, 0, 0, "MessageResource1", "foo"),
+                                       (l) => Assert.IsTrue (l.CheckFullLog ("Message from resources with arg 'foo'") == 0, "Message not found")
+                                       );
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentNullException))]
+               public void TestLogWarningFromResourcesNullMessage ()
+               {
+                       tlh = new TaskLoggingHelper (task);
+                       tlh.LogWarningFromResources (null);
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentNullException))]
+               public void TestLogWarningFromResourcesNullMessage2 ()
+               {
+                       tlh = new TaskLoggingHelper (task);
+                       tlh.LogWarningFromResources (null, null, null, null, 0, 0, 0, 0, null);
+               }
+
+               [Test]
+               public void TestLogWarningFromResourcesNullSubcategoryResourceName ()
+               {
+                       RunAndCheckTaskLoggingHelper (
+                                       (tlh) => tlh.LogWarningFromResources (null, null, null, null, 0, 0, 0, 0, "MessageResource1", "foo"),
+                                       (l) => Assert.IsTrue (l.CheckFullLog ("Message from resources with arg 'foo'") == 0, "Message not found")
+                                       );
+               }
+
+               [Test]
+               public void TestLogWarningFromResources1 ()
+               {
+                       RunAndCheckTaskLoggingHelper (
+                                       (tlh) => tlh.LogWarningFromResources ("MessageResource1", "foo"),
+                                       (l) => Assert.IsTrue (l.CheckFullLog ("Message from resources with arg 'foo'") == 0, "Message not found")
+                                       );
+               }
+
+               [Test]
+               public void TestLogWarningFromResourcesNonExistantResourceName ()
+               {
+                       RunAndCheckTaskLoggingHelper (
+                                       (tlh) => tlh.LogWarningFromResources ("NonExistantResourceName", "foo"),
+                                       null,
+                                       (p, l) => {
+                                               if (p.Build ()) { l.DumpMessages (); Assert.Fail ("Build should have failed"); }
+                                               Assert.IsTrue (l.CheckFullLog (
+                                                               "Error executing task TestTask: No resource string found for resource named NonExistantResourceName") == 0,
+                                                               "Error not found in the log");
+                                       }
+                               );
+               }
+
+
+               [Test]
+               [ExpectedException (typeof (ArgumentNullException))]
+               public void TestLogMessageFromResourcesNullMessage ()
+               {
+                       tlh = new TaskLoggingHelper (task);
+                       tlh.LogMessageFromResources (null);
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentNullException))]
+               public void TestLogMessageFromResourcesNullMessage2 ()
+               {
+                       tlh = new TaskLoggingHelper (task);
+                       tlh.LogMessageFromResources (MessageImportance.Low, null);
+               }
+
+               [Test]
+               public void TestLogMessageFromResources1 ()
+               {
+                       RunAndCheckTaskLoggingHelper (
+                                       (tlh) => tlh.LogMessageFromResources ("MessageResource1", "foo"),
+                                       (l) => Assert.IsTrue (l.CheckFullLog ("Message from resources with arg 'foo'") == 0, "Message not found")
+                                       );
+               }
+
+               [Test]
+               public void TestLogMessageFromResourcesNonExistantResourceName ()
+               {
+                       RunAndCheckTaskLoggingHelper (
+                                       (tlh) => tlh.LogMessageFromResources ("NonExistantResourceName", "foo"),
+                                       null,
+                                       (p, l) => {
+                                               if (p.Build ()) { l.DumpMessages (); Assert.Fail ("Build should have failed"); }
+                                               l.DumpMessages ();
+                                               Assert.IsTrue (l.CheckFullLog (
+                                                               "Error executing task TestTask: No resource string found for resource named NonExistantResourceName") == 0,
+                                                               "Error not found in the log");
+                                       }
+                               );
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentNullException))]
+               public void TestFormatResourceString1 ()
+               {
+                       tlh = new TaskLoggingHelper (task);
+                       tlh.FormatResourceString (null);
+               }
+
+               [Test]
+               [ExpectedException (typeof (InvalidOperationException))]
+               public void TestFormatResourceString2 ()
+               {
+                       tlh = new TaskLoggingHelper (task);
+                       tlh.FormatResourceString ("MessageResource1");
+               }
+
+               [Test]
+               public void TestFormatResourceString3 ()
+               {
+                       RunAndCheckTaskLoggingHelper (
+                                       (tlh) => tlh.FormatResourceString ("NonExistantResourceName"),
+                                       null,
+                                       (p, l) => {
+                                               if (p.Build ()) { l.DumpMessages (); Assert.Fail ("Build should have failed"); }
+                                               l.DumpMessages ();
+                                               Assert.IsTrue (l.CheckFullLog (
+                                                               "Error executing task TestTask: No resource string found for resource named NonExistantResourceName") == 0,
+                                                               "Error not found in the log");
+                                       }
+                               );
+               }
+
+               [Test]
+               public void TestFormatResourceString4 ()
+               {
+                       RunAndCheckTaskLoggingHelper (
+                                       (tlh) => Assert.AreEqual (
+                                               tlh.FormatResourceString ("MessageResource1", "foo"),
+                                               "Message from resources with arg 'foo'"),
+                                       null
+                               );
+               }
+               void RunAndCheckTaskLoggingHelper (Action<TaskLoggingHelper> taskAction, Action<TestMessageLogger> loggerAction, Action<Project, TestMessageLogger> projectBuildAction = null)
+               {
+                       string asmLocation = typeof (TaskLoggingHelperTest).Assembly.Location;
+                       string project_xml = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
+                       <UsingTask TaskName='MonoTests.Microsoft.Build.Utilities.TestTask' AssemblyFile='" + asmLocation + @"' />
+                       <Target Name=""1"">
+                               <TestTask />
+                       </Target>
+                       </Project>";
+
+                       Engine engine = new Engine (Consts.BinPath);
+                       Project proj = engine.CreateNewProject ();
+                       proj.LoadXml (project_xml);
+                       TestMessageLogger logger = new TestMessageLogger ();
+                       engine.RegisterLogger (logger);
+
+                       TestTask.action = taskAction;
+
+                       if (projectBuildAction == null) {
+                               if (!proj.Build ("1")) {
+                                       logger.DumpMessages ();
+                                       Assert.Fail ("Build failed");
+                               }
+                       } else
+                               projectBuildAction (proj, logger);
+
+                       if (loggerAction != null)
+                               loggerAction (logger);
+               }
        }
-       
 }
index bf6b1112e3f4c0d272dd4dd0dc8c7bc2fdd454af..61beeb4e2fc2456e6833ba9abe43d85d58063042 100644 (file)
@@ -2,18 +2,21 @@ thisdir = class/Mono.Security.Providers.NewSystemSource
 SUBDIRS = 
 include ../../build/rules.make
 
-ifdef MOBILE_PROFILE
-EXTERN_ALIAS_FLAGS = -r:Mono.Security
-else
-EXTERN_ALIAS_FLAGS = -d:MONO_SECURITY_ALIAS -r:MonoSecurity=Mono.Security
-endif
+LIB_REFS = System
 
 LIBRARY = Mono.Security.Providers.NewSystemSource.dll
-LIB_REFS = System
-LIB_MCS_FLAGS = -d:SECURITY_DEP $(EXTERN_ALIAS_FLAGS) \
+
+LIB_MCS_FLAGS = -d:SECURITY_DEP \
        -unsafe -nowarn:1030 -keyfile:../mono.pub -delaysign -d:MONO -d:FEATURE_PAL -d:MONO_FEATURE_NEW_TLS \
        -d:MONO_FEATURE_NEW_SYSTEM_SOURCE -d:DISABLE_CAS_USE
 
+ifdef MOBILE_PROFILE
+LIB_REFS += Mono.Security
+else
+LIB_REFS += MonoSecurity=Mono.Security
+LIB_MCS_FLAGS += -d:MONO_SECURITY_ALIAS
+endif
+
 EXTRA_DISTFILES = README.md
 
 include ../../build/library.make
index 694bf6e56e6a1c22219502ef5c5376ce23a88a5c..71df86877c628509d872315c0238bba02efe6d46 100644 (file)
@@ -313,6 +313,20 @@ namespace System.Net.Http.Headers
                                        start = pos - 1;
                                        while (pos < s.Length) {
                                                ch = s [pos++];
+
+                                               //
+                                               // The backslash character ("\") MAY be used as a single-character
+                                               // quoting mechanism only within quoted-string
+                                               //
+                                               if (ch == '\\') {
+                                                       if (pos + 1 < s.Length) {
+                                                               ++pos;
+                                                               continue;
+                                                       }
+
+                                                       break;
+                                               }
+
                                                if (ch == '"') {
                                                        ttype = Token.Type.QuotedString;
                                                        break;
index 78c267072bfa51bb1b34cbf9e1fd9d3e34c8649a..5099ce425511f08c0662fd947ff9911398875c8a 100644 (file)
@@ -74,6 +74,12 @@ namespace MonoTests.System.Net.Http.Headers
                        Assert.AreEqual ("\"mm\"", res.Tag, "#11");
                        Assert.IsTrue (res.IsWeak, "#12");
                        Assert.AreEqual ("W/\"mm\"", res.ToString (), "#13");
+
+
+                       res = EntityTagHeaderValue.Parse ("\"\\\"123\\\"\"");
+                       Assert.AreEqual ("\"\\\"123\\\"\"", res.Tag, "#21");
+                       Assert.IsFalse (res.IsWeak, "#22");
+                       Assert.AreEqual ("\"\\\"123\\\"\"", res.ToString (), "#23");
                }
 
                [Test]
index 140a936dbdb077ab0879e5655011e51eb1fb141c..1108bae0233088e940792438f153aa0ad212245c 100644 (file)
@@ -67,6 +67,6 @@ using System.Runtime.InteropServices;
 // [assembly: InternalsVisibleTo ("System.ServiceModel, PublicKey=00000000000000000400000000000000")]
 #endif
 [assembly: InternalsVisibleTo ("System.ServiceModel, PublicKey=" + AssemblyRef.FrameworkPublicKeyFull)]
-[assembly: InternalsVisibleTo ("System.ServiceModel.Web, PublicKey=" + AssemblyRef.FrameworkPublicKeyFull)]
+[assembly: InternalsVisibleTo ("System.ServiceModel.Web, PublicKey=" + AssemblyRef.MicrosoftPublicKey)]
 
 [assembly: ComVisible (false)]
index 27326fd9ac65340770a4e45f1240c28b2a6ff87c..3b058bd9c420c70a87efe20777ae75329c05b43b 100644 (file)
@@ -3,9 +3,15 @@ SUBDIRS =
 include ../../build/rules.make
 
 LIBRARY = System.Xml.Linq.dll
-LIB_REFS = System System.Core System.Xml System.Runtime.Serialization
+LIB_REFS = System System.Core System.Xml
 LIB_MCS_FLAGS =
 
+NO_SERIALIZATION_PROFILE := $(filter basic build, $(PROFILE))
+ifndef NO_SERIALIZATION_PROFILE
+LIB_REFS += System.Runtime.Serialization
+LIB_MCS_FLAGS += -d:FEATURE_SERIALIZATION
+endif
+
 ifeq (2.1, $(FRAMEWORK_VERSION))
 LIB_MCS_FLAGS += -d:MONO_HYBRID_SYSTEM_XML
 endif
index 24affeb60e0d381bd7ca00bfe919196298273407..25031265acc6825dabdb97cc1350dabdce1a4215 100644 (file)
@@ -19,7 +19,7 @@ TEST_RESOURCES = \
        Test/System/test-uri-props-manual.txt \
        Test/System/test-uri-relative-props.txt
 
-TEST_MCS_FLAGS = -r:System.Drawing.dll -r:Mono.Security.dll -r:System.Data -r:System.Xml.dll -r:System.Core.dll -nowarn:618,672,219,67,169,612 \
+TEST_MCS_FLAGS = -r:System.Drawing.dll -r:Mono.Security.dll -r:System.Data.dll -r:System.Xml.dll -r:System.Core.dll -nowarn:618,672,219,67,169,612 \
        $(foreach f, $(TEST_RESOURCES), -resource:$(f),$(notdir $(f)))
 
 REFERENCE_SOURCES_FLAGS = -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX
@@ -29,7 +29,7 @@ TEST_MCS_FLAGS += -d:MONO_FEATURE_PROCESS_START
 endif
 
 LIB_MCS_FLAGS = -nowarn:618 -d:CONFIGURATION_2_0 $(REFERENCE_SOURCES_FLAGS) -unsafe $(RESOURCE_FILES:%=-resource:%)
-TEST_MCS_FLAGS += -r:System.Configuration
+TEST_MCS_FLAGS += -r:System.Configuration.dll
 
 ifndef NO_THREAD_ABORT
 REFERENCE_SOURCES_FLAGS += -d:MONO_FEATURE_THREAD_ABORT
index 6db78941d42aced60c5629666fc5aa3560f68f9b..04d507315eb66e20c186802f08dbd8f458cd0d19 100644 (file)
@@ -253,7 +253,7 @@ namespace MonoTests.System.Collections.Concurrent
                        const int elNumber = 5;
 
                        var c = new BlockingCollection <int> (elNumber);
-                       var token = new CancellationTokenSource (100);
+                       var token = new CancellationTokenSource (1000);
 
                        for (var i = 0; i < elNumber + 1; i++) {
                                c.Add (1, token.Token);
@@ -271,7 +271,7 @@ namespace MonoTests.System.Collections.Concurrent
                                cols[i] = new BlockingCollection <int> (elNumber);
                        }
 
-                       var token = new CancellationTokenSource (100);
+                       var token = new CancellationTokenSource (1000);
                        for (var i = 0; i < colNumber * elNumber; i++) {
                                BlockingCollection <int>.AddToAny (cols, 1, token.Token);
                        }
index c87ea8f0860935c6a89c82a73368cb2dda6d5f73..9ab569e9330ac4bb2cfbfb99cfbc77e4d1d81985 100644 (file)
@@ -122,11 +122,11 @@ namespace System {
                                        throw new FormatException ("Could not find any parsable digits.");
                                }
 
-                               var res = (uint) fromBase * result + (uint) digitValue;
-                               if (res < result || res > max_value)
+                               long res = fromBase * result + digitValue;
+                               if (res > max_value)
                                        throw new OverflowException ();
                                        
-                               result = res;
+                               result = (uint)res;
                                chars++;
                                ++i;
                        }
index 6900c420bff44087199bfd5286c1e4d0415c9575..4064ed9c90185ac0eec46c390977a61b4340a0f9 100644 (file)
@@ -534,6 +534,12 @@ namespace System
                        if (a == null)
                                return b;
 
+                       if (b == null)
+                               return a;
+
+                       if (a.GetType () != b.GetType ())
+                               throw new ArgumentException (Locale.GetText ("Incompatible Delegate Types. First is {0} second is {1}.", a.GetType ().FullName, b.GetType ().FullName));
+
                        return a.CombineImpl (b);
                }
 
index 1070563aca0017d6df71cfa04b7b79f8905785c8..3d0fd967aa9983a6d0c58c00f8287b049e60da9e 100644 (file)
@@ -104,7 +104,7 @@ namespace System
 
                public override string ToString ()
                {
-                       return ((uint) _pointer).ToString();
+                       return UIntPtr.Size < 8 ? ((uint) _pointer).ToString() : ((ulong) _pointer).ToString();
                }
 
                // Interface ISerializable
index f9dc5929d3107412fcd6141a8da70093abad780d..2124aa85733b05943c15d6c00f8c006ed856713e 100644 (file)
@@ -4711,6 +4711,95 @@ namespace MonoTests.System {
                        Convert.ToUInt64 ("-", 16);
                }
 
+               [Test]
+               public void ToInt32_Base10_MaxValue ()
+               {
+                       Assert.AreEqual (Int32.MaxValue, Convert.ToInt32 (Int32.MaxValue.ToString(), 10));
+               }
+
+               [Test]
+               [ExpectedException (typeof (OverflowException))]
+               [Category ("NotWorking")] // FIXME: this should throw an OverflowException but currently doesn't
+               public void ToInt32_Base10_MaxValueOverflow ()
+               {
+                       var overflowValue = ((UInt32) Int32.MaxValue) + 1;
+                       Convert.ToInt32 (overflowValue.ToString (), 10);
+               }
+
+               [Test]
+               public void ToInt32_Base10_MinValue ()
+               {
+                       Assert.AreEqual (Int32.MinValue, Convert.ToInt32 (Int32.MinValue.ToString(), 10));
+               }
+
+               [Test]
+               [ExpectedException (typeof (OverflowException))]
+               [Category ("NotWorking")] // FIXME: this should throw an OverflowException but currently doesn't                
+               public void ToInt32_Base10_MinValueOverflow ()
+               {
+                       var overflowValue = ((UInt32) Int32.MaxValue) + 2;
+                       Convert.ToInt32 ("-" + overflowValue.ToString (), 10);
+               }
+
+               [Test]
+               public void ToInt32_Base16_MaxValue ()
+               {
+                       Assert.AreEqual (Int32.MaxValue, Convert.ToInt32 (Int32.MaxValue.ToString("x"), 16));
+               }
+
+               [Test]
+               public void ToInt32_Base16_MaxValueOverflow ()
+               {
+                       var overflowValue = ((UInt32) Int32.MaxValue) + 1;
+                       Assert.AreEqual (-2147483648, Convert.ToInt32 (overflowValue.ToString("x"), 16));
+               }
+
+               [Test]
+               [ExpectedException (typeof (OverflowException))]
+               public void ToInt32_Base16_MaxValueOverflow2 ()
+               {
+                       Convert.ToInt32 (UInt32.MaxValue.ToString ("x") + "0", 16);
+               }
+
+               [Test]
+               public void ToInt32_Base16_MinValue ()
+               {
+                       Assert.AreEqual (Int32.MinValue, Convert.ToInt32 (Int32.MinValue.ToString ("x"), 16));
+               }
+
+               [Test]
+               public void ToUInt32_Base10_MaxValue ()
+               {
+                       Assert.AreEqual (UInt32.MaxValue, Convert.ToUInt32 (UInt32.MaxValue.ToString (), 10));
+               }
+
+               [Test]
+               [ExpectedException (typeof (OverflowException))]
+               public void ToUInt32_Base10_MaxValueOverflow ()
+               {
+                       Convert.ToUInt32 (UInt32.MaxValue.ToString () + "0", 10);
+               }
+
+               [Test]
+               [ExpectedException (typeof (OverflowException))]
+               public void ToUInt32_Base10_MaxValueOverflow2 ()
+               {
+                       Convert.ToUInt32 ("4933891728", 10);
+               }
+
+               [Test]
+               public void ToUInt32_Base16_MaxValue ()
+               {
+                       Assert.AreEqual (UInt32.MaxValue, Convert.ToUInt32 (UInt32.MaxValue.ToString ("x"), 16));
+               }
+
+               [Test]
+               [ExpectedException (typeof (OverflowException))]
+               public void ToUInt32_Base16_MaxValueOverflow ()
+               {
+                       Convert.ToUInt32 (UInt32.MaxValue.ToString ("x") + "0", 16);
+               }
+
                [Test]
                public void ToInt64_Base10_MaxValue ()
                {
@@ -4788,7 +4877,7 @@ namespace MonoTests.System {
                [ExpectedException (typeof (OverflowException))]
                public void ToUInt64_Base16_MaxValueOverflow ()
                {
-                       Convert.ToInt64 (UInt64.MaxValue.ToString ("x") + "0", 16);
+                       Convert.ToUInt64 (UInt64.MaxValue.ToString ("x") + "0", 16);
                }
 
                [Test] // bug #481687
index 0d164f572726796081ffc23ad4054b6048f6239f..ae5a82908c861894674a758b8ba8496d5027da2a 100644 (file)
@@ -1424,6 +1424,27 @@ namespace MonoTests.System
                }
 #endif
 
+               public delegate void DoExecuteDelegate1 (C c);
+               public delegate void DoExecuteDelegate2 (C c);
+
+               [Test]
+               [ExpectedException (typeof (ArgumentException))]
+               public void DelegateCombineDifferentTypes () {
+                       var b = new B ();
+                       var del1 = new DoExecuteDelegate1 (b.DoExecute);
+                       var del2 = new DoExecuteDelegate2 (b.DoExecute);
+                       var del = Delegate.Combine (del1, del2);
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentException))]
+               public void DelegateRemoveDifferentTypes () {
+                       var b = new B ();
+                       var del1 = new DoExecuteDelegate1 (b.DoExecute);
+                       var del2 = new DoExecuteDelegate2 (b.DoExecute);
+                       var del = Delegate.Remove (del1, del2);
+               }
+
                static bool Int32D2 (int x, int y)
                {
                        return (x & y) == y; 
index b136ed1e9d1316cdc72b7577baa9cc83fba5cfda..9946568eb67f96d16fa38f8a5d22d40c755c305f 100644 (file)
@@ -49,5 +49,17 @@ namespace MonoTests.System  {
                                Assert.AreEqual (UInt64.MinValue, (ulong) pmin, "Min");
                        }
                }
+
+               [Test]
+               public void ToString () 
+               {
+                       // for 64 bits machines
+                       if (UIntPtr.Size > 4) {
+                               Assert.AreEqual (UInt64.MaxValue.ToString (), new UIntPtr (UInt64.MaxValue).ToString (), "#1");
+                       }
+                       else {
+                               Assert.AreEqual (UInt32.MaxValue.ToString (), new UIntPtr (UInt32.MaxValue).ToString (), "#2");
+                       }
+               }
        }
 }
\ No newline at end of file
index 3ebba803f7e332dd0e6d317c51a6d4629e1ff4fa..1c85d9abac643e6f5038fa7815a51c2eac5d7da7 100644 (file)
@@ -90,7 +90,6 @@ EXTRA_DISTFILES = \
 LIB_REFS = ICSharpCode.SharpZipLib System System.Core System.Xml System.Xml.Linq System.Configuration
 LIB_MCS_FLAGS = \
        /unsafe                                                           \
-       /codepage:utf8                                                    \
        /nowarn:169,164,162,168,219,618,612                               \
        /resource:../../docs/monodoc.xml,monodoc.xml                      \
        /resource:Resources/base.css,base.css                             \
index 8b93d720fa1dca32835d6eb4b0480b222eb91bac..3a3e789e0b0c9bcb29064ed565ec931016c75dac 100644 (file)
@@ -24,7 +24,7 @@ the_libdir = $(topdir)/class/lib/build/
 LOCAL_MCS_FLAGS += -lib:$(topdir)/class/lib/build -debug
 endif
 
-LOCAL_MCS_FLAGS += -d:STATIC,NO_SYMBOL_WRITER,NO_AUTHENTICODE
+LOCAL_MCS_FLAGS += -d:STATIC,NO_SYMBOL_WRITER,NO_AUTHENTICODE -r:System.Core.dll -r:System.Xml.dll
 
 ifndef NO_THREAD_ABORT
 REFERENCE_SOURCES_FLAGS += -d:MONO_FEATURE_THREAD_ABORT
index c5139d57f673c5d02f003618a9d64ccc09dcc2a1..bfba44fbb8c656079254fc346737ea8a4af5fd3e 100644 (file)
@@ -6465,7 +6465,7 @@ namespace Mono.CSharp
                        }
 
                        New n_source = source as New;
-                       if (n_source != null) {
+                       if (n_source != null && n_source.CanEmitOptimizedLocalTarget (ec)) {
                                if (!n_source.Emit (ec, this)) {
                                        if (leave_copy) {
                                                EmitLoad (ec);
@@ -7605,6 +7605,11 @@ namespace Mono.CSharp
                                ec.Emit (OpCodes.Pop);
                }
 
+               public virtual bool CanEmitOptimizedLocalTarget (EmitContext ec)
+               {
+                       return true;
+               }
+
                public override void FlowAnalysis (FlowAnalysisContext fc)
                {
                        if (arguments != null)
@@ -12137,7 +12142,7 @@ namespace Mono.CSharp
 
                public override void Emit (EmitContext ec)
                {
-                       if (method == null && TypeSpec.IsValueType (type) && initializers.Initializers.Count > 1 && ec.HasSet (BuilderContext.Options.AsyncBody) && initializers.ContainsEmitWithAwait ()) {
+                       if (!CanEmitOptimizedLocalTarget (ec)) {
                                var fe = ec.GetTemporaryField (type);
 
                                if (!Emit (ec, fe))
@@ -12225,6 +12230,13 @@ namespace Mono.CSharp
                        return true;
                }
 
+               public override bool CanEmitOptimizedLocalTarget (EmitContext ec)
+               {
+                       return !(method == null && TypeSpec.IsValueType (type) &&
+                                       initializers.Initializers.Count > 1 && ec.HasSet (BuilderContext.Options.AsyncBody) &&
+                                       initializers.ContainsEmitWithAwait ());
+               }
+
                protected override IMemoryLocation EmitAddressOf (EmitContext ec, AddressOp Mode)
                {
                        instance = base.EmitAddressOf (ec, Mode);
index cdd1d15172598491583019f1d437a8d4d7d7517d..94e9b6baf043f36d20efd23bba912a6238f3b16f 100644 (file)
@@ -901,7 +901,7 @@ namespace Mono.CSharp
 
                public override void Emit ()
                {
-                       if ((AccessorFirst.ModFlags & (Modifiers.STATIC | Modifiers.COMPILER_GENERATED)) == Modifiers.COMPILER_GENERATED && Parent.PartialContainer.HasExplicitLayout) {
+                       if ((AccessorFirst.ModFlags & (Modifiers.STATIC | Modifiers.AutoProperty)) == Modifiers.AutoProperty && Parent.PartialContainer.HasExplicitLayout) {
                                Report.Error (842, Location,
                                        "Automatically implemented property `{0}' cannot be used inside a type with an explicit StructLayout attribute",
                                        GetSignatureForError ());
diff --git a/mcs/tests/test-async-84.cs b/mcs/tests/test-async-84.cs
new file mode 100644 (file)
index 0000000..0382561
--- /dev/null
@@ -0,0 +1,35 @@
+using System;
+using System.Threading.Tasks;
+
+struct S
+{
+       public int value;
+       public string str;
+}
+
+public class Program
+{
+       async Task<S> Foo ()
+       {
+               return new S {
+                       value = 1,
+                       str = await DoAsync ()
+               };
+
+       }
+
+       static async Task<string> DoAsync ()
+       {
+               await Task.Yield ();
+               return "asdafs";
+       }
+
+       static int Main ()
+       {
+               var res = new Program ().Foo ().Result;
+               if (res.value != 1)
+                       return 1;
+
+               return 0;
+       }
+}
\ No newline at end of file
diff --git a/mcs/tests/test-expression-bodied-02.cs b/mcs/tests/test-expression-bodied-02.cs
new file mode 100644 (file)
index 0000000..f6b4976
--- /dev/null
@@ -0,0 +1,17 @@
+using System.Runtime.InteropServices;
+
+[StructLayout(LayoutKind.Explicit, Size = 8)]
+public struct Cs0842ExpressionBodyGetterBug
+{
+       [FieldOffset(0)]
+       public int DummyVariable;
+
+       public int MyGetter => 5;
+}
+
+class C
+{
+       public static void Main ()
+       {
+       }
+}
\ No newline at end of file
index 207e7375a967d6a372cc26662fbb733901c83aa0..3cc0ea315382acaa4f7e2726f79714b6d3bab297 100644 (file)
       </method>
     </type>
   </test>
+  <test name="test-async-84.cs">
+    <type name="Program">
+      <method name="System.Threading.Tasks.Task`1[S] Foo()" attrs="129">
+        <size>33</size>
+      </method>
+      <method name="System.Threading.Tasks.Task`1[System.String] DoAsync()" attrs="145">
+        <size>33</size>
+      </method>
+      <method name="Int32 Main()" attrs="145">
+        <size>46</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+    <type name="Program+&lt;Foo&gt;c__async0">
+      <method name="Void MoveNext()" attrs="486">
+        <size>204</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+    <type name="Program+&lt;DoAsync&gt;c__async1">
+      <method name="Void MoveNext()" attrs="486">
+        <size>171</size>
+      </method>
+      <method name="Void SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)" attrs="486">
+        <size>13</size>
+      </method>
+    </type>
+  </test>
   <test name="test-cls-00.cs">
     <type name="CLSCLass_6">
       <method name="Void add_Disposed(Delegate)" attrs="2182">
       </method>
     </type>
   </test>
+  <test name="test-expression-bodied-02.cs">
+    <type name="Cs0842ExpressionBodyGetterBug">
+      <method name="Int32 get_MyGetter()" attrs="2182">
+        <size>9</size>
+      </method>
+    </type>
+    <type name="C">
+      <method name="Void Main()" attrs="150">
+        <size>2</size>
+      </method>
+      <method name="Void .ctor()" attrs="6278">
+        <size>7</size>
+      </method>
+    </type>
+  </test>
   <test name="test-externalias-01.cs">
     <type name="Test">
       <method name="Int32 Main()" attrs="150">
index 77d12b383c298b9cb5ee86d2216ec778a86046f3..a39c748e5e6c5c9d0b017ff1980db73c1c0935b8 100644 (file)
@@ -2,6 +2,8 @@ thisdir = tools/browsercaps-updater
 SUBDIRS = 
 include ../../build/rules.make
 
+LOCAL_MCS_FLAGS = -r:System.dll
+
 PROGRAM = browsercaps-updater.exe
 
 include ../../build/executable.make
index 86c53f6b01752d936d3979adf96091d030efe383..71935aebb6c5735e4dda47ec573e79eca95cc532 100644 (file)
@@ -4,6 +4,6 @@ include ../../build/rules.make
 
 PROGRAM = cccheck.exe
 
-LOCAL_MCS_FLAGS = -r:Mono.CodeContracts.dll
+LOCAL_MCS_FLAGS = -r:Mono.CodeContracts.dll -r:System.dll
 
 include ../../build/executable.make
index f38de6e48908d3a22d710416b9a2155f0356f2ee..bac67d3de8ae52278bef66d29f67091d394c902c 100644 (file)
@@ -4,6 +4,6 @@ include ../../build/rules.make
 
 PROGRAM = ccrewrite.exe
 
-LOCAL_MCS_FLAGS = -r:Mono.CodeContracts.dll
+LOCAL_MCS_FLAGS = -r:Mono.CodeContracts.dll -r:System.dll -r:System.Core.dll
 
 include ../../build/executable.make
index 61066c47d673d382ba08ca00ce9e7fbf3a9fd557..93153cb19b9dbcd34613f62ff8565663e92e37e8 100644 (file)
@@ -3,7 +3,8 @@ SUBDIRS =
 include ../../build/rules.make
 
 PROGRAM = cil-stringreplacer.exe
+NO_INSTALL = yes
 
-LOCAL_MCS_FLAGS =
+LOCAL_MCS_FLAGS = -r:System.dll
 
 include ../../build/executable.make
index 31407e83607075f78b14aebf8b2f852319965593..6c3154589a67f21cc0866e0ad37de1cc393e7ef0 100644 (file)
@@ -2,6 +2,8 @@ thisdir = tools/cil-strip
 SUBDIRS =
 include ../../build/rules.make
 
+LOCAL_MCS_FLAGS = -r:System.dll
+
 PROGRAM = mono-cil-strip.exe
 
 include ../../build/executable.make
index 108940c0b1ebf61b325c71d2bbf9f23dad54dcd2..2e0ec2bc8dfc4da1721c9a7697a0eebc2be24c50 100644 (file)
@@ -5,21 +5,6 @@ include ../../build/rules.make
 PROGRAM = compiler-tester.exe
 NO_INSTALL = yes
 
-ifeq (moonlight, $(PROFILE))
-
-all-local: $(PROGRAM)
-clean-local:
-       rm -f $(PROGRAM)
-
-$(PROGRAM): $(dir $(PROGRAM))/.stamp
-$(PROGRAM): $(topdir)/class/lib/moonlight_raw/compiler-tester.exe
-       cp $< $@
-
-dist-local: dist-default
-install-local uninstall-local test-local run-test-local run-test-ondotnet-local: ; @:
-
-else
+LOCAL_MCS_FLAGS = -r:System.dll -r:System.Core.dll -r:System.Xml.dll
 
 include $(topdir)/build/executable.make
-
-endif
\ No newline at end of file
index 4b9478c045ec9640b5b97ba6f4f9c8fb1f28180c..17d843975055ef2db7672acb490f7a395f57f953 100644 (file)
@@ -43,4 +43,4 @@ clean-local:
 dist-local: dist-default
 
 mono-api-info.exe: $(APIINFO_SOURCES) ../../class/Mono.Options/Mono.Options/Options.cs
-       $(CSCOMPILE) -r:Mono.Cecil.dll -out:$@ $^
+       $(CSCOMPILE) -r:Mono.Cecil.dll -r:System.Xml.dll -r:System.Core.dll -r:System.dll -out:$@ $^
index 1d74ed5d9ab7c8aca9664e36895a05f771827fa1..7a03be5761c6aadb0b99e9f4e2711e2d8bc4d919 100644 (file)
@@ -6,7 +6,7 @@ include ../../build/rules.make
 
 // 3021: CLS attribute not needed since assembly is not CLS compliant
 NOWARNS = -nowarn:3021
-LOCAL_MCS_FLAGS = -r:$(topdir)/class/lib/$(PROFILE)/Mono.CSharp.dll -r:$(topdir)/class/lib/$(PROFILE)/Mono.Posix.dll -r:Mono.Management.dll -unsafe $(NOWARNS)
+LOCAL_MCS_FLAGS = -r:$(topdir)/class/lib/$(PROFILE)/Mono.CSharp.dll -r:$(topdir)/class/lib/$(PROFILE)/Mono.Posix.dll -r:Mono.Management.dll -r:System.dll -unsafe $(NOWARNS)
 
 PROGRAM = csharp.exe
 
index d0783dec3ecaecec317e8fda21bb63c473b7e55b..b60971e0df34eabe9d3954b6843f0f875063b41d 100644 (file)
@@ -596,6 +596,7 @@ namespace Mono.Terminal {
                                        
                        if (completions.Length == 1){
                                InsertTextAtCursor (completions [0]);
+                               HideCompletions ();
                        } else {
                                int last = -1;
 
index f16fcb9ea698d52ca8e3756fc1e89aa724a5d441..75b22b934c83c16f46c9d255ce384d5ab8b53368 100644 (file)
@@ -404,7 +404,7 @@ namespace Mono {
                static void EscapeString (TextWriter output, string s)
                {
                        foreach (var c in s){
-                               if (c > 32){
+                               if (c >= 32){
                                        output.Write (c);
                                        continue;
                                }
@@ -416,7 +416,7 @@ namespace Mono {
                                case '\b':
                                        output.Write ("\\b"); break;
                                case '\n':
-                                       output.Write ("\\n");
+                                       output.Write ("\n");
                                        break;
                                
                                case '\v':
@@ -448,7 +448,7 @@ namespace Mono {
                                output.Write ("'\\''");
                                return;
                        }
-                       if (c > 32){
+                       if (c >= 32){
                                output.Write ("'{0}'", c);
                                return;
                        }
@@ -482,7 +482,7 @@ namespace Mono {
                                break;
 
                        default:
-                               output.Write ("'\\x{0:x}", (int) c);
+                               output.Write ("'\\x{0:x}'", (int) c);
                                break;
                        }
                }
index 9e7112db79366eb512ac83f75b0544d54a6f734e..cfc68da231092773d7d28b5b1f70db7f1d977266 100644 (file)
@@ -2,7 +2,7 @@ thisdir = tools/culevel
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = 
+LOCAL_MCS_FLAGS = -r:System.dll -r:System.Xml.dll
 PROGRAM = culevel.exe
 
 CLEAN_FILES = culevel.exe culevel.exe.mdb
index d366a9da84002ac92f0898b577d911eda448270f..12869f51ecffda24935dcdf5f4e3b5c3864e982a 100644 (file)
@@ -2,7 +2,7 @@ thisdir = tools/disco
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Xml.dll -r:System.Web.Services.dll
+LOCAL_MCS_FLAGS = -r:System.Xml.dll -r:System.Web.Services.dll -r:System.dll
 PROGRAM = disco.exe
 
 include ../../build/executable.make
index dd9b37d9086254ec8c0910540c98c2346c1d3bad..13ffb114c20ae90ec83b3f38f68a7ca1c182916f 100644 (file)
@@ -2,6 +2,8 @@ thisdir = tools/ictool
 SUBDIRS =
 include ../../build/rules.make
 
+LOCAL_MCS_FLAGS = -r:System.Xml.dll
+
 PROGRAM = ictool.exe
 EXTRA_DISTFILES = ictool-config.xml
 
index 4ed6e90a14e9a27a29301f0ada8d4e7f4f6e893b..6a6cb6fb544db6637da27823b0190bfdd1174d7e 100644 (file)
@@ -5,7 +5,7 @@ include ../../build/rules.make
 PROGRAM = ikdasm.exe
 
 LOCAL_MCS_FLAGS = \
-       -d:NO_SYMBOL_WRITER /r:System.Security.dll
+       -d:NO_SYMBOL_WRITER /r:System.Security.dll /r:System.Core.dll /r:System.dll
 
 #EXTRA_DISTFILES = LICENSE
 
index 9b74a322c5682d0857f8b02e7f92e563b57c1bbf..c545a4630eb709aff273ca3c64311e0385af1189 100644 (file)
@@ -2,7 +2,7 @@ thisdir = tools/installutil
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Configuration.Install
+LOCAL_MCS_FLAGS = -r:System.Configuration.Install.dll -r:System.dll
 
 PROGRAM = installutil.exe
 
index ae9ffacb9c4649d1e9fa0290b15cec4e0520308e..d77c8ab6f73644033b12e156f2e7b0e1beadcf8c 100644 (file)
@@ -2,7 +2,7 @@ thisdir = tools/lc
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.dll
+LOCAL_MCS_FLAGS = -r:System.dll -r:System.Core.dll
 PROGRAM = lc.exe
 
 CLEAN_FILES = lc.exe lc.exe.mdb
index c8fd5ff3e33814698c7516200be52df4cbae5769..e68e7f6c39bd676345c56b3c8145120648aaf3ae 100644 (file)
@@ -4,4 +4,6 @@ include ../../build/rules.make
 
 PROGRAM = linkeranalyzer.exe
 
+LOCAL_MCS_FLAGS = /r:System.dll /r:System.Xml.dll
+
 include ../../build/executable.make
index dba8d51721acd429a9ffc07912d8287e925d20b6..f7f8721adc130c0e0e46f926ff74fe2bb3cabe26 100644 (file)
@@ -2,7 +2,7 @@ thisdir = tools/mconfig
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Xml.dll
+LOCAL_MCS_FLAGS = -r:System.Xml.dll -r:System.dll
 PROGRAM = mconfig.exe
 
 BUILT_SOURCES=Mono.MonoConfig/consts.cs
index 2e6807e4d97f4b889dd72e00b825511879d357f9..9647a44d52fdf3bc1b86f45a9b1feeba9cdf0d36 100644 (file)
@@ -5,6 +5,7 @@ include ../../build/rules.make
 PROGRAM = mdbdump.exe
 
 LOCAL_MCS_FLAGS = \
+       /r:System.Xml.dll \
        /r:Mono.Cecil.dll       \
        /r:Mono.CompilerServices.SymbolWriter.dll
 
index 33d5bddb6e00d5e34caaf65feb9c8930a398c4c2..e0432ef90a798ad6d610903a14bba6d56bc06958 100644 (file)
@@ -4,7 +4,7 @@ include ../../build/rules.make
 
 PROGRAM = mdbrebase.exe
 
-LOCAL_MCS_FLAGS = /r:Mono.CompilerServices.SymbolWriter.dll
+LOCAL_MCS_FLAGS = /r:Mono.CompilerServices.SymbolWriter.dll /r:System.dll
 
 
 include ../../build/executable.make
index 77dcbc676d8b1c3b15bc73c37f19974081b346ea..3fb309b227320e5b6d26830d56d7e35143adf14c 100644 (file)
@@ -15,7 +15,10 @@ MDOC_COMMON_FLAGS = \
        /r:System.Web.dll                                                           \
        /r:System.Xml.Linq.dll                                                      \
        /r:ICSharpCode.SharpZipLib.dll                                              \
-       /r:Mono.Cecil.dll
+       /r:Mono.Cecil.dll \
+       /r:System.dll \
+       /r:System.Xml.dll \
+       /r:System.Core.dll
 
 LOCAL_MCS_FLAGS = $(MDOC_COMMON_FLAGS) \
        /r:monodoc.dll
index faace3227d2d336246adbd3aecacf89c211d2674..0ed561caf37b49057754e9b8fc37c89b3b19c5e1 100644 (file)
@@ -80,6 +80,8 @@
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -96,6 +98,8 @@
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
index dcd252d9c5ba9afc2bb3980b9448291493e5d726..6e23ab1b43e2e3bd7f0ba188728a4c1137137464 100644 (file)
@@ -90,6 +90,8 @@
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
index 06ba0152e52c653c2dcfae3fc8cc77361b0a4b0c..4bff19d22617d61b9112dac1d52921a3fbf1dff5 100644 (file)
@@ -97,6 +97,8 @@
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
index 7874a68ee4301850d9cc6d87fc5e9d65555d21dd..b465e35003ec30678f9918e3374b741ce7329e0f 100644 (file)
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
index 46ed26d9c4dbb34dfac0e5421778d72b1082bbd3..499664142fe847f529313dbb2f35021316fcf8fa 100644 (file)
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
index 26557e70431b15004fc4e269f61e73d785fd8f71..c025e016911143d4ef72aaea62498dd1c16a35de 100644 (file)
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
index 2efedc427e76f589b69a6f6de2d784b8b597f09e..90edae2dac1fb43b39ca816155a097b2699f6399 100644 (file)
@@ -93,6 +93,8 @@
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
index d60ba907ee7cec976a67a6eb3fe46869c4f444bd..e3abdf6cfabf1fb98629ea6988b1edc15180313b 100644 (file)
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
         <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
index 2ec3c2e0fd413d38199361a2a7952229e4da6295..d40b962b4d0ba0f2a21284a57b0b0a7ec4ad4a69 100644 (file)
@@ -256,6 +256,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -272,6 +274,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -288,6 +292,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -304,6 +310,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -320,6 +328,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -336,6 +346,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -352,6 +364,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -365,11 +379,28 @@ class Example {
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
             <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
             <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -386,6 +417,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -471,6 +504,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -487,6 +522,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -503,6 +540,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -519,6 +558,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -535,6 +576,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -551,6 +594,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -567,6 +612,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -580,11 +627,28 @@ class Example {
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
             <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
             <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -601,6 +665,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -1002,6 +1068,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -1018,6 +1086,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -1034,6 +1104,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -1050,6 +1122,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -1066,6 +1140,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -1082,6 +1158,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -1098,6 +1176,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -1111,11 +1191,28 @@ class Example {
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
             <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
             <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -1132,6 +1229,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -1152,6 +1251,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -1168,6 +1269,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -1184,6 +1287,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -1200,6 +1305,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -1216,6 +1323,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -1232,6 +1341,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -1248,6 +1359,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -1261,11 +1374,28 @@ class Example {
           <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
           <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
             <exception cref="T:System.MulticastNotSupportedException">To be added; from:
-          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" /></exception>
+          <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
+          <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
+          <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
+          <see cref="M:System.String.Format(System.String,System.Object[])" />,
+          <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.String.get_Chars(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char*,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.Append(System.Char,System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
+          <see cref="M:System.Text.StringBuilder.ExpandByABlock(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.FormatError" />,
+          <see cref="M:System.Text.StringBuilder.set_Length(System.Int32)" />,
+          <see cref="M:System.Text.StringBuilder.ThreadSafeCopy(System.Char*,System.Char[],System.Int32,System.Int32)" />,
+          <see cref="M:System.Type.GetGenericParameterConstraints" /></exception>
             <exception cref="T:System.OutOfMemoryException">To be added; from:
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
@@ -1282,6 +1412,8 @@ class Example {
           <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)" />,
           <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)" />,
           <see cref="M:System.Array.CreateArrayTypeMismatchException" />,
+          <see cref="M:System.Delegate.Combine(System.Delegate,System.Delegate)" />,
+          <see cref="M:System.Delegate.CombineImpl(System.Delegate)" />,
           <see cref="M:System.Delegate.Remove(System.Delegate,System.Delegate)" />,
           <see cref="M:System.String.Format(System.String,System.Object[])" />,
           <see cref="M:System.String.FormatHelper(System.IFormatProvider,System.String,System.ParamsArray)" />,
index 7c543f4beacf2f88a9ac3bc2023e465092830a6b..44620aacd1fef6eedb2d430e917e391cbb334099 100644 (file)
@@ -10,7 +10,7 @@ RESOURCE_FILES = $(OTHER_RES)
 
 LOCAL_MCS_FLAGS= $(OTHER_RES:%=-resource:%)
 
-LOCAL_MCS_FLAGS += -d:STATIC,NO_SYMBOL_WRITER,NO_AUTHENTICODE
+LOCAL_MCS_FLAGS += -d:STATIC,NO_SYMBOL_WRITER,NO_AUTHENTICODE -r:System.Xml.dll -r:System.dll
 
 EXTRA_DISTFILES = $(RESOURCE_FILES)
 
index 4029c28a44bf54b405f99abaa588c8db72cfc5e3..7e8331eb46acbb1864fa0614bd835a1b7656c49b 100644 (file)
@@ -6,7 +6,7 @@ PROGRAM = mono-service.exe
 
 include ../../build/executable.make
 
-LOCAL_MCS_FLAGS = -r:System.ServiceProcess.dll -r:Mono.Posix.dll -unsafe
+LOCAL_MCS_FLAGS = -r:System.ServiceProcess.dll -r:Mono.Posix.dll -r:System.dll -unsafe
 
 # Copied from library.make
 
index f63dafc218f7deeb502104fff212fc2f549293a1..e4e4b557eb431584db275f77fa28bba95f6f1a34 100644 (file)
@@ -2,7 +2,7 @@ thisdir = tools/mono-shlib-cop
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:Mono.Posix.dll
+LOCAL_MCS_FLAGS = -r:Mono.Posix.dll -r:System.dll -r:System.Xml.dll
 
 PROGRAM = mono-shlib-cop.exe
 
index a4295fbcbc62ad4254c07affec2e307bca17aeb7..35cdfd88a39e21ee4d503c0316bbc2c31577d1a7 100644 (file)
@@ -7,7 +7,9 @@ PROGRAM = mono-symbolicate.exe
 LOCAL_MCS_FLAGS = \
        /r:Mono.Cecil.dll       \
        /r:Mono.CompilerServices.SymbolWriter.dll \
-       /r:System.Xml
+       /r:System.Xml.dll \
+       /r:System.Core.dll \
+       /r:System.dll
 
 include ../../build/executable.make
 
index 36bee61e1c3b3fc70b38e8ec44c07ca5e8dea0b7..85a08599fa7d107700ba39bbac25c04e7b8baa75 100644 (file)
@@ -2,7 +2,7 @@ thisdir = tools/mono-xsd
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Xml.dll -r:System.Data.dll
+LOCAL_MCS_FLAGS = -r:System.Xml.dll -r:System.Data.dll -r:System.dll
 PROGRAM = xsd.exe
 
 include ../../build/executable.make
index 52ecbbb3fb53f719e83c8f14d9518385d0a148fa..280122793695abea4a0cd10aafaa9e5633736d35 100644 (file)
@@ -3,7 +3,7 @@ SUBDIRS =
 include ../../build/rules.make
 
 PROGRAM = monop.exe
-LOCAL_MCS_FLAGS += -d:NO_AUTHENTICODE,STATIC,NO_SYMBOL_WRITER
+LOCAL_MCS_FLAGS += -d:NO_AUTHENTICODE,STATIC,NO_SYMBOL_WRITER -r:System.dll
 
 CLEAN_FILES = monop.exe monop2.exe *.mdb
 
index 720fa71facf5ab924b61f0b0fca39297ad5ddfc4..057ddabea6985815875497e7634b628b921ead29 100644 (file)
@@ -3,6 +3,8 @@ SUBDIRS =
 NO_INSTALL = 1
 include ../../build/rules.make
 
+LOCAL_MCS_FLAGS = -r:System.Xml.dll
+
 EXTRA_DISTFILES = \
        Media/*.png             \
        Media/scripts.js        \
index 0ae132b0e6a7b29067af6ad22318a1b7f98f9f5b..8de09cc43e9be603deef79feefa7a3821c0aefc3 100644 (file)
@@ -6,7 +6,9 @@ PROGRAM = pdb2mdb.exe
 
 LOCAL_MCS_FLAGS = \
        /r:Mono.Cecil.dll       \
-       /r:Mono.CompilerServices.SymbolWriter.dll
+       /r:Mono.CompilerServices.SymbolWriter.dll \
+       /r:System.Core.dll
+
 
 EXTRA_DISTFILES = LICENSE
 
index 9b1b20feeef5979efe0f15b1163bb17304f67498..117f99231d7289d325329229c49bf7e458fe0ed6 100644 (file)
@@ -6,6 +6,8 @@ PROGRAM = resgen.exe
 
 CLEAN_FILES = resgen.exe
 
+LOCAL_MCS_FLAGS = -r:System.dll -r:System.Xml.dll -r:System.Core.dll
+
 INSTALL_PROFILE := $(filter $(DEFAULT_PROFILE), $(PROFILE))
 ifndef INSTALL_PROFILE
 NO_INSTALL = yes
index ba771b51660dac6eb01f7d228211b65e14f07c5a..d75599dcee58228921d6ceb6e2e66d4f2a90114c 100644 (file)
@@ -3,7 +3,7 @@ SUBDIRS =
 DIST_ONLY_SUBDIRS = certview
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = /lib:$(topdir)/class/lib/$(PROFILE) -r:Mono.Security.dll
+LOCAL_MCS_FLAGS = /lib:$(topdir)/class/lib/$(PROFILE) -r:Mono.Security.dll -r:System.dll
 
 SECURITY_PROGRAMS = secutil.exe cert2spc.exe sn.exe makecert.exe chktrust.exe crlupdate.exe \
        signcode.exe setreg.exe certmgr.exe caspol.exe permview.exe mozroots.exe cert-sync.exe
index 489175a5c55165edf53620c81078dbd2774aec1c..bf5bd1c904e560af111c0b9f312dc980f7965fa9 100644 (file)
@@ -2,7 +2,7 @@ thisdir = tools/sgen
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Xml.dll
+LOCAL_MCS_FLAGS = -r:System.Xml.dll -r:System.dll
 PROGRAM = sgen.exe
 
 include ../../build/executable.make
index d70f5e04e30d3ef34e73565e5e9c82178e9488b0..2fccb32ad59c2b328baf0f9c6580dd532e29a446 100644 (file)
@@ -2,7 +2,7 @@ thisdir = tools/soapsuds
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Runtime.Remoting.dll
+LOCAL_MCS_FLAGS = -r:System.Runtime.Remoting.dll -r:System.dll
 PROGRAM = soapsuds.exe
 
 include ../../build/executable.make
index 5fbba9ff068c10c7858f8e62d7cba7a60493a761..cf174fe39794ccb28d2282f4c16f50d258cea44d 100644 (file)
@@ -7,7 +7,10 @@ LOCAL_MCS_FLAGS = \
        -r:System.Runtime.Serialization.dll \
        -r:System.ServiceModel.dll \
        -r:System.Web.Services.dll \
-       -r:System.Configuration.dll
+       -r:System.Configuration.dll \
+       -r:System.dll \
+       -r:System.Xml.dll
+       
 PROGRAM = svcutil.exe
 
 include ../../build/executable.make
index 38f789e4093ca73c95eb603b9b6d7b9c5d19a277..786c81885f058917cf44cce45d1416c33a07b8ea 100644 (file)
@@ -2,7 +2,7 @@ thisdir = tools/wsdl
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Xml.dll -r:System.Web.Services.dll
+LOCAL_MCS_FLAGS = -r:System.Xml.dll -r:System.Web.Services.dll -r:System.dll
 
 PROGRAM = wsdl.exe
 
index 11d44a3f031da2aa5e5deedfc916b13d007e6960..0ca5126a6d42fd4da33a7267f4956c5f57f14441 100644 (file)
@@ -5,7 +5,7 @@ NO_TESTS = yes
 
 include xbuild.make
 
-LOCAL_MCS_FLAGS = -r:$(XBUILD_FRAMEWORK) -r:$(XBUILD_UTILITIES) -r:$(XBUILD_ENGINE) -r:$(XBUILD_MSTASKS)
+LOCAL_MCS_FLAGS = -r:$(XBUILD_FRAMEWORK) -r:$(XBUILD_UTILITIES) -r:$(XBUILD_ENGINE) -r:$(XBUILD_MSTASKS) -r:System.dll -r:System.Core.dll
 PROGRAM = xbuild.exe
 
 include ../../build/executable.make
index bac7e8749989225afd4371dc853b4ee6a64d3303..b751134d7045aa6a2cae4e3fc3ba186fedbd66c1 100644 (file)
@@ -3733,9 +3733,14 @@ add_drive_string (guint32 len, gunichar2 *buf, LinuxMountInfoParseState *state)
 
        if (state->fsname_index == 1 && state->fsname [0] == '/')
                ignore_entry = FALSE;
-       else if (state->fsname_index == 0 || memcmp ("none", state->fsname, state->fsname_index) == 0)
+       else if (memcmp ("overlay", state->fsname, state->fsname_index) == 0 ||
+               memcmp ("aufs", state->fstype, state->fstype_index) == 0) {
+               /* Don't ignore overlayfs and aufs - these might be used on Docker
+                * (https://bugzilla.xamarin.com/show_bug.cgi?id=31021) */
+               ignore_entry = FALSE;
+       } else if (state->fsname_index == 0 || memcmp ("none", state->fsname, state->fsname_index) == 0) {
                ignore_entry = TRUE;
-       else if (state->fstype_index >= 5 && memcmp ("fuse.", state->fstype, 5) == 0) {
+       else if (state->fstype_index >= 5 && memcmp ("fuse.", state->fstype, 5) == 0) {
                /* Ignore GNOME's gvfs */
                if (state->fstype_index == 21 && memcmp ("fuse.gvfs-fuse-daemon", state->fstype, state->fstype_index) == 0)
                        ignore_entry = TRUE;
index db17fabc1b2c803912aebf33938fc99b3f45dba9..275bcbb234309c1498d30ac3a283022c84b8a951 100644 (file)
 #include <mach-o/dyld.h>
 #endif
 
-/* AssemblyVersionMap: an assembly name and the assembly version set on which it is based */
+/* AssemblyVersionMap: an assembly name, the assembly version set on which it is based, the assembly name it is replaced with and whether only versions lower than the current runtime version should be remapped */
 typedef struct  {
        const char* assembly_name;
        guint8 version_set_index;
+       const char* new_assembly_name;
+       gboolean only_lower_versions;
 } AssemblyVersionMap;
 
 /* the default search path is empty, the first slot is replaced with the computed value */
@@ -89,8 +91,12 @@ static const AssemblyVersionMap framework_assemblies [] = {
        {"I18N.Other", 0},
        {"I18N.Rare", 0},
        {"I18N.West", 0},
-       {"Microsoft.Build.Engine", 2},
-       {"Microsoft.Build.Framework", 2},
+       {"Microsoft.Build.Engine", 2, NULL, TRUE},
+       {"Microsoft.Build.Framework", 2, NULL, TRUE},
+       {"Microsoft.Build.Tasks", 2, "Microsoft.Build.Tasks.v4.0"},
+       {"Microsoft.Build.Tasks.v3.5", 2, "Microsoft.Build.Tasks.v4.0"},
+       {"Microsoft.Build.Utilities", 2, "Microsoft.Build.Utilities.v4.0"},
+       {"Microsoft.Build.Utilities.v3.5", 2, "Microsoft.Build.Utilities.v4.0"},
        {"Microsoft.VisualBasic", 1},
        {"Microsoft.VisualC", 1},
        {"Mono.Cairo", 0},
@@ -1016,13 +1022,10 @@ mono_assembly_remap_version (MonoAssemblyName *aname, MonoAssemblyName *dest_ana
                        if (aname->major == vset->major && aname->minor == vset->minor &&
                                aname->build == vset->build && aname->revision == vset->revision)
                                return aname;
-
-                       if (compare_versions (vset, aname) < 0) {
-                               // requested version is newer than current
-                               // runtime version, don't remap
-                               return aname;
-                       }
                
+                       if (framework_assemblies[pos].only_lower_versions && compare_versions ((AssemblyVersionSet*)vset, aname) < 0)
+                               return aname;
+
                        if ((aname->major | aname->minor | aname->build | aname->revision) != 0)
                                mono_trace (G_LOG_LEVEL_WARNING, MONO_TRACE_ASSEMBLY,
                                        "The request to load the assembly %s v%d.%d.%d.%d was remapped to v%d.%d.%d.%d",
@@ -1036,6 +1039,13 @@ mono_assembly_remap_version (MonoAssemblyName *aname, MonoAssemblyName *dest_ana
                        dest_aname->minor = vset->minor;
                        dest_aname->build = vset->build;
                        dest_aname->revision = vset->revision;
+                       if (framework_assemblies[pos].new_assembly_name != NULL) {
+                               dest_aname->name = framework_assemblies[pos].new_assembly_name;
+                               mono_trace (G_LOG_LEVEL_WARNING, MONO_TRACE_ASSEMBLY,
+                                                       "The assembly name %s was remapped to %s",
+                                                       aname->name,
+                                                       dest_aname->name);
+                       }
                        return dest_aname;
                } else if (res < 0) {
                        last = pos - 1;
@@ -2673,8 +2683,9 @@ mono_assembly_load_publisher_policy (MonoAssemblyName *aname)
 
        if (strstr (aname->name, ".dll")) {
                len = strlen (aname->name) - 4;
-               name = (gchar *)g_malloc (len);
+               name = (gchar *)g_malloc (len + 1);
                strncpy (name, aname->name, len);
+               name[len] = 0;
        } else
                name = g_strdup (aname->name);
        
@@ -2984,8 +2995,9 @@ mono_assembly_load_from_gac (MonoAssemblyName *aname,  gchar *filename, MonoImag
 
        if (strstr (aname->name, ".dll")) {
                len = strlen (filename) - 4;
-               name = (gchar *)g_malloc (len);
+               name = (gchar *)g_malloc (len + 1);
                strncpy (name, aname->name, len);
+               name[len] = 0;
        } else {
                name = g_strdup (aname->name);
        }
index 47a02d28d68007a179db132217248ecda08d09ec..68702706b533ca9d878797a0012d0705ea485595 100644 (file)
@@ -553,7 +553,7 @@ ICALL(FILEDI_2, "get_marshal_info", ves_icall_System_Reflection_FieldInfo_get_ma
 ICALL(FILEDI_3, "internal_from_handle_type", ves_icall_System_Reflection_FieldInfo_internal_from_handle_type)
 
 ICALL_TYPE(MEMBERI, "System.Reflection.MemberInfo", MEMBERI_1)
-ICALL(MEMBERI_1, "get_MetadataToken", mono_reflection_get_token)
+ICALL(MEMBERI_1, "get_MetadataToken", ves_icall_reflection_get_token)
 
 ICALL_TYPE(MBASE, "System.Reflection.MethodBase", MBASE_1)
 ICALL(MBASE_1, "GetCurrentMethod", ves_icall_GetCurrentMethod)
@@ -574,7 +574,7 @@ ICALL(MODULE_9, "ResolveMethodToken", ves_icall_System_Reflection_Module_Resolve
 ICALL(MODULE_10, "ResolveSignature", ves_icall_System_Reflection_Module_ResolveSignature)
 ICALL(MODULE_11, "ResolveStringToken", ves_icall_System_Reflection_Module_ResolveStringToken)
 ICALL(MODULE_12, "ResolveTypeToken", ves_icall_System_Reflection_Module_ResolveTypeToken)
-ICALL(MODULE_13, "get_MetadataToken", mono_reflection_get_token)
+ICALL(MODULE_13, "get_MetadataToken", ves_icall_reflection_get_token)
 
 ICALL_TYPE(MCMETH, "System.Reflection.MonoCMethod", MCMETH_1)
 ICALL(MCMETH_1, "GetGenericMethodDefinition_impl", ves_icall_MonoMethod_GetGenericMethodDefinition)
@@ -620,7 +620,7 @@ ICALL(MPROPI_3, "get_default_value", property_info_get_default_value)
 ICALL(MPROPI_2, "get_property_info", ves_icall_MonoPropertyInfo_get_property_info)
 
 ICALL_TYPE(PARAMI, "System.Reflection.ParameterInfo", PARAMI_1)
-ICALL(PARAMI_1, "GetMetadataToken", mono_reflection_get_token)
+ICALL(PARAMI_1, "GetMetadataToken", ves_icall_reflection_get_token)
 ICALL(PARAMI_2, "GetTypeModifiers", ves_icall_ParameterInfo_GetTypeModifiers)
 
 ICALL_TYPE(RTFIELD, "System.Reflection.RtFieldInfo", RTFIELD_1)
@@ -771,7 +771,7 @@ ICALL(RTH_3, "GetAttributes", ves_icall_RuntimeTypeHandle_GetAttributes)
 ICALL(RTH_4, "GetBaseType", ves_icall_RuntimeTypeHandle_GetBaseType)
 ICALL(RTH_5, "GetElementType", ves_icall_RuntimeTypeHandle_GetElementType)
 ICALL(RTH_6, "GetGenericTypeDefinition_impl", ves_icall_RuntimeTypeHandle_GetGenericTypeDefinition_impl)
-ICALL(RTH_7, "GetMetadataToken", ves_icall_RuntimeTypeHandle_GetMetadataToken)
+ICALL(RTH_7, "GetMetadataToken", ves_icall_reflection_get_token)
 ICALL(RTH_8, "GetModule", ves_icall_RuntimeTypeHandle_GetModule)
 ICALL(RTH_9, "HasInstantiation", ves_icall_RuntimeTypeHandle_HasInstantiation)
 ICALL(RTH_10, "IsArray", ves_icall_RuntimeTypeHandle_IsArray)
index c6addd8c730c6e332da984607377a8dce39431c9..4f4a90e6684a35207c236b580fd804addd1136b4 100644 (file)
@@ -1364,15 +1364,19 @@ type_from_parsed_name (MonoTypeNameParse *info, MonoBoolean ignoreCase, MonoErro
 
        if (assembly) {
                /* When loading from the current assembly, AppDomain.TypeResolve will not be called yet */
-               type = mono_reflection_get_type (assembly->image, info, ignoreCase, &type_resolve);
+               type = mono_reflection_get_type_checked (assembly->image, info, ignoreCase, &type_resolve, error);
+               return_val_if_nok (error, NULL);
        }
 
-       if (!info->assembly.name && !type) /* try mscorlib */
-               type = mono_reflection_get_type (NULL, info, ignoreCase, &type_resolve);
-
+       if (!info->assembly.name && !type) {
+               /* try mscorlib */
+               type = mono_reflection_get_type_checked (NULL, info, ignoreCase, &type_resolve, error);
+               return_val_if_nok (error, NULL);
+       }
        if (assembly && !type && type_resolve) {
                type_resolve = FALSE; /* This will invoke TypeResolve if not done in the first 'if' */
-               type = mono_reflection_get_type (assembly->image, info, ignoreCase, &type_resolve);
+               type = mono_reflection_get_type_checked (assembly->image, info, ignoreCase, &type_resolve, error);
+               return_val_if_nok (error, NULL);
        }
 
        if (!type) 
@@ -2473,9 +2477,12 @@ ves_icall_RuntimeTypeHandle_IsComObject (MonoReflectionType *type)
 }
 
 ICALL_EXPORT guint32
-ves_icall_RuntimeTypeHandle_GetMetadataToken (MonoReflectionType *obj)
+ves_icall_reflection_get_token (MonoObject* obj)
 {
-       return mono_reflection_get_token ((MonoObject*)obj);
+       MonoError error;
+       guint32 result = mono_reflection_get_token_checked (obj, &error);
+       mono_error_set_pending_exception (&error);
+       return result;
 }
 
 ICALL_EXPORT MonoReflectionModule*
@@ -4394,9 +4401,15 @@ ves_icall_System_Reflection_Assembly_InternalGetType (MonoReflectionAssembly *as
        }
 
        if (module != NULL) {
-               if (module->image)
-                       type = mono_reflection_get_type (module->image, &info, ignoreCase, &type_resolve);
-               else
+               if (module->image) {
+                       type = mono_reflection_get_type_checked (module->image, &info, ignoreCase, &type_resolve, &error);
+                       if (!is_ok (&error)) {
+                               g_free (str);
+                               mono_reflection_free_type_info (&info);
+                               mono_error_set_pending_exception (&error);
+                               return NULL;
+                       }
+               } else
                        type = NULL;
        }
        else
@@ -4409,7 +4422,13 @@ ves_icall_System_Reflection_Assembly_InternalGetType (MonoReflectionAssembly *as
                        if (abuilder->modules) {
                                for (i = 0; i < mono_array_length (abuilder->modules); ++i) {
                                        MonoReflectionModuleBuilder *mb = mono_array_get (abuilder->modules, MonoReflectionModuleBuilder*, i);
-                                       type = mono_reflection_get_type (&mb->dynamic_image->image, &info, ignoreCase, &type_resolve);
+                                       type = mono_reflection_get_type_checked (&mb->dynamic_image->image, &info, ignoreCase, &type_resolve, &error);
+                                       if (!is_ok (&error)) {
+                                               g_free (str);
+                                               mono_reflection_free_type_info (&info);
+                                               mono_error_set_pending_exception (&error);
+                                               return NULL;
+                                       }
                                        if (type)
                                                break;
                                }
@@ -4418,14 +4437,27 @@ ves_icall_System_Reflection_Assembly_InternalGetType (MonoReflectionAssembly *as
                        if (!type && abuilder->loaded_modules) {
                                for (i = 0; i < mono_array_length (abuilder->loaded_modules); ++i) {
                                        MonoReflectionModule *mod = mono_array_get (abuilder->loaded_modules, MonoReflectionModule*, i);
-                                       type = mono_reflection_get_type (mod->image, &info, ignoreCase, &type_resolve);
+                                       type = mono_reflection_get_type_checked (mod->image, &info, ignoreCase, &type_resolve, &error);
+                                       if (!is_ok (&error)) {
+                                               g_free (str);
+                                               mono_reflection_free_type_info (&info);
+                                               mono_error_set_pending_exception (&error);
+                                               return NULL;
+                                       }
                                        if (type)
                                                break;
                                }
                        }
                }
-               else
-                       type = mono_reflection_get_type (assembly->assembly->image, &info, ignoreCase, &type_resolve);
+               else {
+                       type = mono_reflection_get_type_checked (assembly->assembly->image, &info, ignoreCase, &type_resolve, &error);
+                       if (!is_ok (&error)) {
+                               g_free (str);
+                               mono_reflection_free_type_info (&info);
+                               mono_error_set_pending_exception (&error);
+                               return NULL;
+                       }
+               }
        g_free (str);
        mono_reflection_free_type_info (&info);
        if (!type) {
@@ -4465,7 +4497,7 @@ ves_icall_System_Reflection_Assembly_InternalGetType (MonoReflectionAssembly *as
 
        /* g_print ("got it\n"); */
        ret = mono_type_get_object_checked (mono_object_domain (assembly), type, &error);
-       mono_error_raise_exception (&error);
+       mono_error_set_pending_exception (&error);
 
        return ret;
 }
@@ -5103,7 +5135,10 @@ ves_icall_System_Reflection_MethodBase_GetMethodFromHandleInternalType (MonoMeth
 ICALL_EXPORT MonoReflectionMethodBody*
 ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal (MonoMethod *method)
 {
-       return mono_method_body_get_object (mono_domain_get (), method);
+       MonoError error;
+       MonoReflectionMethodBody *result = mono_method_body_get_object_checked (mono_domain_get (), method, &error);
+       mono_error_set_pending_exception (&error);
+       return result;
 }
 
 ICALL_EXPORT MonoReflectionAssembly*
index e9aab32a48d4484e8de91a09909d2772561e6fc2..2eba9e86d4bc38ba7efe34478ea6630b2e6889ac 100644 (file)
@@ -285,8 +285,8 @@ dllmap_start (gpointer user_data,
                                        char *result;
                                        
                                        result = (char *)g_malloc (libdir_len-strlen("$mono_libdir")+strlen(attribute_values[i])+1);
-                                       strncpy (result, attribute_names[i], p-attribute_values[i]);
-                                       strcat (result, libdir);
+                                       strncpy (result, attribute_values[i], p-attribute_values[i]);
+                                       strcpy (result+(p-attribute_values[i]), libdir);
                                        strcat (result, p+strlen("$mono_libdir"));
                                        info->target = result;
                                } else 
index fad3fb214f58a00669c613ea9c70afdf469a9a61..af5ba0afdb0b0a6420e1f309712fb928d04cf811 100644 (file)
@@ -8,9 +8,16 @@
 #include <mono/utils/mono-compiler.h>
 #include <mono/utils/mono-error.h>
 
+MonoType*
+mono_reflection_get_type_checked (MonoImage* image, MonoTypeNameParse *info, mono_bool ignorecase, mono_bool *type_resolve, MonoError *error);
+
 MonoType*
 mono_reflection_type_from_name_checked (char *name, MonoImage *image, MonoError *error);
 
+guint32
+mono_reflection_get_token_checked (MonoObject *obj, MonoError *error);
+
+
 MonoObject*
 mono_custom_attrs_get_attr_checked (MonoCustomAttrInfo *ainfo, MonoClass *attr_klass, MonoError *error);
 
@@ -68,4 +75,8 @@ mono_module_get_object_checked (MonoDomain *domain, MonoImage *image, MonoError
 MonoReflectionModule*
 mono_module_file_get_object_checked (MonoDomain *domain, MonoImage *image, int table_index, MonoError *error);
 
+MonoReflectionMethodBody*
+mono_method_body_get_object_checked (MonoDomain *domain, MonoMethod *method, MonoError *error);
+
+
 #endif /* __MONO_METADATA_REFLECTION_INTERNALS_H__ */
index 1d493102f95a40c163e123c14b31cafb4e359547..a3ea522b1cf5e1cccdccde76bbd134070ae6fe9f 100644 (file)
@@ -7772,18 +7772,39 @@ MonoReflectionMethodBody*
 mono_method_body_get_object (MonoDomain *domain, MonoMethod *method)
 {
        MonoError error;
+       MonoReflectionMethodBody *result = mono_method_body_get_object_checked (domain, method, &error);
+       mono_error_cleanup (&error); /* FIXME new API that doesn't swallow the error */
+       return result;
+}
+
+/**
+ * mono_method_body_get_object_checked:
+ * @domain: an app domain
+ * @method: a method
+ * @error: set on error
+ *
+ * Return an System.Reflection.MethodBody object representing the
+ * method @method.  On failure, returns NULL and sets @error.
+ */
+MonoReflectionMethodBody*
+mono_method_body_get_object_checked (MonoDomain *domain, MonoMethod *method, MonoError *error)
+{
        MonoReflectionMethodBody *ret;
        MonoMethodHeader *header;
        MonoImage *image;
        MonoReflectionType *rt;
        guint32 method_rva, local_var_sig_token;
-    char *ptr;
+       char *ptr;
        unsigned char format, flags;
        int i;
 
+       mono_error_init (error);
+
        /* for compatibility with .net */
-    if (method_is_dynamic (method))
-        mono_raise_exception (mono_get_exception_invalid_operation (NULL));
+       if (method_is_dynamic (method)) {
+               mono_error_set_exception_instance (error, mono_get_exception_invalid_operation (NULL));
+               return NULL;
+       }
 
        CHECK_OBJECT (MonoReflectionMethodBody *, method, NULL);
 
@@ -7795,8 +7816,8 @@ mono_method_body_get_object (MonoDomain *domain, MonoMethod *method)
                return NULL;
 
        image = method->klass->image;
-       header = mono_method_get_header_checked (method, &error);
-       mono_error_raise_exception (&error); /* FIXME don't raise here */
+       header = mono_method_get_header_checked (method, error);
+       return_val_if_nok (error, NULL);
 
        if (!image_is_dynamic (image)) {
                /* Obtain local vars signature token */
@@ -7820,8 +7841,8 @@ mono_method_body_get_object (MonoDomain *domain, MonoMethod *method)
        } else
                local_var_sig_token = 0; //FIXME
 
-       ret = (MonoReflectionMethodBody*)mono_object_new_checked (domain, mono_class_get_method_body_class (), &error);
-       mono_error_raise_exception (&error); /* FIXME don't raise here */
+       ret = (MonoReflectionMethodBody*)mono_object_new_checked (domain, mono_class_get_method_body_class (), error);
+       return_val_if_nok (error, NULL);
 
        ret->init_locals = header->init_locals;
        ret->max_stack = header->max_stack;
@@ -7832,11 +7853,11 @@ mono_method_body_get_object (MonoDomain *domain, MonoMethod *method)
        /* Locals */
        MONO_OBJECT_SETREF (ret, locals, mono_array_new_cached (domain, mono_class_get_local_variable_info_class (), header->num_locals));
        for (i = 0; i < header->num_locals; ++i) {
-               MonoReflectionLocalVariableInfo *info = (MonoReflectionLocalVariableInfo*)mono_object_new_checked (domain, mono_class_get_local_variable_info_class (), &error);
-               mono_error_raise_exception (&error); /* FIXME don't raise here */
+               MonoReflectionLocalVariableInfo *info = (MonoReflectionLocalVariableInfo*)mono_object_new_checked (domain, mono_class_get_local_variable_info_class (), error);
+               return_val_if_nok (error, NULL);
 
-               rt = mono_type_get_object_checked (domain, header->locals [i], &error);
-               mono_error_raise_exception (&error); /* FIXME don't raise here */
+               rt = mono_type_get_object_checked (domain, header->locals [i], error);
+               return_val_if_nok (error, NULL);
 
                MONO_OBJECT_SETREF (info, local_type, rt);
 
@@ -7848,8 +7869,8 @@ mono_method_body_get_object (MonoDomain *domain, MonoMethod *method)
        /* Exceptions */
        MONO_OBJECT_SETREF (ret, clauses, mono_array_new_cached (domain, mono_class_get_exception_handling_clause_class (), header->num_clauses));
        for (i = 0; i < header->num_clauses; ++i) {
-               MonoReflectionExceptionHandlingClause *info = (MonoReflectionExceptionHandlingClause*)mono_object_new_checked (domain, mono_class_get_exception_handling_clause_class (), &error);
-               mono_error_raise_exception (&error); /* FIXME don't raise here */
+               MonoReflectionExceptionHandlingClause *info = (MonoReflectionExceptionHandlingClause*)mono_object_new_checked (domain, mono_class_get_exception_handling_clause_class (), error);
+               return_val_if_nok (error, NULL);
                MonoExceptionClause *clause = &header->clauses [i];
 
                info->flags = clause->flags;
@@ -7860,8 +7881,8 @@ mono_method_body_get_object (MonoDomain *domain, MonoMethod *method)
                if (clause->flags == MONO_EXCEPTION_CLAUSE_FILTER)
                        info->filter_offset = clause->data.filter_offset;
                else if (clause->data.catch_class) {
-                       rt = mono_type_get_object_checked (mono_domain_get (), &clause->data.catch_class->byval_arg, &error);
-                       mono_error_raise_exception (&error); /* FIXME don't raise here */
+                       rt = mono_type_get_object_checked (mono_domain_get (), &clause->data.catch_class->byval_arg, error);
+                       return_val_if_nok (error, NULL);
 
                        MONO_OBJECT_SETREF (info, catch_type, rt);
                }
@@ -8589,11 +8610,29 @@ mono_reflection_get_type_internal (MonoImage *rootimage, MonoImage* image, MonoT
 MonoType*
 mono_reflection_get_type (MonoImage* image, MonoTypeNameParse *info, gboolean ignorecase, gboolean *type_resolve) {
        MonoError error;
-       MonoType *result = mono_reflection_get_type_with_rootimage(image, image, info, ignorecase, type_resolve, &error);
-       mono_error_raise_exception (&error); /* FIXME don't raise here */
+       MonoType *result = mono_reflection_get_type_with_rootimage (image, image, info, ignorecase, type_resolve, &error);
+       mono_error_cleanup (&error);
        return result;
 }
 
+/**
+ * mono_reflection_get_type_checked:
+ * @image: a metadata context
+ * @info: type description structure
+ * @ignorecase: flag for case-insensitive string compares
+ * @type_resolve: whenever type resolve was already tried
+ * @error: set on error.
+ *
+ * Build a MonoType from the type description in @info. On failure returns NULL and sets @error.
+ *
+ */
+MonoType*
+mono_reflection_get_type_checked (MonoImage* image, MonoTypeNameParse *info, gboolean ignorecase, gboolean *type_resolve, MonoError *error) {
+       mono_error_init (error);
+       return mono_reflection_get_type_with_rootimage (image, image, info, ignorecase, type_resolve, error);
+}
+
+
 static MonoType*
 mono_reflection_get_type_internal_dynamic (MonoImage *rootimage, MonoAssembly *assembly, MonoTypeNameParse *info, gboolean ignorecase, MonoError *error)
 {
@@ -8779,9 +8818,27 @@ guint32
 mono_reflection_get_token (MonoObject *obj)
 {
        MonoError error;
+       guint32 result = mono_reflection_get_token_checked (obj, &error);
+       mono_error_assert_ok (&error);
+       return result;
+}
+
+/**
+ * mono_reflection_get_token_checked:
+ * @obj: the object
+ * @error: set on error
+ *
+ *   Return the metadata token of @obj which should be an object
+ * representing a metadata element.  On failure sets @error.
+ */
+guint32
+mono_reflection_get_token_checked (MonoObject *obj, MonoError *error)
+{
        MonoClass *klass;
        guint32 token = 0;
 
+       mono_error_init (error);
+
        klass = obj->vtable->klass;
 
        if (strcmp (klass->name, "MethodBuilder") == 0) {
@@ -8800,11 +8857,13 @@ mono_reflection_get_token (MonoObject *obj)
                MonoReflectionTypeBuilder *tb = (MonoReflectionTypeBuilder *)obj;
                token = tb->table_idx | MONO_TOKEN_TYPE_DEF;
        } else if (strcmp (klass->name, "MonoType") == 0) {
-               MonoType *type = mono_reflection_type_get_handle ((MonoReflectionType*)obj, &error);
-               mono_error_raise_exception (&error); /* FIXME don't raise here */
+               MonoType *type = mono_reflection_type_get_handle ((MonoReflectionType*)obj, error);
+               return_val_if_nok (error, 0);
                MonoClass *mc = mono_class_from_mono_type (type);
-               if (!mono_class_init (mc))
-                       mono_raise_exception (mono_class_get_exception_for_failure (mc));
+               if (!mono_class_init (mc)) {
+                       mono_error_set_exception_instance (error, mono_class_get_exception_for_failure (mc));
+                       return 0;
+               }
 
                token = mc->type_token;
        } else if (strcmp (klass->name, "MonoCMethod") == 0 ||
@@ -8830,7 +8889,7 @@ mono_reflection_get_token (MonoObject *obj)
 
                                g_assert (field_index >= 0 && field_index < dgclass->count_fields);
                                obj = dgclass->field_objects [field_index];
-                               return mono_reflection_get_token (obj);
+                               return mono_reflection_get_token_checked (obj, error);
                        }
                }
                token = mono_class_get_field_token (f->field);
@@ -8855,10 +8914,9 @@ mono_reflection_get_token (MonoObject *obj)
        } else if (strcmp (klass->name, "Assembly") == 0 || strcmp (klass->name, "MonoAssembly") == 0) {
                token = mono_metadata_make_token (MONO_TABLE_ASSEMBLY, 1);
        } else {
-               gchar *msg = g_strdup_printf ("MetadataToken is not supported for type '%s.%s'", klass->name_space, klass->name);
-               MonoException *ex = mono_get_exception_not_implemented (msg);
-               g_free (msg);
-               mono_raise_exception (ex);
+               mono_error_set_generic_error (error, "System", "NotImplementedException",
+                                             "MetadataToken is not supported for type '%s.%s'", klass->name_space, klass->name);
+               return 0;
        }
 
        return token;
index 7c03e62b597e7b1de1d77bdf97fb91d810f62466..164cc4ae87cfe996d18bbeabdea99255c6ca867c 100644 (file)
@@ -42,10 +42,12 @@ typedef enum {
 } MonoResolveTokenError;
 
 MONO_API int           mono_reflection_parse_type (char *name, MonoTypeNameParse *info);
+MONO_RT_EXTERNAL_ONLY
 MONO_API MonoType*     mono_reflection_get_type   (MonoImage* image, MonoTypeNameParse *info, mono_bool ignorecase, mono_bool *type_resolve);
 MONO_API void          mono_reflection_free_type_info (MonoTypeNameParse *info);
 MONO_RT_EXTERNAL_ONLY
 MONO_API MonoType*     mono_reflection_type_from_name (char *name, MonoImage *image);
+MONO_RT_EXTERNAL_ONLY
 MONO_API uint32_t      mono_reflection_get_token (MonoObject *obj);
 
 MONO_RT_EXTERNAL_ONLY
@@ -66,6 +68,7 @@ MONO_API MonoReflectionEvent*    mono_event_get_object    (MonoDomain *domain, M
 /* note: this one is slightly different: we keep the whole array of params in the cache */
 MONO_RT_EXTERNAL_ONLY
 MONO_API MonoArray* mono_param_get_objects  (MonoDomain *domain, MonoMethod *method);
+MONO_RT_EXTERNAL_ONLY
 MONO_API MonoReflectionMethodBody* mono_method_body_get_object (MonoDomain *domain, MonoMethod *method);
 
 MONO_API MonoObject *mono_get_dbnull_object (MonoDomain *domain);
index 9cde3f7d592b80ee05c80ef0a3d6b68f217e9d73..68c4b9025c0a8812e183ceb1ee2611e8f41c3bb3 100644 (file)
@@ -4672,7 +4672,17 @@ mono_thread_info_get_last_managed (MonoThreadInfo *info)
        MonoJitInfo *ji = NULL;
        if (!info)
                return NULL;
+
+       /*
+        * The suspended thread might be holding runtime locks. Make sure we don't try taking
+        * any runtime locks while unwinding. In coop case we shouldn't safepoint in regions
+        * where we hold runtime locks.
+        */
+       if (!mono_threads_is_coop_enabled ())
+               mono_thread_info_set_is_async_context (TRUE);
        mono_get_eh_callbacks ()->mono_walk_stack_with_state (last_managed, mono_thread_info_get_suspend_state (info), MONO_UNWIND_SIGNAL_SAFE, &ji);
+       if (!mono_threads_is_coop_enabled ())
+               mono_thread_info_set_is_async_context (FALSE);
        return ji;
 }
 
index fe54562f57a6883a6261768783355cebc7234807..93756b108b33cb4402a0ca57601aa8b0bb9a25cc 100644 (file)
@@ -245,36 +245,36 @@ amodule_unlock (MonoAotModule *amodule)
  * load_image:
  *
  *   Load one of the images referenced by AMODULE. Returns NULL if the image is not
- * found, and sets the loader error if SET_ERROR is TRUE.
+ * found, and sets @error for what happened
  */
 static MonoImage *
-load_image (MonoAotModule *amodule, int index, gboolean set_error)
+load_image (MonoAotModule *amodule, int index, MonoError *error)
 {
        MonoAssembly *assembly;
        MonoImageOpenStatus status;
 
        g_assert (index < amodule->image_table_len);
 
+       mono_error_init (error);
+
        if (amodule->image_table [index])
                return amodule->image_table [index];
-       if (amodule->out_of_date)
+       if (amodule->out_of_date) {
+               mono_error_set_bad_image_name (error, amodule->aot_name, "Image out of date");
                return NULL;
+       }
 
        assembly = mono_assembly_load (&amodule->image_names [index], amodule->assembly->basedir, &status);
        if (!assembly) {
                mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_AOT, "AOT: module %s is unusable because dependency %s is not found.\n", amodule->aot_name, amodule->image_names [index].name);
+               mono_error_set_bad_image_name (error, amodule->aot_name, "module is unusable because dependency %s is not found (error %d).\n", amodule->image_names [index].name, status);
                amodule->out_of_date = TRUE;
-
-               if (set_error) {
-                       char *full_name = mono_stringify_assembly_name (&amodule->image_names [index]);
-                       mono_loader_set_error_assembly_load (full_name, FALSE);
-                       g_free (full_name);
-               }
                return NULL;
        }
 
        if (strcmp (assembly->image->guid, amodule->image_guids [index])) {
                mono_trace (G_LOG_LEVEL_INFO, MONO_TRACE_AOT, "AOT: module %s is unusable (GUID of dependent assembly %s doesn't match (expected '%s', got '%s').\n", amodule->aot_name, amodule->image_names [index].name, amodule->image_guids [index], assembly->image->guid);
+               mono_error_set_bad_image_name (error, amodule->aot_name, "module is unusable (GUID of dependent assembly %s doesn't match (expected '%s', got '%s').\n", amodule->image_names [index].name, amodule->image_guids [index], assembly->image->guid);
                amodule->out_of_date = TRUE;
                return NULL;
        }
@@ -356,27 +356,28 @@ mono_aot_get_offset (guint32 *table, int index)
 }
 
 static MonoMethod*
-decode_resolve_method_ref (MonoAotModule *module, guint8 *buf, guint8 **endbuf);
+decode_resolve_method_ref (MonoAotModule *module, guint8 *buf, guint8 **endbuf, MonoError *error);
 
 static MonoClass*
-decode_klass_ref (MonoAotModule *module, guint8 *buf, guint8 **endbuf);
+decode_klass_ref (MonoAotModule *module, guint8 *buf, guint8 **endbuf, MonoError *error);
 
 static MonoType*
-decode_type (MonoAotModule *module, guint8 *buf, guint8 **endbuf);
+decode_type (MonoAotModule *module, guint8 *buf, guint8 **endbuf, MonoError *error);
 
 static MonoGenericInst*
-decode_generic_inst (MonoAotModule *module, guint8 *buf, guint8 **endbuf)
+decode_generic_inst (MonoAotModule *module, guint8 *buf, guint8 **endbuf, MonoError *error)
 {
        int type_argc, i;
        MonoType **type_argv;
        MonoGenericInst *inst;
        guint8 *p = buf;
 
+       mono_error_init (error);
        type_argc = decode_value (p, &p);
        type_argv = g_new0 (MonoType*, type_argc);
 
        for (i = 0; i < type_argc; ++i) {
-               MonoClass *pclass = decode_klass_ref (module, p, &p);
+               MonoClass *pclass = decode_klass_ref (module, p, &p, error);
                if (!pclass) {
                        g_free (type_argv);
                        return NULL;
@@ -393,17 +394,18 @@ decode_generic_inst (MonoAotModule *module, guint8 *buf, guint8 **endbuf)
 }
 
 static gboolean
-decode_generic_context (MonoAotModule *module, MonoGenericContext *ctx, guint8 *buf, guint8 **endbuf)
+decode_generic_context (MonoAotModule *module, MonoGenericContext *ctx, guint8 *buf, guint8 **endbuf, MonoError *error)
 {
        guint8 *p = buf;
        guint8 *p2;
        int argc;
+       mono_error_init (error);
 
        p2 = p;
        argc = decode_value (p, &p);
        if (argc) {
                p = p2;
-               ctx->class_inst = decode_generic_inst (module, p, &p);
+               ctx->class_inst = decode_generic_inst (module, p, &p, error);
                if (!ctx->class_inst)
                        return FALSE;
        }
@@ -411,7 +413,7 @@ decode_generic_context (MonoAotModule *module, MonoGenericContext *ctx, guint8 *
        argc = decode_value (p, &p);
        if (argc) {
                p = p2;
-               ctx->method_inst = decode_generic_inst (module, p, &p);
+               ctx->method_inst = decode_generic_inst (module, p, &p, error);
                if (!ctx->method_inst)
                        return FALSE;
        }
@@ -421,63 +423,63 @@ decode_generic_context (MonoAotModule *module, MonoGenericContext *ctx, guint8 *
 }
 
 static MonoClass*
-decode_klass_ref (MonoAotModule *module, guint8 *buf, guint8 **endbuf)
+decode_klass_ref (MonoAotModule *module, guint8 *buf, guint8 **endbuf, MonoError *error)
 {
-       MonoError error;
        MonoImage *image;
        MonoClass *klass = NULL, *eklass;
        guint32 token, rank, idx;
        guint8 *p = buf;
        int reftype;
 
+       mono_error_init (error);
        reftype = decode_value (p, &p);
        if (reftype == 0) {
                *endbuf = p;
+               mono_error_set_bad_image_name (error, module->aot_name, "Decoding a null class ref");
                return NULL;
        }
 
        switch (reftype) {
        case MONO_AOT_TYPEREF_TYPEDEF_INDEX:
                idx = decode_value (p, &p);
-               image = load_image (module, 0, TRUE);
+               image = load_image (module, 0, error);
                if (!image)
                        return NULL;
-               klass = mono_class_get_checked (image, MONO_TOKEN_TYPE_DEF + idx, &error);
-               g_assert (mono_error_ok (&error));
+               klass = mono_class_get_checked (image, MONO_TOKEN_TYPE_DEF + idx, error);
                break;
        case MONO_AOT_TYPEREF_TYPEDEF_INDEX_IMAGE:
                idx = decode_value (p, &p);
-               image = load_image (module, decode_value (p, &p), TRUE);
+               image = load_image (module, decode_value (p, &p), error);
                if (!image)
                        return NULL;
-               klass = mono_class_get_checked (image, MONO_TOKEN_TYPE_DEF + idx, &error);
-               g_assert (mono_error_ok (&error));
+               klass = mono_class_get_checked (image, MONO_TOKEN_TYPE_DEF + idx, error);
                break;
        case MONO_AOT_TYPEREF_TYPESPEC_TOKEN:
                token = decode_value (p, &p);
                image = module->assembly->image;
-               if (!image)
+               if (!image) {
+                       mono_error_set_bad_image_name (error, module->aot_name, "No image associated with the aot module");
                        return NULL;
-               klass = mono_class_get_checked (image, token, &error);
-               g_assert (mono_error_ok (&error));
+               }
+               klass = mono_class_get_checked (image, token, error);
                break;
        case MONO_AOT_TYPEREF_GINST: {
-               MonoError error;
                MonoClass *gclass;
                MonoGenericContext ctx;
                MonoType *type;
 
-               gclass = decode_klass_ref (module, p, &p);
+               gclass = decode_klass_ref (module, p, &p, error);
                if (!gclass)
                        return NULL;
                g_assert (gclass->generic_container);
 
                memset (&ctx, 0, sizeof (ctx));
-               ctx.class_inst = decode_generic_inst (module, p, &p);
+               ctx.class_inst = decode_generic_inst (module, p, &p, error);
                if (!ctx.class_inst)
                        return NULL;
-               type = mono_class_inflate_generic_type_checked (&gclass->byval_arg, &ctx, &error);
-               mono_error_assert_ok (&error); /* FIXME don't swallow the error */
+               type = mono_class_inflate_generic_type_checked (&gclass->byval_arg, &ctx, error);
+               if (!type)
+                       return NULL;
                klass = mono_class_from_mono_type (type);
                mono_metadata_free_type (type);
                break;
@@ -491,11 +493,11 @@ decode_klass_ref (MonoAotModule *module, guint8 *buf, guint8 **endbuf)
                        MonoClass *par_klass;
                        MonoType *gshared_constraint;
 
-                       gshared_constraint = decode_type (module, p, &p);
+                       gshared_constraint = decode_type (module, p, &p, error);
                        if (!gshared_constraint)
                                return NULL;
 
-                       par_klass = decode_klass_ref (module, p, &p);
+                       par_klass = decode_klass_ref (module, p, &p, error);
                        if (!par_klass)
                                return NULL;
 
@@ -512,7 +514,7 @@ decode_klass_ref (MonoAotModule *module, guint8 *buf, guint8 **endbuf)
                                if (is_method) {
                                        MonoMethod *method_def;
                                        g_assert (type == MONO_TYPE_MVAR);
-                                       method_def = decode_resolve_method_ref (module, p, &p);
+                                       method_def = decode_resolve_method_ref (module, p, &p, error);
                                        if (!method_def)
                                                return NULL;
 
@@ -520,7 +522,7 @@ decode_klass_ref (MonoAotModule *module, guint8 *buf, guint8 **endbuf)
                                } else {
                                        MonoClass *class_def;
                                        g_assert (type == MONO_TYPE_VAR);
-                                       class_def = decode_klass_ref (module, p, &p);
+                                       class_def = decode_klass_ref (module, p, &p, error);
                                        if (!class_def)
                                                return NULL;
 
@@ -554,13 +556,15 @@ decode_klass_ref (MonoAotModule *module, guint8 *buf, guint8 **endbuf)
        case MONO_AOT_TYPEREF_ARRAY:
                /* Array */
                rank = decode_value (p, &p);
-               eklass = decode_klass_ref (module, p, &p);
+               eklass = decode_klass_ref (module, p, &p, error);
+               if (!eklass)
+                       return NULL;
                klass = mono_array_class_get (eklass, rank);
                break;
        case MONO_AOT_TYPEREF_PTR: {
                MonoType *t;
 
-               t = decode_type (module, p, &p);
+               t = decode_type (module, p, &p, error);
                if (!t)
                        return NULL;
                klass = mono_class_from_mono_type (t);
@@ -572,13 +576,13 @@ decode_klass_ref (MonoAotModule *module, guint8 *buf, guint8 **endbuf)
                guint8 *p2;
 
                p2 = module->blob + offset;
-               klass = decode_klass_ref (module, p2, &p2);
+               klass = decode_klass_ref (module, p2, &p2, error);
                break;
        }
        default:
-               g_assert_not_reached ();
+               mono_error_set_bad_image_name (error, module->aot_name, "Invalid klass reftype %d", reftype);
        }
-       g_assert (klass);
+       //g_assert (klass);
        //printf ("BLA: %s\n", mono_type_full_name (&klass->byval_arg));
        *endbuf = p;
        return klass;
@@ -587,12 +591,15 @@ decode_klass_ref (MonoAotModule *module, guint8 *buf, guint8 **endbuf)
 static MonoClassField*
 decode_field_info (MonoAotModule *module, guint8 *buf, guint8 **endbuf)
 {
-       MonoClass *klass = decode_klass_ref (module, buf, &buf);
+       MonoError error;
+       MonoClass *klass = decode_klass_ref (module, buf, &buf, &error);
        guint32 token;
        guint8 *p = buf;
 
-       if (!klass)
+       if (!klass) {
+               mono_error_cleanup (&error); /* FIXME don't swallow the error */
                return NULL;
+       }
 
        token = MONO_TOKEN_FIELD_DEF + decode_value (p, &p);
 
@@ -606,12 +613,13 @@ decode_field_info (MonoAotModule *module, guint8 *buf, guint8 **endbuf)
  * memory.
  */
 static MonoType*
-decode_type (MonoAotModule *module, guint8 *buf, guint8 **endbuf)
+decode_type (MonoAotModule *module, guint8 *buf, guint8 **endbuf, MonoError *error)
 {
        guint8 *p = buf;
        MonoType *t;
 
        t = (MonoType *)g_malloc0 (sizeof (MonoType));
+       mono_error_init (error);
 
        while (TRUE) {
                if (*p == MONO_TYPE_PINNED) {
@@ -650,36 +658,39 @@ decode_type (MonoAotModule *module, guint8 *buf, guint8 **endbuf)
                break;
        case MONO_TYPE_VALUETYPE:
        case MONO_TYPE_CLASS:
-               t->data.klass = decode_klass_ref (module, p, &p);
+               t->data.klass = decode_klass_ref (module, p, &p, error);
+               if (!t->data.klass)
+                       goto fail;
                break;
        case MONO_TYPE_SZARRAY:
-               t->data.klass = decode_klass_ref (module, p, &p);
+               t->data.klass = decode_klass_ref (module, p, &p, error);
 
                if (!t->data.klass)
-                       return NULL;
+                       goto fail;
                break;
        case MONO_TYPE_PTR:
-               t->data.type = decode_type (module, p, &p);
+               t->data.type = decode_type (module, p, &p, error);
+               if (!t->data.type)
+                       goto fail;
                break;
        case MONO_TYPE_GENERICINST: {
-               MonoError error;
                MonoClass *gclass;
                MonoGenericContext ctx;
                MonoType *type;
                MonoClass *klass;
 
-               gclass = decode_klass_ref (module, p, &p);
+               gclass = decode_klass_ref (module, p, &p, error);
                if (!gclass)
-                       return NULL;
+                       goto fail;
                g_assert (gclass->generic_container);
 
                memset (&ctx, 0, sizeof (ctx));
-               ctx.class_inst = decode_generic_inst (module, p, &p);
+               ctx.class_inst = decode_generic_inst (module, p, &p, error);
                if (!ctx.class_inst)
-                       return NULL;
-               type = mono_class_inflate_generic_type_checked (&gclass->byval_arg, &ctx, &error);
-               mono_error_assert_ok (&error); /* FIXME don't swallow the error */
-
+                       goto fail;
+               type = mono_class_inflate_generic_type_checked (&gclass->byval_arg, &ctx, error);
+               if (!type)
+                       goto fail;
                klass = mono_class_from_mono_type (type);
                t->data.generic_class = klass->generic_class;
                break;
@@ -690,9 +701,9 @@ decode_type (MonoAotModule *module, guint8 *buf, guint8 **endbuf)
 
                // FIXME: memory management
                array = g_new0 (MonoArrayType, 1);
-               array->eklass = decode_klass_ref (module, p, &p);
+               array->eklass = decode_klass_ref (module, p, &p, error);
                if (!array->eklass)
-                       return NULL;
+                       goto fail;
                array->rank = decode_value (p, &p);
                array->numsizes = decode_value (p, &p);
 
@@ -711,19 +722,23 @@ decode_type (MonoAotModule *module, guint8 *buf, guint8 **endbuf)
        }
        case MONO_TYPE_VAR:
        case MONO_TYPE_MVAR: {
-               MonoClass *klass = decode_klass_ref (module, p, &p);
+               MonoClass *klass = decode_klass_ref (module, p, &p, error);
                if (!klass)
-                       return NULL;
+                       goto fail;
                t->data.generic_param = klass->byval_arg.data.generic_param;
                break;
        }
        default:
-               g_assert_not_reached ();
+               mono_error_set_bad_image_name (error, module->aot_name, "Invalid encoded type %d", t->type);
+               goto fail;
        }
 
        *endbuf = p;
 
        return t;
+fail:
+       g_free (t);
+       return NULL;
 }
 
 // FIXME: Error handling, memory management
@@ -731,6 +746,7 @@ decode_type (MonoAotModule *module, guint8 *buf, guint8 **endbuf)
 static MonoMethodSignature*
 decode_signature_with_target (MonoAotModule *module, MonoMethodSignature *target, guint8 *buf, guint8 **endbuf)
 {
+       MonoError error;
        MonoMethodSignature *sig;
        guint32 flags;
        int i, gen_param_count = 0, param_count, call_conv;
@@ -756,14 +772,18 @@ decode_signature_with_target (MonoAotModule *module, MonoMethodSignature *target
        sig->explicit_this = explicit_this;
        sig->call_convention = call_conv;
        sig->generic_param_count = gen_param_count;
-       sig->ret = decode_type (module, p, &p);
+       sig->ret = decode_type (module, p, &p, &error);
+       if (!sig->ret)
+               goto fail;
        for (i = 0; i < param_count; ++i) {
                if (*p == MONO_TYPE_SENTINEL) {
                        g_assert (sig->call_convention == MONO_CALL_VARARG);
                        sig->sentinelpos = i;
                        p ++;
                }
-               sig->params [i] = decode_type (module, p, &p);
+               sig->params [i] = decode_type (module, p, &p, &error);
+               if (!sig->params [i])
+                       goto fail;
        }
 
        if (sig->call_convention == MONO_CALL_VARARG && sig->sentinelpos == -1)
@@ -772,6 +792,10 @@ decode_signature_with_target (MonoAotModule *module, MonoMethodSignature *target
        *endbuf = p;
 
        return sig;
+fail:
+       mono_error_cleanup (&error); /* FIXME don't swallow the error */
+       g_free (sig);
+       return NULL;
 }
 
 static MonoMethodSignature*
@@ -815,15 +839,18 @@ typedef struct {
  * that the method reference matches a given method. This is normally not a problem
  * as these wrappers only occur in the extra_methods table, where we already have
  * a method we want to lookup.
+ *
+ * If there was a decoding error, we return FALSE and set @error
  */
 static gboolean
-decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod *target, guint8 *buf, guint8 **endbuf)
+decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod *target, guint8 *buf, guint8 **endbuf, MonoError *error)
 {
        guint32 image_index, value;
        MonoImage *image = NULL;
        guint8 *p = buf;
 
        memset (ref, 0, sizeof (MethodRef));
+       mono_error_init (error);
 
        value = decode_value (p, &p);
        image_index = value >> 24;
@@ -835,8 +862,9 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
        }
 
        if (image_index < MONO_AOT_METHODREF_MIN || image_index == MONO_AOT_METHODREF_METHODSPEC || image_index == MONO_AOT_METHODREF_GINST) {
-               if (target && target->wrapper_type)
+               if (target && target->wrapper_type) {
                        return FALSE;
+               }
        }
 
        if (image_index == MONO_AOT_METHODREF_WRAPPER) {
@@ -854,8 +882,7 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                switch (wrapper_type) {
 #ifndef DISABLE_REMOTING
                case MONO_WRAPPER_REMOTING_INVOKE_WITH_CHECK: {
-                       MonoMethod *m = decode_resolve_method_ref (module, p, &p);
-
+                       MonoMethod *m = decode_resolve_method_ref (module, p, &p, error);
                        if (!m)
                                return FALSE;
                        mono_class_init (m->klass);
@@ -866,7 +893,7 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                        break;
                }
                case MONO_WRAPPER_PROXY_ISINST: {
-                       MonoClass *klass = decode_klass_ref (module, p, &p);
+                       MonoClass *klass = decode_klass_ref (module, p, &p, error);
                        if (!klass)
                                return FALSE;
                        ref->method = mono_marshal_get_proxy_cancast (klass);
@@ -876,7 +903,7 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                case MONO_WRAPPER_LDFLDA:
                case MONO_WRAPPER_STFLD:
                case MONO_WRAPPER_ISINST: {
-                       MonoClass *klass = decode_klass_ref (module, p, &p);
+                       MonoClass *klass = decode_klass_ref (module, p, &p, error);
                        if (!klass)
                                return FALSE;
                        if (wrapper_type == MONO_WRAPPER_LDFLD)
@@ -887,8 +914,10 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                                ref->method = mono_marshal_get_stfld_wrapper (&klass->byval_arg);
                        else if (wrapper_type == MONO_WRAPPER_ISINST)
                                ref->method = mono_marshal_get_isinst (klass);
-                       else
-                               g_assert_not_reached ();
+                       else {
+                               mono_error_set_bad_image_name (error, module->aot_name, "Unknown AOT wrapper type %d", wrapper_type);
+                               return FALSE;
+                       }
                        break;
                }
                case MONO_WRAPPER_LDFLD_REMOTE:
@@ -902,8 +931,10 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                        int atype = decode_value (p, &p);
 
                        ref->method = mono_gc_get_managed_allocator_by_type (atype, !!(mono_profiler_get_events () & MONO_PROFILE_ALLOCATIONS));
-                       if (!ref->method)
-                               g_error ("Error: No managed allocator, but we need one for AOT.\nAre you using non-standard GC options?\n");
+                       if (!ref->method) {
+                               mono_error_set_bad_image_name (error, module->aot_name, "Error: No managed allocator, but we need one for AOT.\nAre you using non-standard GC options?\n");
+                               return FALSE;
+                       }
                        break;
                }
                case MONO_WRAPPER_WRITE_BARRIER: {
@@ -935,13 +966,13 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                                        return FALSE;
                                }
                        } else {
-                               g_assert_not_reached ();
+                               mono_error_set_bad_image_name (error, module->aot_name, "Invalid STELEMREF subtype %d", subtype);
+                               return FALSE;
                        }
                        break;
                }
                case MONO_WRAPPER_SYNCHRONIZED: {
-                       MonoMethod *m = decode_resolve_method_ref (module, p, &p);
-
+                       MonoMethod *m = decode_resolve_method_ref (module, p, &p, error);
                        if (!m)
                                return FALSE;
                        ref->method = mono_marshal_get_synchronized_wrapper (m);
@@ -951,8 +982,7 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                        int subtype = decode_value (p, &p);
 
                        if (subtype == WRAPPER_SUBTYPE_PTR_TO_STRUCTURE || subtype == WRAPPER_SUBTYPE_STRUCTURE_TO_PTR) {
-                               MonoClass *klass = decode_klass_ref (module, p, &p);
-                               
+                               MonoClass *klass = decode_klass_ref (module, p, &p, error);
                                if (!klass)
                                        return FALSE;
 
@@ -971,14 +1001,12 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                                        ref->method = mono_marshal_get_struct_to_ptr (klass);
                                }
                        } else if (subtype == WRAPPER_SUBTYPE_SYNCHRONIZED_INNER) {
-                               MonoMethod *m = decode_resolve_method_ref (module, p, &p);
-
+                               MonoMethod *m = decode_resolve_method_ref (module, p, &p, error);
                                if (!m)
                                        return FALSE;
                                ref->method = mono_marshal_get_synchronized_inner_wrapper (m);
                        } else if (subtype == WRAPPER_SUBTYPE_ARRAY_ACCESSOR) {
-                               MonoMethod *m = decode_resolve_method_ref (module, p, &p);
-
+                               MonoMethod *m = decode_resolve_method_ref (module, p, &p, error);
                                if (!m)
                                        return FALSE;
                                ref->method = mono_marshal_get_array_accessor_wrapper (m);
@@ -997,7 +1025,8 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                                        return FALSE;
                                ref->method = mini_get_gsharedvt_out_sig_wrapper (sig);
                        } else {
-                               g_assert_not_reached ();
+                               mono_error_set_bad_image_name (error, module->aot_name, "Invalid UNKNOWN wrapper subtype %d", subtype);
+                               return FALSE;
                        }
                        break;
                }
@@ -1012,7 +1041,7 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                        } else if (subtype == WRAPPER_SUBTYPE_STRING_CTOR) {
                                MonoMethod *m;
 
-                               m = decode_resolve_method_ref (module, p, &p);
+                               m = decode_resolve_method_ref (module, p, &p, error);
                                if (!m)
                                        return FALSE;
 
@@ -1042,8 +1071,7 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                                        return FALSE;
                                ref->method = target;
                        } else {
-                               m = decode_resolve_method_ref (module, p, &p);
-
+                               m = decode_resolve_method_ref (module, p, &p, error);
                                if (!m)
                                        return FALSE;
 
@@ -1064,8 +1092,10 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                                ref->method = mono_marshal_get_castclass_with_cache ();
                        else if (subtype == WRAPPER_SUBTYPE_ISINST_WITH_CACHE)
                                ref->method = mono_marshal_get_isinst_with_cache ();
-                       else
-                               g_assert_not_reached ();
+                       else {
+                               mono_error_set_bad_image_name (error, module->aot_name, "Invalid CASTCLASS wrapper subtype %d", subtype);
+                               return FALSE;
+                       }
                        break;
                }
                case MONO_WRAPPER_RUNTIME_INVOKE: {
@@ -1080,15 +1110,13 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                                ref->method = target;
                        } else if (subtype == WRAPPER_SUBTYPE_RUNTIME_INVOKE_DIRECT) {
                                /* Direct wrapper */
-                               MonoMethod *m = decode_resolve_method_ref (module, p, &p);
-
+                               MonoMethod *m = decode_resolve_method_ref (module, p, &p, error);
                                if (!m)
                                        return FALSE;
                                ref->method = mono_marshal_get_runtime_invoke (m, FALSE);
                        } else if (subtype == WRAPPER_SUBTYPE_RUNTIME_INVOKE_VIRTUAL) {
                                /* Virtual direct wrapper */
-                               MonoMethod *m = decode_resolve_method_ref (module, p, &p);
-
+                               MonoMethod *m = decode_resolve_method_ref (module, p, &p, error);
                                if (!m)
                                        return FALSE;
                                ref->method = mono_marshal_get_runtime_invoke (m, TRUE);
@@ -1119,7 +1147,7 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                                MonoClass *klass;
                                MonoMethod *invoke, *wrapper;
 
-                               klass = decode_klass_ref (module, p, &p);
+                               klass = decode_klass_ref (module, p, &p, error);
                                if (!klass)
                                        return FALSE;
 
@@ -1181,10 +1209,10 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                        MonoMethod *m;
                        MonoClass *klass;
 
-                       m = decode_resolve_method_ref (module, p, &p);
+                       m = decode_resolve_method_ref (module, p, &p, error);
                        if (!m)
                                return FALSE;
-                       klass = decode_klass_ref (module, p, &p);
+                       klass = decode_klass_ref (module, p, &p, error);
                        if (!klass)
                                return FALSE;
                        ref->method = mono_marshal_get_managed_wrapper (m, klass, 0);
@@ -1197,11 +1225,10 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                image_index = decode_value (p, &p);
                ref->token = decode_value (p, &p);
 
-               image = load_image (module, image_index, TRUE);
+               image = load_image (module, image_index, error);
                if (!image)
                        return FALSE;
        } else if (image_index == MONO_AOT_METHODREF_GINST) {
-               MonoError error;
                MonoClass *klass;
                MonoGenericContext ctx;
 
@@ -1209,7 +1236,7 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                 * These methods do not have a token which resolves them, so we 
                 * resolve them immediately.
                 */
-               klass = decode_klass_ref (module, p, &p);
+               klass = decode_klass_ref (module, p, &p, error);
                if (!klass)
                        return FALSE;
 
@@ -1219,15 +1246,14 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                image_index = decode_value (p, &p);
                ref->token = decode_value (p, &p);
 
-               image = load_image (module, image_index, TRUE);
+               image = load_image (module, image_index, error);
                if (!image)
                        return FALSE;
 
-               ref->method = mono_get_method_checked (image, ref->token, NULL, NULL, &error);
-               if (!ref->method) {
-                       mono_error_cleanup (&error); /* FIXME don't swallow the error */
+               ref->method = mono_get_method_checked (image, ref->token, NULL, NULL, error);
+               if (!ref->method)
                        return FALSE;
-               }
+
 
                memset (&ctx, 0, sizeof (ctx));
 
@@ -1235,25 +1261,25 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                        ctx.class_inst = klass->generic_class->context.class_inst;
                        ctx.method_inst = NULL;
  
-                       ref->method = mono_class_inflate_generic_method_full_checked (ref->method, klass, &ctx, &error);
+                       ref->method = mono_class_inflate_generic_method_full_checked (ref->method, klass, &ctx, error);
                        if (!ref->method)
-                               g_error ("AOT runtime could not load method due to %s", mono_error_get_message (&error)); /* FIXME don't swallow the error */
+                               return FALSE;
                }                       
 
                memset (&ctx, 0, sizeof (ctx));
 
-               if (!decode_generic_context (module, &ctx, p, &p))
+               if (!decode_generic_context (module, &ctx, p, &p, error))
                        return FALSE;
 
-               ref->method = mono_class_inflate_generic_method_full_checked (ref->method, klass, &ctx, &error);
+               ref->method = mono_class_inflate_generic_method_full_checked (ref->method, klass, &ctx, error);
                if (!ref->method)
-                       g_error ("AOT runtime could not load method due to %s", mono_error_get_message (&error)); /* FIXME don't swallow the error */
+                       return FALSE;
 
        } else if (image_index == MONO_AOT_METHODREF_ARRAY) {
                MonoClass *klass;
                int method_type;
 
-               klass = decode_klass_ref (module, p, &p);
+               klass = decode_klass_ref (module, p, &p, error);
                if (!klass)
                        return FALSE;
                method_type = decode_value (p, &p);
@@ -1274,7 +1300,8 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
                        ref->method = mono_class_get_method_from_name (klass, "Set", -1);
                        break;
                default:
-                       g_assert_not_reached ();
+                       mono_error_set_bad_image_name (error, module->aot_name, "Invalid METHODREF_ARRAY method type %d", method_type);
+                       return FALSE;
                }
        } else {
                if (image_index == MONO_AOT_METHODREF_LARGE_IMAGE_INDEX) {
@@ -1284,7 +1311,7 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
 
                ref->token = MONO_TOKEN_METHOD_DEF | (value & 0xffffff);
 
-               image = load_image (module, image_index, TRUE);
+               image = load_image (module, image_index, error);
                if (!image)
                        return FALSE;
        }
@@ -1297,9 +1324,9 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod
 }
 
 static gboolean
-decode_method_ref (MonoAotModule *module, MethodRef *ref, guint8 *buf, guint8 **endbuf)
+decode_method_ref (MonoAotModule *module, MethodRef *ref, guint8 *buf, guint8 **endbuf, MonoError *error)
 {
-       return decode_method_ref_with_target (module, ref, NULL, buf, endbuf);
+       return decode_method_ref_with_target (module, ref, NULL, buf, endbuf, error);
 }
 
 /*
@@ -1308,30 +1335,27 @@ decode_method_ref (MonoAotModule *module, MethodRef *ref, guint8 *buf, guint8 **
  *   Similar to decode_method_ref, but resolve and return the method itself.
  */
 static MonoMethod*
-decode_resolve_method_ref_with_target (MonoAotModule *module, MonoMethod *target, guint8 *buf, guint8 **endbuf)
+decode_resolve_method_ref_with_target (MonoAotModule *module, MonoMethod *target, guint8 *buf, guint8 **endbuf, MonoError *error)
 {
-       MonoError error;
        MethodRef ref;
-       gboolean res;
-       MonoMethod *result;
 
-       res = decode_method_ref_with_target (module, &ref, target, buf, endbuf);
-       if (!res)
+       mono_error_init (error);
+
+       if (!decode_method_ref_with_target (module, &ref, target, buf, endbuf, error))
                return NULL;
        if (ref.method)
                return ref.method;
-       if (!ref.image)
+       if (!ref.image) {
+               mono_error_set_bad_image_name (error, module->aot_name, "No image found for methodref with target");
                return NULL;
-       result = mono_get_method_checked (ref.image, ref.token, NULL, NULL, &error);
-       if (!result)
-               mono_error_cleanup (&error); /* FIXME don't swallow the error */
-       return result;
+       }
+       return mono_get_method_checked (ref.image, ref.token, NULL, NULL, error);
 }
 
 static MonoMethod*
-decode_resolve_method_ref (MonoAotModule *module, guint8 *buf, guint8 **endbuf)
+decode_resolve_method_ref (MonoAotModule *module, guint8 *buf, guint8 **endbuf, MonoError *error)
 {
-       return decode_resolve_method_ref_with_target (module, NULL, buf, endbuf);
+       return decode_resolve_method_ref_with_target (module, NULL, buf, endbuf, error);
 }
 
 #ifdef ENABLE_AOT_CACHE
@@ -2244,8 +2268,11 @@ load_aot_module (MonoAssembly *assembly, gpointer user_data)
        }
 #endif
        if (do_load_image) {
-               for (i = 0; i < amodule->image_table_len; ++i)
-                       load_image (amodule, i, FALSE);
+               for (i = 0; i < amodule->image_table_len; ++i) {
+                       MonoError error;
+                       load_image (amodule, i, &error);
+                       mono_error_cleanup (&error); /* FIXME don't swallow the error */
+               }
        }
 
        if (amodule->out_of_date) {
@@ -2322,6 +2349,7 @@ mono_aot_cleanup (void)
 static gboolean
 decode_cached_class_info (MonoAotModule *module, MonoCachedClassInfo *info, guint8 *buf, guint8 **endbuf)
 {
+       MonoError error;
        guint32 flags;
        MethodRef ref;
        gboolean res;
@@ -2342,13 +2370,15 @@ decode_cached_class_info (MonoAotModule *module, MonoCachedClassInfo *info, guin
        info->is_generic_container = (flags >> 8) & 0x1;
 
        if (info->has_cctor) {
-               res = decode_method_ref (module, &ref, buf, &buf);
+               res = decode_method_ref (module, &ref, buf, &buf, &error);
+               mono_error_assert_ok (&error); /* FIXME don't swallow the error */
                if (!res)
                        return FALSE;
                info->cctor_token = ref.token;
        }
        if (info->has_finalize) {
-               res = decode_method_ref (module, &ref, buf, &buf);
+               res = decode_method_ref (module, &ref, buf, &buf, &error);
+               mono_error_assert_ok (&error); /* FIXME don't swallow the error */
                if (!res)
                        return FALSE;
                info->finalize_image = ref.image;
@@ -2368,6 +2398,7 @@ decode_cached_class_info (MonoAotModule *module, MonoCachedClassInfo *info, guin
 gpointer
 mono_aot_get_method_from_vt_slot (MonoDomain *domain, MonoVTable *vtable, int slot)
 {
+       MonoError error;
        int i;
        MonoClass *klass = vtable->klass;
        MonoAotModule *amodule = (MonoAotModule *)klass->image->aot_module;
@@ -2387,10 +2418,13 @@ mono_aot_get_method_from_vt_slot (MonoDomain *domain, MonoVTable *vtable, int sl
        if (!err)
                return NULL;
 
-       for (i = 0; i < slot; ++i)
-               decode_method_ref (amodule, &ref, p, &p);
+       for (i = 0; i < slot; ++i) {
+               decode_method_ref (amodule, &ref, p, &p, &error);
+               mono_error_cleanup (&error); /* FIXME don't swallow the error */
+       }
 
-       res = decode_method_ref (amodule, &ref, p, &p);
+       res = decode_method_ref (amodule, &ref, p, &p, &error);
+       mono_error_cleanup (&error); /* FIXME don't swallow the error */
        if (!res)
                return NULL;
        if (ref.no_aot_trampoline)
@@ -2799,6 +2833,7 @@ decode_exception_debug_info (MonoAotModule *amodule, MonoDomain *domain,
                                                         MonoMethod *method, guint8* ex_info,
                                                         guint8 *code, guint32 code_len)
 {
+       MonoError error;
        int i, buf_len, num_clauses, len;
        MonoJitInfo *jinfo;
        MonoJitInfoFlags flags = JIT_INFO_NONE;
@@ -2872,8 +2907,10 @@ decode_exception_debug_info (MonoAotModule *amodule, MonoDomain *domain,
 
                        ei->flags = decode_value (p, &p);
 
-                       if (decode_value (p, &p))
-                               ei->data.catch_class = decode_klass_ref (amodule, p, &p);
+                       if (decode_value (p, &p)) {
+                               ei->data.catch_class = decode_klass_ref (amodule, p, &p, &error);
+                               mono_error_cleanup (&error); /* FIXME don't swallow the error */
+                       }
 
                        ei->clause_index = i;
 
@@ -2921,10 +2958,12 @@ decode_exception_debug_info (MonoAotModule *amodule, MonoDomain *domain,
                                int len = decode_value (p, &p);
 
                                if (len > 0) {
-                                       if (async)
+                                       if (async) {
                                                p += len;
-                                       else
-                                               ei->data.catch_class = decode_klass_ref (amodule, p, &p);
+                                       } else {
+                                               ei->data.catch_class = decode_klass_ref (amodule, p, &p, &error);
+                                               mono_error_cleanup (&error); /* FIXME don't swallow the error */
+                                       }
                                }
                        }
 
@@ -3010,10 +3049,12 @@ decode_exception_debug_info (MonoAotModule *amodule, MonoDomain *domain,
                }
 
                len = decode_value (p, &p);
-               if (async)
+               if (async) {
                        p += len;
-               else
-                       jinfo->d.method = decode_resolve_method_ref (amodule, p, &p);
+               } else {
+                       jinfo->d.method = decode_resolve_method_ref (amodule, p, &p, &error);
+                       mono_error_cleanup (&error); /* FIXME don't swallow the error */
+               }
 
                gi->generic_sharing_context = g_new0 (MonoGenericSharingContext, 1);
                if (decode_value (p, &p)) {
@@ -3172,6 +3213,7 @@ msort_method_addresses (gpointer *array, int *indexes, int len)
 MonoJitInfo *
 mono_aot_find_jit_info (MonoDomain *domain, MonoImage *image, gpointer addr)
 {
+       MonoError error;
        int pos, left, right, code_len;
        int method_index, table_len;
        guint32 token;
@@ -3325,7 +3367,8 @@ mono_aot_find_jit_info (MonoDomain *domain, MonoImage *image, gpointer addr)
                                }
 
                                p = amodule->blob + table [(pos * 2) + 1];
-                               method = decode_resolve_method_ref (amodule, p, &p);
+                               method = decode_resolve_method_ref (amodule, p, &p, &error);
+                               mono_error_cleanup (&error); /* FIXME don't swallow the error */
                                if (!method)
                                        /* Happens when a random address is passed in which matches a not-yey called wrapper encoded using its name */
                                        return NULL;
@@ -3388,6 +3431,7 @@ mono_aot_find_jit_info (MonoDomain *domain, MonoImage *image, gpointer addr)
 static gboolean
 decode_patch (MonoAotModule *aot_module, MonoMemPool *mp, MonoJumpInfo *ji, guint8 *buf, guint8 **endbuf)
 {
+       MonoError error;
        guint8 *p = buf;
        gpointer *table;
        MonoImage *image;
@@ -3403,7 +3447,8 @@ decode_patch (MonoAotModule *aot_module, MonoMemPool *mp, MonoJumpInfo *ji, guin
                MethodRef ref;
                gboolean res;
 
-               res = decode_method_ref (aot_module, &ref, p, &p);
+               res = decode_method_ref (aot_module, &ref, p, &p, &error);
+               mono_error_assert_ok (&error); /* FIXME don't swallow the error */
                if (!res)
                        goto cleanup;
 
@@ -3435,7 +3480,8 @@ decode_patch (MonoAotModule *aot_module, MonoMemPool *mp, MonoJumpInfo *ji, guin
        }
        case MONO_PATCH_INFO_METHODCONST:
                /* Shared */
-               ji->data.method = decode_resolve_method_ref (aot_module, p, &p);
+               ji->data.method = decode_resolve_method_ref (aot_module, p, &p, &error);
+               mono_error_cleanup (&error); /* FIXME don't swallow the error */
                if (!ji->data.method)
                        goto cleanup;
                break;
@@ -3444,24 +3490,28 @@ decode_patch (MonoAotModule *aot_module, MonoMemPool *mp, MonoJumpInfo *ji, guin
        case MONO_PATCH_INFO_IID:
        case MONO_PATCH_INFO_ADJUSTED_IID:
                /* Shared */
-               ji->data.klass = decode_klass_ref (aot_module, p, &p);
+               ji->data.klass = decode_klass_ref (aot_module, p, &p, &error);
+               mono_error_cleanup (&error); /* FIXME don't swallow the error */
                if (!ji->data.klass)
                        goto cleanup;
                break;
        case MONO_PATCH_INFO_DELEGATE_TRAMPOLINE:
                ji->data.del_tramp = (MonoDelegateClassMethodPair *)mono_mempool_alloc0 (mp, sizeof (MonoDelegateClassMethodPair));
-               ji->data.del_tramp->klass = decode_klass_ref (aot_module, p, &p);
+               ji->data.del_tramp->klass = decode_klass_ref (aot_module, p, &p, &error);
+               mono_error_cleanup (&error); /* FIXME don't swallow the error */
                if (!ji->data.del_tramp->klass)
                        goto cleanup;
                if (decode_value (p, &p)) {
-                       ji->data.del_tramp->method = decode_resolve_method_ref (aot_module, p, &p);
+                       ji->data.del_tramp->method = decode_resolve_method_ref (aot_module, p, &p, &error);
+                       mono_error_cleanup (&error); /* FIXME don't swallow the error */
                        if (!ji->data.del_tramp->method)
                                goto cleanup;
                }
                ji->data.del_tramp->is_virtual = decode_value (p, &p) ? TRUE : FALSE;
                break;
        case MONO_PATCH_INFO_IMAGE:
-               ji->data.image = load_image (aot_module, decode_value (p, &p), TRUE);
+               ji->data.image = load_image (aot_module, decode_value (p, &p), &error);
+               mono_error_cleanup (&error); /* FIXME don't swallow the error */
                if (!ji->data.image)
                        goto cleanup;
                break;
@@ -3501,7 +3551,8 @@ decode_patch (MonoAotModule *aot_module, MonoMemPool *mp, MonoJumpInfo *ji, guin
                break;
        }
        case MONO_PATCH_INFO_LDSTR:
-               image = load_image (aot_module, decode_value (p, &p), TRUE);
+               image = load_image (aot_module, decode_value (p, &p), &error);
+               mono_error_cleanup (&error); /* FIXME don't swallow the error */
                if (!image)
                        goto cleanup;
                ji->data.token = mono_jump_info_token_new (mp, image, MONO_TOKEN_STRING + decode_value (p, &p));
@@ -3511,20 +3562,23 @@ decode_patch (MonoAotModule *aot_module, MonoMemPool *mp, MonoJumpInfo *ji, guin
        case MONO_PATCH_INFO_LDTOKEN:
        case MONO_PATCH_INFO_TYPE_FROM_HANDLE:
                /* Shared */
-               image = load_image (aot_module, decode_value (p, &p), TRUE);
+               image = load_image (aot_module, decode_value (p, &p), &error);
+               mono_error_cleanup (&error); /* FIXME don't swallow the error */
                if (!image)
                        goto cleanup;
                ji->data.token = mono_jump_info_token_new (mp, image, decode_value (p, &p));
 
                ji->data.token->has_context = decode_value (p, &p);
                if (ji->data.token->has_context) {
-                       gboolean res = decode_generic_context (aot_module, &ji->data.token->context, p, &p);
+                       gboolean res = decode_generic_context (aot_module, &ji->data.token->context, p, &p, &error);
+                       mono_error_cleanup (&error); /* FIXME don't swallow the error */
                        if (!res)
                                goto cleanup;
                }
                break;
        case MONO_PATCH_INFO_EXC_NAME:
-               ji->data.klass = decode_klass_ref (aot_module, p, &p);
+               ji->data.klass = decode_klass_ref (aot_module, p, &p, &error);
+               mono_error_cleanup (&error); /* FIXME don't swallow the error */
                if (!ji->data.klass)
                        goto cleanup;
                ji->data.name = ji->data.klass->name;
@@ -3553,11 +3607,12 @@ decode_patch (MonoAotModule *aot_module, MonoMemPool *mp, MonoJumpInfo *ji, guin
 
                entry = (MonoJumpInfoRgctxEntry *)mono_mempool_alloc0 (mp, sizeof (MonoJumpInfoRgctxEntry));
                p2 = aot_module->blob + offset;
-               entry->method = decode_resolve_method_ref (aot_module, p2, &p2);
+               entry->method = decode_resolve_method_ref (aot_module, p2, &p2, &error);
                entry->in_mrgctx = ((val & 1) > 0) ? TRUE : FALSE;
                entry->info_type = (MonoRgctxInfoType)((val >> 1) & 0xff);
                entry->data = (MonoJumpInfo *)mono_mempool_alloc0 (mp, sizeof (MonoJumpInfo));
                entry->data->type = (MonoJumpInfoType)((val >> 9) & 0xff);
+               mono_error_cleanup (&error); /* FIXME don't swallow the error */
                
                res = decode_patch (aot_module, mp, entry->data, p, &p);
                if (!res)
@@ -3580,8 +3635,8 @@ decode_patch (MonoAotModule *aot_module, MonoMemPool *mp, MonoJumpInfo *ji, guin
                MonoJumpInfoGSharedVtCall *info = (MonoJumpInfoGSharedVtCall *)mono_mempool_alloc0 (mp, sizeof (MonoJumpInfoGSharedVtCall));
                info->sig = decode_signature (aot_module, p, &p);
                g_assert (info->sig);
-               info->method = decode_resolve_method_ref (aot_module, p, &p);
-               g_assert (info->method);
+               info->method = decode_resolve_method_ref (aot_module, p, &p, &error);
+               mono_error_assert_ok (&error); /* FIXME don't swallow the error */
 
                ji->data.target = info;
                break;
@@ -3590,8 +3645,9 @@ decode_patch (MonoAotModule *aot_module, MonoMemPool *mp, MonoJumpInfo *ji, guin
                MonoGSharedVtMethodInfo *info = (MonoGSharedVtMethodInfo *)mono_mempool_alloc0 (mp, sizeof (MonoGSharedVtMethodInfo));
                int i;
                
-               info->method = decode_resolve_method_ref (aot_module, p, &p);
-               g_assert (info->method);
+               info->method = decode_resolve_method_ref (aot_module, p, &p, &error);
+               mono_error_assert_ok (&error); /* FIXME don't swallow the error */
+
                info->num_entries = decode_value (p, &p);
                info->count_entries = info->num_entries;
                info->entries = (MonoRuntimeGenericContextInfoTemplate *)mono_mempool_alloc0 (mp, sizeof (MonoRuntimeGenericContextInfoTemplate) * info->num_entries);
@@ -3601,7 +3657,8 @@ decode_patch (MonoAotModule *aot_module, MonoMemPool *mp, MonoJumpInfo *ji, guin
                        template_->info_type = (MonoRgctxInfoType)decode_value (p, &p);
                        switch (mini_rgctx_info_type_to_patch_info_type (template_->info_type)) {
                        case MONO_PATCH_INFO_CLASS: {
-                               MonoClass *klass = decode_klass_ref (aot_module, p, &p);
+                               MonoClass *klass = decode_klass_ref (aot_module, p, &p, &error);
+                               mono_error_cleanup (&error); /* FIXME don't swallow the error */
                                if (!klass)
                                        goto cleanup;
                                template_->data = &klass->byval_arg;
@@ -3634,10 +3691,11 @@ decode_patch (MonoAotModule *aot_module, MonoMemPool *mp, MonoJumpInfo *ji, guin
        case MONO_PATCH_INFO_VIRT_METHOD: {
                MonoJumpInfoVirtMethod *info = (MonoJumpInfoVirtMethod *)mono_mempool_alloc0 (mp, sizeof (MonoJumpInfoVirtMethod));
 
-               info->klass = decode_klass_ref (aot_module, p, &p);
-               g_assert (info->klass);
-               info->method = decode_resolve_method_ref (aot_module, p, &p);
-               g_assert (info->method);
+               info->klass = decode_klass_ref (aot_module, p, &p, &error);
+               mono_error_assert_ok (&error); /* FIXME don't swallow the error */
+
+               info->method = decode_resolve_method_ref (aot_module, p, &p, &error);
+               mono_error_assert_ok (&error); /* FIXME don't swallow the error */
 
                ji->data.target = info;
                break;
@@ -3916,6 +3974,7 @@ load_method (MonoDomain *domain, MonoAotModule *amodule, MonoImage *image, MonoM
 static guint32
 find_aot_method_in_amodule (MonoAotModule *amodule, MonoMethod *method, guint32 hash_full)
 {
+       MonoError error;
        guint32 table_size, entry_size, hash;
        guint32 *table, *entry;
        guint32 index;
@@ -3951,7 +4010,8 @@ find_aot_method_in_amodule (MonoAotModule *amodule, MonoMethod *method, guint32
                m = (MonoMethod *)g_hash_table_lookup (amodule->method_ref_to_method, p);
                amodule_unlock (amodule);
                if (!m) {
-                       m = decode_resolve_method_ref_with_target (amodule, method, p, &p);
+                       m = decode_resolve_method_ref_with_target (amodule, method, p, &p, &error);
+                       mono_error_cleanup (&error); /* FIXME don't swallow the error */
                        /*
                         * Can't catche runtime invoke wrappers since it would break
                         * the check in decode_method_ref_with_target ().
@@ -4093,7 +4153,9 @@ init_method (MonoAotModule *amodule, guint32 method_index, MonoMethod *method, M
 
        //does the method's class has a cctor?
        if (decode_value (p, &p) == 1)
-               klass_to_run_ctor = decode_klass_ref (amodule, p, &p);
+               klass_to_run_ctor = decode_klass_ref (amodule, p, &p, error);
+       if (!is_ok (error))
+               return FALSE;
 
        //FIXME old code would use the class from @method if not null and ignore the one encoded. I don't know if we need to honor that -- @kumpera
        if (method)
index 140fbfb689b1f89ea0ef61570ed56b0c51bf9c01..4c791507cc3775777fb5e32e80d057292f1841e0 100644 (file)
@@ -7246,8 +7246,11 @@ vm_commands (int command, int id, guint8 *p, guint8 *end, Buffer *buf)
                                ass = (MonoAssembly *)tmp->data;
 
                                if (ass->image) {
+                                       MonoError error;
                                        type_resolve = TRUE;
-                                       t = mono_reflection_get_type (ass->image, &info, ignore_case, &type_resolve);
+                                       /* FIXME really okay to call while holding locks? */
+                                       t = mono_reflection_get_type_checked (ass->image, &info, ignore_case, &type_resolve, &error);
+                                       mono_error_cleanup (&error); 
                                        if (t) {
                                                g_ptr_array_add (res_classes, mono_type_get_class (t));
                                                g_ptr_array_add (res_domains, domain);
@@ -7663,6 +7666,7 @@ assembly_commands (int command, guint8 *p, guint8 *end, Buffer *buf)
                break;
        }
        case CMD_ASSEMBLY_GET_TYPE: {
+               MonoError error;
                char *s = decode_string (p, &p, end);
                gboolean ignorecase = decode_byte (p, &p, end);
                MonoTypeNameParse info;
@@ -7679,7 +7683,13 @@ assembly_commands (int command, guint8 *p, guint8 *end, Buffer *buf)
                } else {
                        if (info.assembly.name)
                                NOT_IMPLEMENTED;
-                       t = mono_reflection_get_type (ass->image, &info, ignorecase, &type_resolve);
+                       t = mono_reflection_get_type_checked (ass->image, &info, ignorecase, &type_resolve, &error);
+                       if (!is_ok (&error)) {
+                               mono_error_cleanup (&error); /* FIXME don't swallow the error */
+                               mono_reflection_free_type_info (&info);
+                               g_free (s);
+                               return ERR_INVALID_ARGUMENT;
+                       }
                }
                buffer_add_typeid (buf, domain, t ? mono_class_from_mono_type (t) : NULL);
                mono_reflection_free_type_info (&info);
index ed719f456e4156a74ee358f1d7b847a4395cfe2f..6a7c49c0629f85bca6005c0976241ffd6cb06830 100644 (file)
 #include "llvm/ExecutionEngine/Orc/CompileUtils.h"
 #include "llvm/ExecutionEngine/Orc/IRCompileLayer.h"
 #include "llvm/ExecutionEngine/Orc/LambdaResolver.h"
-#include "llvm/ExecutionEngine/Orc/LazyEmittingLayer.h"
 #include "llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h"
 #include "llvm/ExecutionEngine/Orc/OrcArchitectureSupport.h"
 
+extern "C" {
+#include <mono/utils/mono-dl.h>
+}
+
 using namespace llvm;
 using namespace llvm::orc;
 
+extern cl::opt<bool> EnableMonoEH;
+extern cl::opt<std::string> MonoEHFrameSymbol;
+
 void
 mono_llvm_set_unhandled_exception_handler (void)
 {
 }
 
-static gboolean inited;
+template <typename T>
+static std::vector<T> singletonSet(T t) {
+  std::vector<T> Vec;
+  Vec.push_back(std::move(t));
+  return Vec;
+}
 
-static void
-init_llvm (void)
-{
-       if (inited)
-               return;
+#ifdef __MINGW32__
 
-       InitializeNativeTarget ();
-       InitializeNativeTargetAsmPrinter();
-}
+#include <stddef.h>
+extern void *memset(void *, int, size_t);
+void bzero (void *to, size_t count) { memset (to, 0, count); }
+
+#endif
+
+class MonoLLVMJIT {
+public:
+       /* We use our own trampoline infrastructure instead of the Orc one */
+       typedef ObjectLinkingLayer<> ObjLayerT;
+       typedef IRCompileLayer<ObjLayerT> CompileLayerT;
+       typedef CompileLayerT::ModuleSetHandleT ModuleHandleT;
+
+       MonoLLVMJIT (TargetMachine *TM)
+               : TM(TM),
+                 CompileLayer (ObjectLayer, SimpleCompiler (*TM)) {
+       }
+
+       ModuleHandleT addModule(Module *M) {
+               auto Resolver = createLambdaResolver(
+                      [&](const std::string &Name) {
+                                                 const char *name = Name.c_str ();
+                                                 if (!strcmp (name, "___bzero"))
+                                                         return RuntimeDyld::SymbolInfo((uint64_t)(gssize)(void*)bzero, (JITSymbolFlags)0);
+
+                                                 MonoDl *current;
+                                                 char *err;
+                                                 void *symbol;
+                                                 current = mono_dl_open (NULL, 0, NULL);
+                                                 g_assert (current);
+                                                 if (name [0] == '_')
+                                                         err = mono_dl_symbol (current, name + 1, &symbol);
+                                                 else
+                                                         err = mono_dl_symbol (current, name, &symbol);
+                                                 mono_dl_close (current);
+                                                 if (!symbol)
+                                                         outs () << "R: " << Name << "\n";
+                                                 assert (symbol);
+                                                 return RuntimeDyld::SymbolInfo((uint64_t)(gssize)symbol, (JITSymbolFlags)0);
+                      },
+                      [](const std::string &S) {
+                                                 outs () << "R2: " << S << "\n";
+                                                 assert (0);
+                                                 return nullptr;
+                                         } );
+
+               return CompileLayer.addModuleSet(singletonSet(M),
+                                                                                 make_unique<SectionMemoryManager>(),
+                                                                                 std::move(Resolver));
+       }
+
+       std::string mangle(const std::string &Name) {
+               std::string MangledName;
+               {
+                       raw_string_ostream MangledNameStream(MangledName);
+                       Mangler::getNameWithPrefix(MangledNameStream, Name,
+                                                                          TM->createDataLayout());
+               }
+               return MangledName;
+       }
+
+       std::string mangle(const GlobalValue *GV) {
+               std::string MangledName;
+               {
+                       Mangler Mang;
+
+                       raw_string_ostream MangledNameStream(MangledName);
+                       Mang.getNameWithPrefix(MangledNameStream, GV, false);
+               }
+               return MangledName;
+       }
+
+       gpointer compile (Function *F, int nvars, LLVMValueRef *callee_vars, gpointer *callee_addrs, gpointer *eh_frame) {
+               F->getParent ()->setDataLayout (TM->createDataLayout ());
+               auto ModuleHandle = addModule (F->getParent ());
+
+               auto BodySym = CompileLayer.findSymbolIn(ModuleHandle, mangle (F), false);
+               auto BodyAddr = BodySym.getAddress();
+               assert (BodyAddr);
+
+               for (int i = 0; i < nvars; ++i) {
+                       GlobalVariable *var = unwrap<GlobalVariable>(callee_vars [i]);
+
+                       auto sym = CompileLayer.findSymbolIn (ModuleHandle, mangle (var->getName ()), true);
+                       auto addr = sym.getAddress ();
+                       g_assert (addr);
+                       callee_addrs [i] = (gpointer)addr;
+               }
+
+               auto ehsym = CompileLayer.findSymbolIn(ModuleHandle, "mono_eh_frame", false);
+               auto ehaddr = ehsym.getAddress ();
+               g_assert (ehaddr);
+               *eh_frame = (gpointer)ehaddr;
+
+               return (gpointer)BodyAddr;
+       }
+
+private:
+       TargetMachine *TM;
+       ObjLayerT ObjectLayer;
+       CompileLayerT CompileLayer;
+};
+
+static MonoLLVMJIT *jit;
 
 MonoEERef
 mono_llvm_create_ee (LLVMModuleProviderRef MP, AllocCodeMemoryCb *alloc_cb, FunctionEmittedCb *emitted_cb, ExceptionTableCb *exception_cb, DlSymCb *dlsym_cb, LLVMExecutionEngineRef *ee)
 {
-       init_llvm ();
+       InitializeNativeTarget ();
+       InitializeNativeTargetAsmPrinter();
+
+       EnableMonoEH = true;
+       MonoEHFrameSymbol = "mono_eh_frame";
+
+       EngineBuilder EB;
+#if defined(TARGET_AMD64) || defined(TARGET_X86)
+       std::vector<std::string> attrs;
+       // FIXME: Autodetect this
+       attrs.push_back("sse3");
+       attrs.push_back("sse4.1");
+       EB.setMAttrs (attrs);
+#endif
+       auto TM = EB.selectTarget ();
+       assert (TM);
+
+       jit = new MonoLLVMJIT (TM);
 
        return NULL;
 }
 
-void
-mono_llvm_optimize_method (MonoEERef eeref, LLVMValueRef method)
+/*
+ * mono_llvm_compile_method:
+ *
+ *   Compile METHOD to native code. Compute the addresses of the variables in CALLEE_VARS and store them into
+ * CALLEE_ADDRS. Return the EH frame address in EH_FRAME.
+ */
+gpointer
+mono_llvm_compile_method (MonoEERef mono_ee, LLVMValueRef method, int nvars, LLVMValueRef *callee_vars, gpointer *callee_addrs, gpointer *eh_frame)
 {
-       g_assert_not_reached ();
+       return jit->compile (unwrap<Function> (method), nvars, callee_vars, callee_addrs, eh_frame);
 }
 
 void
@@ -75,13 +206,14 @@ mono_llvm_dispose_ee (MonoEERef *eeref)
 }
 
 void
-LLVMAddGlobalMapping (LLVMExecutionEngineRef EE, LLVMValueRef Global,
-                                         void* Addr)
+LLVMAddGlobalMapping(LLVMExecutionEngineRef EE, LLVMValueRef Global,
+                                        void* Addr)
 {
+       g_assert_not_reached ();
 }
 
 void*
-LLVMGetPointerToGlobal (LLVMExecutionEngineRef EE, LLVMValueRef Global)
+LLVMGetPointerToGlobal(LLVMExecutionEngineRef EE, LLVMValueRef Global)
 {
        g_assert_not_reached ();
        return NULL;
index fe23bff820f0733f1f93b6c97255a7186205cddc..4510b71cea6ee58689c4ce7179b1421def6ca226 100644 (file)
@@ -33,7 +33,7 @@ void
 mono_llvm_dispose_ee (MonoEERef *mono_ee);
 
 gpointer
-mono_llvm_compile_method (MonoEERef mono_ee, LLVMValueRef method);
+mono_llvm_compile_method (MonoEERef mono_ee, LLVMValueRef method, int nvars, LLVMValueRef *callee_vars, gpointer *callee_addrs, gpointer *eh_frame);
 
 void
 mono_llvm_optimize_method (MonoEERef mono_ee, LLVMValueRef method);
index 6d749e1e65d0fc7a77a2eb0222311676d351bc94..3d295db2a358a479cdce82160444b1066145b036 100644 (file)
@@ -9257,15 +9257,6 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
                                }
                        }
                                        
-                       if (!cmethod || mono_loader_get_last_error ()) {
-                               if (mono_loader_get_last_error ()) {
-                                       mono_cfg_set_exception (cfg, MONO_EXCEPTION_MONO_ERROR);
-                                       mono_error_set_from_loader_error (&cfg->error);
-                                       CHECK_CFG_ERROR;
-                               } else {
-                                       LOAD_ERROR;
-                               }
-                       }
                        if (!dont_verify && !cfg->skip_visibility) {
                                MonoMethod *target_method = cil_method;
                                if (method->is_inflated) {
index 6dc95e48f1927ad5b108e2f7ae8e86f013f74657..9e8596e7bf135c3a31b057172fff8588306cdbb7 100644 (file)
@@ -46,6 +46,8 @@ void bzero (void *to, size_t count) { memset (to, 0, count); }
 #error "The version of the mono llvm repository is too old."
 #endif
 
+#define ALIGN_PTR_TO(ptr,align) (gpointer)((((gssize)(ptr)) + (align - 1)) & (~(align - 1)))
+
  /*
   * Information associated by mono with LLVM modules.
   */
@@ -166,6 +168,7 @@ typedef struct {
        GPtrArray *phi_values;
        GPtrArray *bblock_list;
        char *method_name;
+       GHashTable *jit_callees;
 } EmitContext;
 
 typedef struct {
@@ -258,9 +261,9 @@ static LLVMRealPredicate fpcond_to_llvm_cond [] = {
 static MonoNativeTlsKey current_cfg_tls_id;
 
 static MonoLLVMModule aot_module;
-static int memset_param_count, memcpy_param_count;
-static const char *memset_func_name;
-static const char *memcpy_func_name;
+
+static GHashTable *intrins_id_to_name;
+static GHashTable *intrins_name_to_id;
 
 static void init_jit_module (MonoDomain *domain);
 
@@ -268,6 +271,8 @@ static void emit_dbg_loc (EmitContext *ctx, LLVMBuilderRef builder, const unsign
 static LLVMValueRef emit_dbg_subprogram (EmitContext *ctx, MonoCompile *cfg, LLVMValueRef method, const char *name);
 static void emit_dbg_info (MonoLLVMModule *module, const char *filename, const char *cu_name);
 static void emit_cond_system_exception (EmitContext *ctx, MonoBasicBlock *bb, const char *exc_type, LLVMValueRef cmp);
+static LLVMValueRef get_intrinsic (EmitContext *ctx, const char *name);
+static void decode_llvm_eh_info (EmitContext *ctx, gpointer eh_frame);
 
 static inline void
 set_failure (EmitContext *ctx, const char *message)
@@ -1697,6 +1702,22 @@ get_callee (EmitContext *ctx, LLVMTypeRef llvm_sig, MonoJumpInfoType type, gcons
        }
 }
 
+static LLVMValueRef
+emit_jit_callee (EmitContext *ctx, const char *name, LLVMTypeRef llvm_sig, gpointer target)
+{
+#if LLVM_API_VERSION > 100
+       LLVMValueRef tramp_var = LLVMAddGlobal (ctx->lmodule, LLVMPointerType (llvm_sig, 0), name);
+       LLVMSetInitializer (tramp_var, LLVMConstIntToPtr (LLVMConstInt (LLVMInt64Type (), (guint64)(size_t)target, FALSE), LLVMPointerType (llvm_sig, 0)));
+       LLVMSetLinkage (tramp_var, LLVMExternalLinkage);
+       LLVMValueRef callee = LLVMBuildLoad (ctx->builder, tramp_var, "");
+       return callee;
+#else
+       LLVMValueRef callee = LLVMAddFunction (ctx->lmodule, "", llvm_sig);
+       LLVMAddGlobalMapping (ctx->module->ee, callee, target);
+       return callee;
+#endif
+}
+
 static int
 get_handler_clause (MonoCompile *cfg, MonoBasicBlock *bb)
 {
@@ -1927,7 +1948,7 @@ emit_load_general (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder
                args [1] = LLVMConstInt (LLVMInt32Type (), 0, FALSE);
                args [2] = LLVMConstInt (LLVMInt1Type (), TRUE, FALSE);
                args [3] = LLVMConstInt (LLVMInt32Type (), ordering, FALSE);
-               res = emit_call (ctx, bb, builder_ref, LLVMGetNamedFunction (ctx->lmodule, intrins_name), args, 4);
+               res = emit_call (ctx, bb, builder_ref, get_intrinsic (ctx, intrins_name), args, 4);
 
                if (addr_type == LLVMPointerType (LLVMDoubleType (), 0))
                        res = LLVMBuildBitCast (*builder_ref, res, LLVMDoubleType (), "");
@@ -2023,7 +2044,7 @@ emit_store_general (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builde
                args [2] = LLVMConstInt (LLVMInt32Type (), 0, FALSE);
                args [3] = LLVMConstInt (LLVMInt1Type (), TRUE, FALSE);
                args [4] = LLVMConstInt (LLVMInt32Type (), ordering, FALSE);
-               emit_call (ctx, bb, builder_ref, LLVMGetNamedFunction (ctx->lmodule, intrins_name), args, 5);
+               emit_call (ctx, bb, builder_ref, get_intrinsic (ctx, intrins_name), args, 5);
        } else {
                mono_llvm_build_store (*builder_ref, value, addr, is_faulting, barrier);
        }
@@ -2099,17 +2120,29 @@ emit_cond_system_exception (EmitContext *ctx, MonoBasicBlock *bb, const char *ex
                if (ctx->cfg->compile_aot) {
                        callee = get_callee (ctx, sig, MONO_PATCH_INFO_INTERNAL_METHOD, icall_name);
                } else {
-                       callee = LLVMAddFunction (ctx->lmodule, "llvm_throw_corlib_exception_trampoline", sig);
-
                        /*
                         * Differences between the LLVM/non-LLVM throw corlib exception trampoline:
                         * - On x86, LLVM generated code doesn't push the arguments
                         * - The trampoline takes the throw address as an arguments, not a pc offset.
                         */
-                       LLVMAddGlobalMapping (ctx->module->ee, callee, resolve_patch (ctx->cfg, MONO_PATCH_INFO_INTERNAL_METHOD, icall_name));
+                       gpointer target = resolve_patch (ctx->cfg, MONO_PATCH_INFO_INTERNAL_METHOD, icall_name);
+                       callee = emit_jit_callee (ctx, "llvm_throw_corlib_exception_trampoline", sig, target);
 
+#if LLVM_API_VERSION > 100
+                       /*
+                        * Make sure that ex_bb starts with the invoke, so the block address points to it, and not to the load 
+                        * added by emit_jit_callee ().
+                        */
+                       ex2_bb = gen_bb (ctx, "EX2_BB");
+                       LLVMBuildBr (builder, ex2_bb);
+                       ex_bb = ex2_bb;
+
+                       ctx->builder = builder = create_builder (ctx);
+                       LLVMPositionBuilderAtEnd (ctx->builder, ex2_bb);
+#else
                        mono_memory_barrier ();
                        ctx->module->throw_corlib_exception = callee;
+#endif
                }
        }
 
@@ -2723,7 +2756,7 @@ emit_init_method (EmitContext *ctx)
 
        args [0] = inited_var;
        args [1] = LLVMConstInt (LLVMInt8Type (), 1, FALSE);
-       inited_var = LLVMBuildCall (ctx->builder, LLVMGetNamedFunction (ctx->lmodule, "llvm.expect.i8"), args, 2, "");
+       inited_var = LLVMBuildCall (ctx->builder, get_intrinsic (ctx, "llvm.expect.i8"), args, 2, "");
 
        cmp = LLVMBuildICmp (builder, LLVMIntEQ, inited_var, LLVMConstInt (LLVMTypeOf (inited_var), 0, FALSE), "");
 
@@ -3092,7 +3125,6 @@ static void
 process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref, MonoInst *ins)
 {
        MonoCompile *cfg = ctx->cfg;
-       LLVMModuleRef lmodule = ctx->lmodule;
        LLVMValueRef *values = ctx->values;
        LLVMValueRef *addresses = ctx->addresses;
        MonoCallInst *call = (MonoCallInst*)ins;
@@ -3155,15 +3187,46 @@ process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref,
                                }
                        } else {
                                MonoError error;
+                               static int tramp_index;
+                               char *name;
 
-                               callee = LLVMAddFunction (lmodule, "", llvm_sig);
+                               name = g_strdup_printf ("tramp_%d", tramp_index);
+                               tramp_index ++;
+
+#if LLVM_API_VERSION > 100
+                               /*
+                                * Use our trampoline infrastructure for lazy compilation instead of llvm's.
+                                * Make all calls through a global. The address of the global will be saved in
+                                * MonoJitDomainInfo.llvm_jit_callees and updated when the method it refers to is
+                                * compiled.
+                                */
+                               LLVMValueRef tramp_var = g_hash_table_lookup (ctx->jit_callees, call->method);
+                               if (!tramp_var) {
+                                       target =
+                                               mono_create_jit_trampoline (mono_domain_get (),
+                                                                                                       call->method, &error);
+                                       if (!mono_error_ok (&error))
+                                               mono_error_raise_exception (&error); /* FIXME: Don't raise here */
+                                       tramp_var = LLVMAddGlobal (ctx->lmodule, LLVMPointerType (llvm_sig, 0), name);
+                                       LLVMSetInitializer (tramp_var, LLVMConstIntToPtr (LLVMConstInt (LLVMInt64Type (), (guint64)(size_t)target, FALSE), LLVMPointerType (llvm_sig, 0)));
+                                       LLVMSetLinkage (tramp_var, LLVMExternalLinkage);
+                                       g_hash_table_insert (ctx->jit_callees, call->method, tramp_var);
+                               }
+                               callee = LLVMBuildLoad (builder, tramp_var, "");
+#else
                                target =
                                        mono_create_jit_trampoline (mono_domain_get (),
                                                                                                call->method, &error);
+                               if (!mono_error_ok (&error))
+                                       mono_error_raise_exception (&error); /* FIXME: Don't raise here */
+
+                               callee = LLVMAddFunction (ctx->lmodule, name, llvm_sig);
+                               g_free (name);
+
                                if (!mono_error_ok (&error))
                                        mono_error_raise_exception (&error); /* FIXME: Don't raise here */
                                LLVMAddGlobalMapping (ctx->module->ee, callee, target);
+#endif
                        }
                }
 
@@ -3193,9 +3256,8 @@ process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref,
                                        return;
                                }
                        } else {
-                               callee = LLVMAddFunction (lmodule, "", llvm_sig);
                                target = (gpointer)mono_icall_get_wrapper (info);
-                               LLVMAddGlobalMapping (ctx->module->ee, callee, target);
+                               callee = emit_jit_callee (ctx, "", llvm_sig, target);
                        }
                } else {
                        if (cfg->compile_aot) {
@@ -3215,7 +3277,23 @@ process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref,
                                        return;
                                }
                        } else {
-                               callee = LLVMAddFunction (lmodule, "", llvm_sig);
+#if LLVM_API_VERSION > 100
+                               if (cfg->abs_patches) {
+                                       MonoJumpInfo *abs_ji = (MonoJumpInfo*)g_hash_table_lookup (cfg->abs_patches, call->fptr);
+                                       if (abs_ji) {
+                                               MonoError error;
+
+                                               target = mono_resolve_patch_target (cfg->method, cfg->domain, NULL, abs_ji, FALSE, &error);
+                                               mono_error_assert_ok (&error);
+                                               callee = emit_jit_callee (ctx, "", llvm_sig, target);
+                                       } else {
+                                               g_assert_not_reached ();
+                                       }
+                               } else {
+                                       g_assert_not_reached ();
+                               }
+#else
+                               callee = LLVMAddFunction (ctx->lmodule, "", llvm_sig);
                                target = NULL;
                                if (cfg->abs_patches) {
                                        MonoJumpInfo *abs_ji = (MonoJumpInfo*)g_hash_table_lookup (cfg->abs_patches, call->fptr);
@@ -3233,6 +3311,7 @@ process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref,
                                }
                                if (!target)
                                        LLVMAddGlobalMapping (ctx->module->ee, callee, (gpointer)call->fptr);
+#endif
                        }
                }
        }
@@ -3537,24 +3616,26 @@ emit_throw (EmitContext *ctx, MonoBasicBlock *bb, gboolean rethrow, LLVMValueRef
                if (ctx->cfg->compile_aot) {
                        callee = get_callee (ctx, sig_to_llvm_sig (ctx, throw_sig), MONO_PATCH_INFO_INTERNAL_METHOD, icall_name);
                } else {
-                       callee = LLVMAddFunction (ctx->lmodule, icall_name, sig_to_llvm_sig (ctx, throw_sig));
-
+                       gpointer target;
 #ifdef TARGET_X86
                        /* 
                         * LLVM doesn't push the exception argument, so we need a different
                         * trampoline.
                         */
-                       LLVMAddGlobalMapping (ctx->module->ee, callee, resolve_patch (ctx->cfg, MONO_PATCH_INFO_INTERNAL_METHOD, rethrow ? "llvm_rethrow_exception_trampoline" : "llvm_throw_exception_trampoline"));
+                       target = resolve_patch (ctx->cfg, MONO_PATCH_INFO_INTERNAL_METHOD, rethrow ? "llvm_rethrow_exception_trampoline" : "llvm_throw_exception_trampoline");
 #else
-                       LLVMAddGlobalMapping (ctx->module->ee, callee, resolve_patch (ctx->cfg, MONO_PATCH_INFO_INTERNAL_METHOD, icall_name));
+                       target = resolve_patch (ctx->cfg, MONO_PATCH_INFO_INTERNAL_METHOD, icall_name);
 #endif
+                       callee = emit_jit_callee (ctx, icall_name, sig_to_llvm_sig (ctx, throw_sig), target);
                }
 
                mono_memory_barrier ();
+#if LLVM_API_VERSION < 100
                if (rethrow)
                        ctx->module->rethrow = callee;
                else
                        ctx->module->throw_icall = callee;
+#endif
        }
        arg = convert (ctx, exc, type_to_llvm_type (ctx, &mono_get_object_class ()->byval_arg));
        emit_call (ctx, bb, &ctx->builder, callee, &arg, 1);
@@ -3717,7 +3798,7 @@ get_mono_personality (EmitContext *ctx)
 
        if (!use_debug_personality) {
                if (ctx->cfg->compile_aot) {
-                               personality = LLVMGetNamedFunction (ctx->lmodule, default_personality_name);
+                               personality = get_intrinsic (ctx, default_personality_name);
                } else if (InterlockedCompareExchange (&mapping_inited, 1, 0) == 0) {
                                personality = LLVMAddFunction (ctx->lmodule, default_personality_name, personality_type);
                                LLVMAddGlobalMapping (ctx->module->ee, personality, personality);
@@ -3865,10 +3946,8 @@ emit_handler_start (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef builder
        LLVMValueRef landing_pad;
        LLVMBasicBlockRef target_bb;
        MonoInst *exvar;
-       static gint32 mapping_inited;
        static int ti_generator;
        char ti_name [128];
-       gint32 *ti;
        LLVMValueRef type_info;
        int clause_index;
        GSList *l;
@@ -3880,9 +3959,22 @@ emit_handler_start (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef builder
                personality = LLVMGetNamedFunction (lmodule, "mono_personality");
                g_assert (personality);
        } else {
+#if LLVM_API_VERSION > 100
+               LLVMTypeRef personality_type = LLVMFunctionType (LLVMInt32Type (), NULL, 0, TRUE);
+               personality = LLVMAddFunction (ctx->lmodule, "mono_personality", personality_type);
+               LLVMAddFunctionAttr (personality, LLVMNoUnwindAttribute);
+               LLVMBasicBlockRef entry_bb = LLVMAppendBasicBlock (personality, "ENTRY");
+               LLVMBuilderRef builder2 = LLVMCreateBuilder ();
+               LLVMPositionBuilderAtEnd (builder2, entry_bb);
+               LLVMBuildRet (builder2, LLVMConstInt (LLVMInt32Type (), 0, FALSE));
+#else
+               static gint32 mapping_inited;
+
                personality = LLVMGetNamedFunction (lmodule, "mono_personality");
+
                if (InterlockedCompareExchange (&mapping_inited, 1, 0) == 0)
                        LLVMAddGlobalMapping (ctx->module->ee, personality, (gpointer)mono_personality);
+#endif
        }
 
        i8ptr = LLVMPointerType (LLVMInt8Type (), 0);
@@ -3905,6 +3997,12 @@ emit_handler_start (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef builder
                 */
                LLVMSetLinkage (type_info, LLVMInternalLinkage);
        } else {
+#if LLVM_API_VERSION > 100
+               type_info = LLVMAddGlobal (lmodule, LLVMInt32Type (), ti_name);
+               LLVMSetInitializer (type_info, LLVMConstInt (LLVMInt32Type (), clause_index, FALSE));
+#else
+               gint32 *ti;
+
                /*
                 * After the cfg mempool is freed, the type info will point to stale memory,
                 * but this is not a problem, since we decode it once in exception_cb during
@@ -3916,6 +4014,7 @@ emit_handler_start (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef builder
                type_info = LLVMAddGlobal (lmodule, i8ptr, ti_name);
 
                LLVMAddGlobalMapping (ctx->module->ee, type_info, ti);
+#endif
        }
 
        {
@@ -3993,7 +4092,6 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
        LLVMValueRef *values = ctx->values;
        LLVMValueRef *addresses = ctx->addresses;
        LLVMCallInfo *linfo = ctx->linfo;
-       LLVMModuleRef lmodule = ctx->lmodule;
        BBInfo *bblocks = ctx->bblocks;
        MonoInst *ins;
        LLVMBasicBlockRef cbb;
@@ -4365,7 +4463,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                        if (likely) {
                                args [0] = cmp;
                                args [1] = LLVMConstInt (LLVMInt1Type (), 1, FALSE);
-                               cmp = LLVMBuildCall (ctx->builder, LLVMGetNamedFunction (ctx->lmodule, "llvm.expect.i1"), args, 2, "");
+                               cmp = LLVMBuildCall (ctx->builder, get_intrinsic (ctx, "llvm.expect.i1"), args, 2, "");
                        }
 
                        if (MONO_IS_COND_BRANCH_OP (ins->next)) {
@@ -4933,7 +5031,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                                args [2] = LLVMConstInt (LLVMInt32Type (), size, FALSE);
                                args [3] = LLVMConstInt (LLVMInt32Type (), MONO_ARCH_FRAME_ALIGNMENT, FALSE);
                                args [4] = LLVMConstInt (LLVMInt1Type (), 0, FALSE);
-                               LLVMBuildCall (builder, LLVMGetNamedFunction (lmodule, memset_func_name), args, memset_param_count, "");
+                               LLVMBuildCall (builder, get_intrinsic (ctx, "llvm.memset.p0i8.i32"), args, 5, "");
                        }
 
                        values [ins->dreg] = v;
@@ -4954,7 +5052,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                                args [2] = size;
                                args [3] = LLVMConstInt (LLVMInt32Type (), MONO_ARCH_FRAME_ALIGNMENT, FALSE);
                                args [4] = LLVMConstInt (LLVMInt1Type (), 0, FALSE);
-                               LLVMBuildCall (builder, LLVMGetNamedFunction (lmodule, memset_func_name), args, memset_param_count, "");
+                               LLVMBuildCall (builder, get_intrinsic (ctx, "llvm.memset.p0i8.i32"), args, 5, "");
                        }
                        values [ins->dreg] = v;
                        break;
@@ -5186,28 +5284,28 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                        LLVMValueRef args [1];
 
                        args [0] = convert (ctx, lhs, LLVMDoubleType ());
-                       values [ins->dreg] = LLVMBuildCall (builder, LLVMGetNamedFunction (lmodule, "llvm.sin.f64"), args, 1, dname);
+                       values [ins->dreg] = LLVMBuildCall (builder, get_intrinsic (ctx, "llvm.sin.f64"), args, 1, dname);
                        break;
                }
                case OP_COS: {
                        LLVMValueRef args [1];
 
                        args [0] = convert (ctx, lhs, LLVMDoubleType ());
-                       values [ins->dreg] = LLVMBuildCall (builder, LLVMGetNamedFunction (lmodule, "llvm.cos.f64"), args, 1, dname);
+                       values [ins->dreg] = LLVMBuildCall (builder, get_intrinsic (ctx, "llvm.cos.f64"), args, 1, dname);
                        break;
                }
                case OP_SQRT: {
                        LLVMValueRef args [1];
 
                        args [0] = convert (ctx, lhs, LLVMDoubleType ());
-                       values [ins->dreg] = LLVMBuildCall (builder, LLVMGetNamedFunction (lmodule, "llvm.sqrt.f64"), args, 1, dname);
+                       values [ins->dreg] = LLVMBuildCall (builder, get_intrinsic (ctx, "llvm.sqrt.f64"), args, 1, dname);
                        break;
                }
                case OP_ABS: {
                        LLVMValueRef args [1];
 
                        args [0] = convert (ctx, lhs, LLVMDoubleType ());
-                       values [ins->dreg] = LLVMBuildCall (builder, LLVMGetNamedFunction (lmodule, "fabs"), args, 1, dname);
+                       values [ins->dreg] = LLVMBuildCall (builder, get_intrinsic (ctx, "fabs"), args, 1, dname);
                        break;
                }
 
@@ -5387,7 +5485,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                }
                case OP_RELAXED_NOP: {
 #if defined(TARGET_AMD64) || defined(TARGET_X86)
-                       emit_call (ctx, bb, &builder, LLVMGetNamedFunction (ctx->lmodule, "llvm.x86.sse2.pause"), NULL, 0);
+                       emit_call (ctx, bb, &builder, get_intrinsic (ctx, "llvm.x86.sse2.pause"), NULL, 0);
                        break;
 #else
                        break;
@@ -5466,7 +5564,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
 
                                args [0] = convert (ctx, lhs, op_to_llvm_type (ins->opcode));
                                args [1] = convert (ctx, rhs, op_to_llvm_type (ins->opcode));
-                               func = LLVMGetNamedFunction (lmodule, ovf_op_to_intrins (ins->opcode));
+                               func = get_intrinsic (ctx, ovf_op_to_intrins (ins->opcode));
                                g_assert (func);
                                val = LLVMBuildCall (builder, func, args, 2, "");
                                values [ins->dreg] = LLVMBuildExtractValue (builder, val, 0, dname);
@@ -5503,7 +5601,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                        // FIXME: Alignment
                        args [3] = LLVMConstInt (LLVMInt32Type (), 0, FALSE);
                        args [4] = LLVMConstInt (LLVMInt1Type (), 0, FALSE);
-                       LLVMBuildCall (builder, LLVMGetNamedFunction (lmodule, memset_func_name), args, memset_param_count, "");
+                       LLVMBuildCall (builder, get_intrinsic (ctx, "llvm.memset.p0i8.i32"), args, 5, "");
                        break;
                }
                case OP_DUMMY_VZERO:
@@ -5577,7 +5675,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                        // FIXME: Alignment
                        args [3] = LLVMConstInt (LLVMInt32Type (), 0, FALSE);
                        args [4] = LLVMConstInt (LLVMInt1Type (), 0, FALSE);
-                       LLVMBuildCall (builder, LLVMGetNamedFunction (lmodule, memcpy_func_name), args, memcpy_param_count, "");
+                       LLVMBuildCall (builder, get_intrinsic (ctx, "llvm.memcpy.p0i8.p0i8.i32"), args, 5, "");
                        break;
                }
                case OP_LLVM_OUTARG_VT: {
@@ -5769,7 +5867,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                        args [0] = lhs;
                        args [1] = rhs;
 
-                       values [ins->dreg] = LLVMBuildCall (builder, LLVMGetNamedFunction (lmodule, simd_op_to_intrins (ins->opcode)), args, 2, dname);
+                       values [ins->dreg] = LLVMBuildCall (builder, get_intrinsic (ctx, simd_op_to_intrins (ins->opcode)), args, 2, dname);
                        break;
                }
                case OP_PCMPEQB:
@@ -5876,7 +5974,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
 
                        v = convert (ctx, values [ins->sreg1], simd_op_to_llvm_type (ins->opcode));
 
-                       values [ins->dreg] = LLVMBuildCall (builder, LLVMGetNamedFunction (lmodule, simd_op_to_intrins (ins->opcode)), &v, 1, dname);
+                       values [ins->dreg] = LLVMBuildCall (builder, get_intrinsic (ctx, simd_op_to_intrins (ins->opcode)), &v, 1, dname);
                        break;
                }
 
@@ -5888,7 +5986,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                        args [1] = rhs;
                        args [2] = LLVMConstInt (LLVMInt8Type (), ins->inst_c0, FALSE);
 
-                       values [ins->dreg] = LLVMBuildCall (builder, LLVMGetNamedFunction (lmodule, simd_op_to_intrins (ins->opcode)), args, 3, dname);
+                       values [ins->dreg] = LLVMBuildCall (builder, get_intrinsic (ctx, simd_op_to_intrins (ins->opcode)), args, 3, dname);
                        break;
                }
 
@@ -5910,7 +6008,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                        args [0] = lhs;
                        args [1] = LLVMConstInt (LLVMInt32Type (), ins->inst_imm, FALSE);
 
-                       values [ins->dreg] = LLVMBuildCall (builder, LLVMGetNamedFunction (lmodule, simd_op_to_intrins (ins->opcode)), args, 2, dname);
+                       values [ins->dreg] = LLVMBuildCall (builder, get_intrinsic (ctx, simd_op_to_intrins (ins->opcode)), args, 2, dname);
                        break;
                }
 
@@ -5927,7 +6025,7 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                        args [0] = lhs;
                        args [1] = values [ins->sreg2];
 
-                       values [ins->dreg] = LLVMBuildCall (builder, LLVMGetNamedFunction (lmodule, simd_op_to_intrins (ins->opcode)), args, 2, dname);
+                       values [ins->dreg] = LLVMBuildCall (builder, get_intrinsic (ctx, simd_op_to_intrins (ins->opcode)), args, 2, dname);
                        break;
                }
 
@@ -6215,7 +6313,17 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
                                if (ctx->cfg->compile_aot) {
                                        callee = get_callee (ctx, LLVMFunctionType (LLVMVoidType (), NULL, 0, FALSE), MONO_PATCH_INFO_INTERNAL_METHOD, "llvm_resume_unwind_trampoline");
                                } else {
-                                       callee = LLVMGetNamedFunction (lmodule, "llvm_resume_unwind_trampoline");
+#if LLVM_API_VERSION > 100
+                                       MonoJitICallInfo *info;
+
+                                       info = mono_find_jit_icall_by_name ("llvm_resume_unwind_trampoline");
+                                       g_assert (info);
+                                       gpointer target = (void*)info->func;
+                                       LLVMTypeRef icall_sig = LLVMFunctionType (LLVMVoidType (), NULL, 0, FALSE);
+                                       callee = emit_jit_callee (ctx, "llvm_resume_unwind_trampoline", icall_sig, target);
+#else
+                                       callee = LLVMGetNamedFunction (ctx->lmodule, "llvm_resume_unwind_trampoline");
+#endif
                                }
                                LLVMBuildCall (builder, callee, NULL, 0, "");
                                LLVMBuildUnreachable (builder);
@@ -6396,6 +6504,7 @@ free_ctx (EmitContext *ctx)
        g_free (ctx->bblocks);
        g_hash_table_destroy (ctx->region_to_handler);
        g_hash_table_destroy (ctx->clause_to_handler);
+       g_hash_table_destroy (ctx->jit_callees);
        g_free (ctx->method_name);
        g_ptr_array_free (ctx->bblock_list, TRUE);
 
@@ -6454,6 +6563,7 @@ mono_llvm_emit_method (MonoCompile *cfg)
        ctx->region_to_handler = g_hash_table_new (NULL, NULL);
        ctx->clause_to_handler = g_hash_table_new (NULL, NULL);
        ctx->method_to_callers = g_hash_table_new (NULL, NULL);
+       ctx->jit_callees = g_hash_table_new (NULL, NULL);
        if (cfg->compile_aot) {
                ctx->module = &aot_module;
 
@@ -6487,7 +6597,11 @@ mono_llvm_emit_method (MonoCompile *cfg)
        ctx->method_name = method_name;
        ctx->is_linkonce = is_linkonce;
 
+#if LLVM_API_VERSION > 100
+       ctx->lmodule = LLVMModuleCreateWithName ("jit-module");
+#else
        ctx->lmodule = ctx->module->lmodule;
+#endif
        ctx->llvm_only = ctx->module->llvm_only;
 
        emit_method_inner (ctx);
@@ -6595,7 +6709,11 @@ emit_method_inner (EmitContext *ctx)
                        LLVMSetVisibility (method, LLVMDefaultVisibility);
                }
        } else {
+#if LLVM_API_VERSION > 100
+               LLVMSetLinkage (method, LLVMExternalLinkage);
+#else
                LLVMSetLinkage (method, LLVMPrivateLinkage);
+#endif
        }
 
        if (cfg->method->save_lmf && !cfg->llvm_only) {
@@ -6994,6 +7112,46 @@ emit_method_inner (EmitContext *ctx)
 #endif
        } else {
                //LLVMVerifyFunction(method, 0);
+#if LLVM_API_VERSION > 100
+               MonoDomain *domain = mono_domain_get ();
+               MonoJitDomainInfo *domain_info;
+               int nvars = g_hash_table_size (ctx->jit_callees);
+               LLVMValueRef *callee_vars = g_new0 (LLVMValueRef, nvars); 
+               gpointer *callee_addrs = g_new0 (gpointer, nvars);
+               GHashTableIter iter;
+               LLVMValueRef var;
+               MonoMethod *callee;
+               gpointer eh_frame;
+
+               /*
+                * Compute the addresses of the LLVM globals pointing to the
+                * methods called by the current method. Pass it to the trampoline
+                * code so it can update them after their corresponding method was
+                * compiled.
+                */
+               g_hash_table_iter_init (&iter, ctx->jit_callees);
+               i = 0;
+               while (g_hash_table_iter_next (&iter, NULL, (void**)&var))
+                       callee_vars [i ++] = var;
+
+               cfg->native_code = mono_llvm_compile_method (ctx->module->mono_ee, ctx->lmethod, nvars, callee_vars, callee_addrs, &eh_frame);
+
+               decode_llvm_eh_info (ctx, eh_frame);
+
+               mono_domain_lock (domain);
+               domain_info = domain_jit_info (domain);
+               if (!domain_info->llvm_jit_callees)
+                       domain_info->llvm_jit_callees = g_hash_table_new (NULL, NULL);
+               g_hash_table_iter_init (&iter, ctx->jit_callees);
+               i = 0;
+               while (g_hash_table_iter_next (&iter, (void**)&callee, (void**)&var)) {
+                       GSList *addrs = g_hash_table_lookup (domain_info->llvm_jit_callees, callee);
+                       addrs = g_slist_prepend (addrs, callee_addrs [i]);
+                       g_hash_table_insert (domain_info->llvm_jit_callees, callee, addrs);
+                       i ++;
+               }
+               mono_domain_unlock (domain);
+#else
                mono_llvm_optimize_method (ctx->module->mono_ee, ctx->lmethod);
 
                if (cfg->verbose_level > 1)
@@ -7003,6 +7161,7 @@ emit_method_inner (EmitContext *ctx)
 
                /* Set by emit_cb */
                g_assert (cfg->code_len);
+#endif
        }
 
        if (ctx->module->method_to_lmethod)
@@ -7242,6 +7401,90 @@ exception_cb (void *data)
        g_free (type_info);
 }
 
+#if LLVM_API_VERSION > 100
+/*
+ * decode_llvm_eh_info:
+ *
+ *   Decode the EH table emitted by llvm in jit mode, and store
+ * the result into cfg.
+ */
+static void
+decode_llvm_eh_info (EmitContext *ctx, gpointer eh_frame)
+{
+       MonoCompile *cfg = ctx->cfg;
+       guint8 *cie, *fde;
+       int fde_len;
+       MonoLLVMFDEInfo info;
+       MonoJitExceptionInfo *ei;
+       guint8 *p = eh_frame;
+       int version, fde_count, fde_offset;
+       guint32 ei_len, i, nested_len;
+       gpointer *type_info;
+       gint32 *table;
+
+       /*
+        * Decode the one element EH table emitted by the MonoException class
+        * in llvm.
+        */
+
+       /* Similar to decode_llvm_mono_eh_frame () in aot-runtime.c */
+
+       version = *p;
+       g_assert (version == 3);
+       p ++;
+       p ++;
+       p = (guint8 *)ALIGN_PTR_TO (p, 4);
+
+       fde_count = *(guint32*)p;
+       p += 4;
+       table = (gint32*)p;
+
+       g_assert (fde_count == 1);
+
+       /* The only table entry */
+       fde_offset = table [1];
+       table += 2;
+       /* Extra entry */
+       cfg->code_len = table [0];
+       fde_len = table [1] - fde_offset;
+       table += 2;
+
+       fde = (guint8*)eh_frame + fde_offset;
+       cie = (guint8*)table;
+
+       mono_unwind_decode_llvm_mono_fde (fde, fde_len, cie, cfg->native_code, &info);
+
+       cfg->encoded_unwind_ops = info.unw_info;
+       cfg->encoded_unwind_ops_len = info.unw_info_len;
+       if (cfg->verbose_level > 1)
+               mono_print_unwind_info (cfg->encoded_unwind_ops, cfg->encoded_unwind_ops_len);
+       if (info.this_reg != -1) {
+               cfg->llvm_this_reg = info.this_reg;
+               cfg->llvm_this_offset = info.this_offset;
+       }
+
+       ei = info.ex_info;
+       ei_len = info.ex_info_len;
+       type_info = info.type_info;
+
+       // Nested clauses are currently disabled
+       nested_len = 0;
+
+       cfg->llvm_ex_info = (MonoJitExceptionInfo*)mono_mempool_alloc0 (cfg->mempool, (ei_len + nested_len) * sizeof (MonoJitExceptionInfo));
+       cfg->llvm_ex_info_len = ei_len + nested_len;
+       memcpy (cfg->llvm_ex_info, ei, ei_len * sizeof (MonoJitExceptionInfo));
+       /* Fill the rest of the information from the type info */
+       for (i = 0; i < ei_len; ++i) {
+               gint32 clause_index = *(gint32*)type_info [i];
+               MonoExceptionClause *clause = &cfg->header->clauses [clause_index];
+
+               cfg->llvm_ex_info [i].flags = clause->flags;
+               cfg->llvm_ex_info [i].data.catch_class = clause->data.catch_class;
+               cfg->llvm_ex_info [i].clause_index = clause_index;
+       }
+}
+#endif
+
 static char*
 dlsym_cb (const char *name, void **symbol)
 {
@@ -7282,226 +7525,478 @@ AddFunc2 (LLVMModuleRef module, const char *name, LLVMTypeRef ret_type, LLVMType
        AddFunc (module, name, ret_type, param_types, 2);
 }
 
+typedef enum {
+       INTRINS_MEMSET,
+       INTRINS_MEMCPY,
+       INTRINS_SADD_OVF_I32,
+       INTRINS_UADD_OVF_I32,
+       INTRINS_SSUB_OVF_I32,
+       INTRINS_USUB_OVF_I32,
+       INTRINS_SMUL_OVF_I32,
+       INTRINS_UMUL_OVF_I32,
+       INTRINS_SADD_OVF_I64,
+       INTRINS_UADD_OVF_I64,
+       INTRINS_SSUB_OVF_I64,
+       INTRINS_USUB_OVF_I64,
+       INTRINS_SMUL_OVF_I64,
+       INTRINS_UMUL_OVF_I64,
+       INTRINS_SIN,
+       INTRINS_COS,
+       INTRINS_SQRT,
+       INTRINS_FABS,
+       INTRINS_EXPECT_I8,
+       INTRINS_EXPECT_I1,
+#if defined(TARGET_AMD64) || defined(TARGET_X86)
+       INTRINS_SSE_PMOVMSKB,
+       INTRINS_SSE_PSRLI_W,
+       INTRINS_SSE_PSRAI_W,
+       INTRINS_SSE_PSLLI_W,
+       INTRINS_SSE_PSRLI_D,
+       INTRINS_SSE_PSRAI_D,
+       INTRINS_SSE_PSLLI_D,
+       INTRINS_SSE_PSRLI_Q,
+       INTRINS_SSE_PSLLI_Q,
+       INTRINS_SSE_SQRT_PD,
+       INTRINS_SSE_SQRT_PS,
+       INTRINS_SSE_RSQRT_PS,
+       INTRINS_SSE_RCP_PS,
+       INTRINS_SSE_CVTTPD2DQ,
+       INTRINS_SSE_CVTTPS2DQ,
+       INTRINS_SSE_CVTDQ2PD,
+       INTRINS_SSE_CVTDQ2PS,
+       INTRINS_SSE_CVTPD2DQ,
+       INTRINS_SSE_CVTPS2DQ,
+       INTRINS_SSE_CVTPD2PS,
+       INTRINS_SSE_CVTPS2PD,
+       INTRINS_SSE_CMPPD,
+       INTRINS_SSE_CMPPS,
+       INTRINS_SSE_PACKSSWB,
+       INTRINS_SSE_PACKUSWB,
+       INTRINS_SSE_PACKSSDW,
+       INTRINS_SSE_PACKUSDW,
+       INTRINS_SSE_MINPS,
+       INTRINS_SSE_MAXPS,
+       INTRINS_SSE_HADDPS,
+       INTRINS_SSE_HSUBPS,
+       INTRINS_SSE_ADDSUBPS,
+       INTRINS_SSE_MINPD,
+       INTRINS_SSE_MAXPD,
+       INTRINS_SSE_HADDPD,
+       INTRINS_SSE_HSUBPD,
+       INTRINS_SSE_ADDSUBPD,
+       INTRINS_SSE_PMINUD,
+       INTRINS_SSE_PMAXUD,
+       INTRINS_SSE_PMINUW,
+       INTRINS_SSE_PMINSW,
+       INTRINS_SSE_PMAXUW,
+       INTRINS_SSE_PADDSW,
+       INTRINS_SSE_PSUBSW,
+       INTRINS_SSE_PADDUSW,
+       INTRINS_SSE_PSUBUSW,
+       INTRINS_SSE_PAVGW,
+       INTRINS_SSE_PMULHW,
+       INTRINS_SSE_PMULHU,
+       INTRINS_SSE_PMINUB,
+       INTRINS_SSE_PMAXUB,
+       INTRINS_SE_PADDSB,
+       INTRINS_SSE_PSUBSB,
+       INTRINS_SSE_PADDUSB,
+       INTRINS_SSE_PSUBUSB,
+       INTRINS_SSE_PAVGB,
+       INTRINS_SSE_PAUSE,
+#endif
+       INTRINS_NUM
+} IntrinsicId;
+
+typedef struct {
+       IntrinsicId id;
+       const char *name;
+} IntrinsicDesc;
+
+static IntrinsicDesc intrinsics[] = {
+       {INTRINS_MEMSET, "llvm.memset.p0i8.i32"},
+       {INTRINS_MEMCPY, "llvm.memcpy.p0i8.p0i8.i32"},
+       {INTRINS_SADD_OVF_I32, "llvm.sadd.with.overflow.i32"},
+       {INTRINS_UADD_OVF_I32, "llvm.uadd.with.overflow.i32"},
+       {INTRINS_SSUB_OVF_I32, "llvm.ssub.with.overflow.i32"},
+       {INTRINS_USUB_OVF_I32, "llvm.usub.with.overflow.i32"},
+       {INTRINS_SMUL_OVF_I32, "llvm.smul.with.overflow.i32"},
+       {INTRINS_UMUL_OVF_I32, "llvm.umul.with.overflow.i32"},
+       {INTRINS_SADD_OVF_I64, "llvm.sadd.with.overflow.i64"},
+       {INTRINS_UADD_OVF_I64, "llvm.uadd.with.overflow.i64"},
+       {INTRINS_SSUB_OVF_I64, "llvm.ssub.with.overflow.i64"},
+       {INTRINS_USUB_OVF_I64, "llvm.usub.with.overflow.i64"},
+       {INTRINS_SMUL_OVF_I64, "llvm.smul.with.overflow.i64"},
+       {INTRINS_UMUL_OVF_I64, "llvm.umul.with.overflow.i64"},
+       {INTRINS_SIN, "llvm.sin.f64"},
+       {INTRINS_COS, "llvm.cos.f64"},
+       {INTRINS_SQRT, "llvm.sqrt.f64"},
+       /* This isn't an intrinsic, instead llvm seems to special case it by name */
+       {INTRINS_FABS, "fabs"},
+       {INTRINS_EXPECT_I8, "llvm.expect.i8"},
+       {INTRINS_EXPECT_I1, "llvm.expect.i1"},
+#if defined(TARGET_AMD64) || defined(TARGET_X86)
+       {INTRINS_SSE_PMOVMSKB, "llvm.x86.sse2.pmovmskb.128"},
+       {INTRINS_SSE_PSRLI_W, "llvm.x86.sse2.psrli.w"},
+       {INTRINS_SSE_PSRAI_W, "llvm.x86.sse2.psrai.w"},
+       {INTRINS_SSE_PSLLI_W, "llvm.x86.sse2.pslli.w"},
+       {INTRINS_SSE_PSRLI_D, "llvm.x86.sse2.psrli.d"},
+       {INTRINS_SSE_PSRAI_D, "llvm.x86.sse2.psrai.d"},
+       {INTRINS_SSE_PSLLI_D, "llvm.x86.sse2.pslli.d"},
+       {INTRINS_SSE_PSRLI_Q, "llvm.x86.sse2.psrli.q"},
+       {INTRINS_SSE_PSLLI_Q, "llvm.x86.sse2.pslli.q"},
+       {INTRINS_SSE_SQRT_PD, "llvm.x86.sse2.sqrt.pd"},
+       {INTRINS_SSE_SQRT_PS, "llvm.x86.sse.sqrt.ps"},
+       {INTRINS_SSE_RSQRT_PS, "llvm.x86.sse.rsqrt.ps"},
+       {INTRINS_SSE_RCP_PS, "llvm.x86.sse.rcp.ps"},
+       {INTRINS_SSE_CVTTPD2DQ, "llvm.x86.sse2.cvttpd2dq"},
+       {INTRINS_SSE_CVTTPS2DQ, "llvm.x86.sse2.cvttps2dq"},
+       {INTRINS_SSE_CVTDQ2PD, "llvm.x86.sse2.cvtdq2pd"},
+       {INTRINS_SSE_CVTDQ2PS, "llvm.x86.sse2.cvtdq2ps"},
+       {INTRINS_SSE_CVTPD2DQ, "llvm.x86.sse2.cvtpd2dq"},
+       {INTRINS_SSE_CVTPS2DQ, "llvm.x86.sse2.cvtps2dq"},
+       {INTRINS_SSE_CVTPD2PS, "llvm.x86.sse2.cvtpd2ps"},
+       {INTRINS_SSE_CVTPS2PD, "llvm.x86.sse2.cvtps2pd"},
+       {INTRINS_SSE_CMPPD, "llvm.x86.sse2.cmp.pd"},
+       {INTRINS_SSE_CMPPS, "llvm.x86.sse.cmp.ps"},
+       {INTRINS_SSE_PACKSSWB, "llvm.x86.sse2.packsswb.128"},
+       {INTRINS_SSE_PACKUSWB, "llvm.x86.sse2.packuswb.128"},
+       {INTRINS_SSE_PACKSSDW, "llvm.x86.sse2.packssdw.128"},
+       {INTRINS_SSE_PACKUSDW, "llvm.x86.sse41.packusdw"},
+       {INTRINS_SSE_MINPS, "llvm.x86.sse.min.ps"},
+       {INTRINS_SSE_MAXPS, "llvm.x86.sse.max.ps"},
+       {INTRINS_SSE_HADDPS, "llvm.x86.sse3.hadd.ps"},
+       {INTRINS_SSE_HSUBPS, "llvm.x86.sse3.hsub.ps"},
+       {INTRINS_SSE_ADDSUBPS, "llvm.x86.sse3.addsub.ps"},
+       {INTRINS_SSE_MINPD, "llvm.x86.sse2.min.pd"},
+       {INTRINS_SSE_MAXPD, "llvm.x86.sse2.max.pd"},
+       {INTRINS_SSE_HADDPD, "llvm.x86.sse3.hadd.pd"},
+       {INTRINS_SSE_HSUBPD, "llvm.x86.sse3.hsub.pd"},
+       {INTRINS_SSE_ADDSUBPD, "llvm.x86.sse3.addsub.pd"},
+       {INTRINS_SSE_PMINUD, "llvm.x86.sse41.pminud"},
+       {INTRINS_SSE_PMAXUD, "llvm.x86.sse41.pmaxud"},
+       {INTRINS_SSE_PMINUW, "llvm.x86.sse41.pminuw"},
+       {INTRINS_SSE_PMINSW, "llvm.x86.sse2.pmins.w"},
+       {INTRINS_SSE_PMAXUW, "llvm.x86.sse41.pmaxuw"},
+       {INTRINS_SSE_PADDSW, "llvm.x86.sse2.padds.w"},
+       {INTRINS_SSE_PSUBSW, "llvm.x86.sse2.psubs.w"},
+       {INTRINS_SSE_PADDUSW, "llvm.x86.sse2.paddus.w"},
+       {INTRINS_SSE_PSUBUSW, "llvm.x86.sse2.psubus.w"},
+       {INTRINS_SSE_PAVGW, "llvm.x86.sse2.pavg.w"},
+       {INTRINS_SSE_PMULHW, "llvm.x86.sse2.pmulh.w"},
+       {INTRINS_SSE_PMULHU, "llvm.x86.sse2.pmulhu.w"},
+       {INTRINS_SSE_PMINUB, "llvm.x86.sse2.pminu.b"},
+       {INTRINS_SSE_PMAXUB, "llvm.x86.sse2.pmaxu.b"},
+       {INTRINS_SE_PADDSB, "llvm.x86.sse2.padds.b"},
+       {INTRINS_SSE_PSUBSB, "llvm.x86.sse2.psubs.b"},
+       {INTRINS_SSE_PADDUSB, "llvm.x86.sse2.paddus.b"},
+       {INTRINS_SSE_PSUBUSB, "llvm.x86.sse2.psubus.b"},
+       {INTRINS_SSE_PAVGB, "llvm.x86.sse2.pavg.b"},
+       {INTRINS_SSE_PAUSE, "llvm.x86.sse2.pause"}
+#endif
+};
+
 static void
-add_intrinsics (LLVMModuleRef module)
+add_sse_binary (LLVMModuleRef module, const char *name, int type)
 {
-       /* Emit declarations of instrinsics */
-       /*
-        * It would be nicer to emit only the intrinsics actually used, but LLVM's Module
-        * type doesn't seem to do any locking.
-        */
-       {
-               LLVMTypeRef params [] = { LLVMPointerType (LLVMInt8Type (), 0), LLVMInt8Type (), LLVMInt32Type (), LLVMInt32Type (), LLVMInt1Type () };
-
-               memset_param_count = 5;
-               memset_func_name = "llvm.memset.p0i8.i32";
+       LLVMTypeRef ret_type = type_to_simd_type (type);
+       AddFunc2 (module, name, ret_type, ret_type, ret_type);
+}
 
-               AddFunc (module, memset_func_name, LLVMVoidType (), params, memset_param_count);
-       }
+static void
+add_intrinsic (LLVMModuleRef module, int id)
+{
+       const char *name;
+       LLVMTypeRef ret_type, arg_types [16];
 
-       {
-               LLVMTypeRef params [] = { LLVMPointerType (LLVMInt8Type (), 0), LLVMPointerType (LLVMInt8Type (), 0), LLVMInt32Type (), LLVMInt32Type (), LLVMInt1Type () };
+       name = g_hash_table_lookup (intrins_id_to_name, GINT_TO_POINTER (id));
+       g_assert (name);
 
-               memcpy_param_count = 5;
-               memcpy_func_name = "llvm.memcpy.p0i8.p0i8.i32";
+       switch (id) {
+       case INTRINS_MEMSET: {
+               LLVMTypeRef params [] = { LLVMPointerType (LLVMInt8Type (), 0), LLVMInt8Type (), LLVMInt32Type (), LLVMInt32Type (), LLVMInt1Type () };
 
-               AddFunc (module, memcpy_func_name, LLVMVoidType (), params, memcpy_param_count);
+               AddFunc (module, name, LLVMVoidType (), params, 5);
+               break;
        }
+       case INTRINS_MEMCPY: {
+               LLVMTypeRef params [] = { LLVMPointerType (LLVMInt8Type (), 0), LLVMPointerType (LLVMInt8Type (), 0), LLVMInt32Type (), LLVMInt32Type (), LLVMInt1Type () };
 
-       {
-               LLVMTypeRef params [] = { LLVMDoubleType () };
-
-               AddFunc (module, "llvm.sin.f64", LLVMDoubleType (), params, 1);
-               AddFunc (module, "llvm.cos.f64", LLVMDoubleType (), params, 1);
-               AddFunc (module, "llvm.sqrt.f64", LLVMDoubleType (), params, 1);
-
-               /* This isn't an intrinsic, instead llvm seems to special case it by name */
-               AddFunc (module, "fabs", LLVMDoubleType (), params, 1);
+               AddFunc (module, name, LLVMVoidType (), params, 5);
+               break;
        }
-
-       {
+       case INTRINS_SADD_OVF_I32:
+       case INTRINS_UADD_OVF_I32:
+       case INTRINS_SSUB_OVF_I32:
+       case INTRINS_USUB_OVF_I32:
+       case INTRINS_SMUL_OVF_I32:
+       case INTRINS_UMUL_OVF_I32: {
                LLVMTypeRef ovf_res_i32 [] = { LLVMInt32Type (), LLVMInt1Type () };
                LLVMTypeRef params [] = { LLVMInt32Type (), LLVMInt32Type () };
                LLVMTypeRef ret_type = LLVMStructType (ovf_res_i32, 2, FALSE);
 
-               AddFunc (module, "llvm.sadd.with.overflow.i32", ret_type, params, 2);
-               AddFunc (module, "llvm.sadd.with.overflow.i32", ret_type, params, 2);
-               AddFunc (module, "llvm.uadd.with.overflow.i32", ret_type, params, 2);
-               AddFunc (module, "llvm.ssub.with.overflow.i32", ret_type, params, 2);
-               AddFunc (module, "llvm.usub.with.overflow.i32", ret_type, params, 2);
-               AddFunc (module, "llvm.smul.with.overflow.i32", ret_type, params, 2);
-               AddFunc (module, "llvm.umul.with.overflow.i32", ret_type, params, 2);
+               AddFunc (module, name, ret_type, params, 2);
+               break;
        }
-
-       {
+       case INTRINS_SADD_OVF_I64:
+       case INTRINS_UADD_OVF_I64:
+       case INTRINS_SSUB_OVF_I64:
+       case INTRINS_USUB_OVF_I64:
+       case INTRINS_SMUL_OVF_I64:
+       case INTRINS_UMUL_OVF_I64: {
                LLVMTypeRef ovf_res_i64 [] = { LLVMInt64Type (), LLVMInt1Type () };
                LLVMTypeRef params [] = { LLVMInt64Type (), LLVMInt64Type () };
                LLVMTypeRef ret_type = LLVMStructType (ovf_res_i64, 2, FALSE);
 
-               AddFunc (module, "llvm.sadd.with.overflow.i64", ret_type, params, 2);
-               AddFunc (module, "llvm.uadd.with.overflow.i64", ret_type, params, 2);
-               AddFunc (module, "llvm.ssub.with.overflow.i64", ret_type, params, 2);
-               AddFunc (module, "llvm.usub.with.overflow.i64", ret_type, params, 2);
-               AddFunc (module, "llvm.smul.with.overflow.i64", ret_type, params, 2);
-               AddFunc (module, "llvm.umul.with.overflow.i64", ret_type, params, 2);
+               AddFunc (module, name, ret_type, params, 2);
+               break;
        }
+       case INTRINS_SIN:
+       case INTRINS_COS:
+       case INTRINS_SQRT:
+       case INTRINS_FABS: {
+               LLVMTypeRef params [] = { LLVMDoubleType () };
 
-       AddFunc2 (module, "llvm.expect.i8", LLVMInt8Type (), LLVMInt8Type (), LLVMInt8Type ());
-       AddFunc2 (module, "llvm.expect.i1", LLVMInt1Type (), LLVMInt1Type (), LLVMInt1Type ());
-
-       /* EH intrinsics */
-       {
-               AddFunc (module, "mono_personality", LLVMVoidType (), NULL, 0);
-
-               AddFunc (module, "llvm_resume_unwind_trampoline", LLVMVoidType (), NULL, 0);
+               AddFunc (module, name, LLVMDoubleType (), params, 1);
+               break;
        }
-
-       /* SSE intrinsics */
-#if defined(TARGET_X86) || defined(TARGET_AMD64)
-       {
-               LLVMTypeRef ret_type, arg_types [16];
-
-               /* Binary ops */
-               ret_type = type_to_simd_type (MONO_TYPE_I4);
-               arg_types [0] = ret_type;
-               arg_types [1] = ret_type;
-               AddFunc (module, "llvm.x86.sse41.pminud", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse41.pmaxud", ret_type, arg_types, 2);
-
+       case INTRINS_EXPECT_I8:
+               AddFunc2 (module, name, LLVMInt8Type (), LLVMInt8Type (), LLVMInt8Type ());
+               break;
+       case INTRINS_EXPECT_I1:
+               AddFunc2 (module, name, LLVMInt1Type (), LLVMInt1Type (), LLVMInt1Type ());
+               break;
+#if defined(TARGET_AMD64) || defined(TARGET_X86)
+       case INTRINS_SSE_PMOVMSKB:
+               /* pmovmskb */
+               ret_type = LLVMInt32Type ();
+               arg_types [0] = type_to_simd_type (MONO_TYPE_I1);
+               AddFunc (module, name, ret_type, arg_types, 1);
+               break;
+       case INTRINS_SSE_PSRLI_W:
+       case INTRINS_SSE_PSRAI_W:
+       case INTRINS_SSE_PSLLI_W:
+               /* shifts */
                ret_type = type_to_simd_type (MONO_TYPE_I2);
                arg_types [0] = ret_type;
-               arg_types [1] = ret_type;
-               AddFunc (module, "llvm.x86.sse41.pminuw", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.pmins.w", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse41.pmaxuw", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.padds.w", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.psubs.w", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.paddus.w", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.psubus.w", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.pavg.w", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.pmulh.w", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.pmulhu.w", ret_type, arg_types, 2);
-
-               ret_type = type_to_simd_type (MONO_TYPE_I1);
+               arg_types [1] = LLVMInt32Type ();
+               AddFunc (module, name, ret_type, arg_types, 2);
+               break;
+       case INTRINS_SSE_PSRLI_D:
+       case INTRINS_SSE_PSRAI_D:
+       case INTRINS_SSE_PSLLI_D:
+               ret_type = type_to_simd_type (MONO_TYPE_I4);
                arg_types [0] = ret_type;
-               arg_types [1] = ret_type;
-               AddFunc (module, "llvm.x86.sse2.pminu.b", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.pmaxu.b", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.padds.b", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.psubs.b", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.paddus.b", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.psubus.b", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.pavg.b", ret_type, arg_types, 2);
-
+               arg_types [1] = LLVMInt32Type ();
+               AddFunc (module, name, ret_type, arg_types, 2);
+               break;
+       case INTRINS_SSE_PSRLI_Q:
+       case INTRINS_SSE_PSLLI_Q:
+               ret_type = type_to_simd_type (MONO_TYPE_I8);
+               arg_types [0] = ret_type;
+               arg_types [1] = LLVMInt32Type ();
+               AddFunc (module, name, ret_type, arg_types, 2);
+               break;
+       case INTRINS_SSE_SQRT_PD:
+               /* Unary ops */
                ret_type = type_to_simd_type (MONO_TYPE_R8);
                arg_types [0] = ret_type;
-               arg_types [1] = ret_type;
-               AddFunc (module, "llvm.x86.sse2.min.pd", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.max.pd", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse3.hadd.pd", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse3.hsub.pd", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse3.addsub.pd", ret_type, arg_types, 2);
-
+               AddFunc (module, name, ret_type, arg_types, 1);
+               break;
+       case INTRINS_SSE_SQRT_PS:
                ret_type = type_to_simd_type (MONO_TYPE_R4);
                arg_types [0] = ret_type;
-               arg_types [1] = ret_type;
-               AddFunc (module, "llvm.x86.sse.min.ps", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse.max.ps", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse3.hadd.ps", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse3.hsub.ps", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse3.addsub.ps", ret_type, arg_types, 2);
-
-               /* pack */
-               ret_type = type_to_simd_type (MONO_TYPE_I1);
-               arg_types [0] = type_to_simd_type (MONO_TYPE_I2);
-               arg_types [1] = type_to_simd_type (MONO_TYPE_I2);
-               AddFunc (module, "llvm.x86.sse2.packsswb.128", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.packuswb.128", ret_type, arg_types, 2);
-               ret_type = type_to_simd_type (MONO_TYPE_I2);
-               arg_types [0] = type_to_simd_type (MONO_TYPE_I4);
-               arg_types [1] = type_to_simd_type (MONO_TYPE_I4);
-               AddFunc (module, "llvm.x86.sse2.packssdw.128", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse41.packusdw", ret_type, arg_types, 2);
-
-               /* cmp pd/ps */
-               ret_type = type_to_simd_type (MONO_TYPE_R8);
+               AddFunc (module, name, ret_type, arg_types, 1);
+               break;
+       case INTRINS_SSE_RSQRT_PS:
+               ret_type = type_to_simd_type (MONO_TYPE_R4);
                arg_types [0] = ret_type;
-               arg_types [1] = ret_type;
-               arg_types [2] = LLVMInt8Type ();
-               AddFunc (module, "llvm.x86.sse2.cmp.pd", ret_type, arg_types, 3);
+               AddFunc (module, name, ret_type, arg_types, 1);
+               break;
+       case INTRINS_SSE_RCP_PS:
                ret_type = type_to_simd_type (MONO_TYPE_R4);
                arg_types [0] = ret_type;
-               arg_types [1] = ret_type;
-               arg_types [2] = LLVMInt8Type ();
-               AddFunc (module, "llvm.x86.sse.cmp.ps", ret_type, arg_types, 3);
-
+               AddFunc (module, name, ret_type, arg_types, 1);
+               break;
+       case INTRINS_SSE_CVTTPD2DQ:
+               ret_type = type_to_simd_type (MONO_TYPE_I4);
+               arg_types [0] = type_to_simd_type (MONO_TYPE_R8);
+               AddFunc (module, name, ret_type, arg_types, 1);
+               break;
+       case INTRINS_SSE_CVTTPS2DQ:
+               ret_type = type_to_simd_type (MONO_TYPE_I4);
+               arg_types [0] = type_to_simd_type (MONO_TYPE_R4);
+               AddFunc (module, name, ret_type, arg_types, 1);
+               break;
+       case INTRINS_SSE_CVTDQ2PD:
                /* Conversion ops */
                ret_type = type_to_simd_type (MONO_TYPE_R8);
                arg_types [0] = type_to_simd_type (MONO_TYPE_I4);
-               AddFunc (module, "llvm.x86.sse2.cvtdq2pd", ret_type, arg_types, 1);
+               AddFunc (module, name, ret_type, arg_types, 1);
+               break;
+       case INTRINS_SSE_CVTDQ2PS:
                ret_type = type_to_simd_type (MONO_TYPE_R4);
                arg_types [0] = type_to_simd_type (MONO_TYPE_I4);
-               AddFunc (module, "llvm.x86.sse2.cvtdq2ps", ret_type, arg_types, 1);
+               AddFunc (module, name, ret_type, arg_types, 1);
+               break;
+       case INTRINS_SSE_CVTPD2DQ:
                ret_type = type_to_simd_type (MONO_TYPE_I4);
                arg_types [0] = type_to_simd_type (MONO_TYPE_R8);
-               AddFunc (module, "llvm.x86.sse2.cvtpd2dq", ret_type, arg_types, 1);
+               AddFunc (module, name, ret_type, arg_types, 1);
+               break;
+       case INTRINS_SSE_CVTPS2DQ:
                ret_type = type_to_simd_type (MONO_TYPE_I4);
                arg_types [0] = type_to_simd_type (MONO_TYPE_R4);
-               AddFunc (module, "llvm.x86.sse2.cvtps2dq", ret_type, arg_types, 1);
+               AddFunc (module, name, ret_type, arg_types, 1);
+               break;
+       case INTRINS_SSE_CVTPD2PS:
                ret_type = type_to_simd_type (MONO_TYPE_R4);
                arg_types [0] = type_to_simd_type (MONO_TYPE_R8);
-               AddFunc (module, "llvm.x86.sse2.cvtpd2ps", ret_type, arg_types, 1);
+               AddFunc (module, name, ret_type, arg_types, 1);
+               break;
+       case INTRINS_SSE_CVTPS2PD:
                ret_type = type_to_simd_type (MONO_TYPE_R8);
                arg_types [0] = type_to_simd_type (MONO_TYPE_R4);
-               AddFunc (module, "llvm.x86.sse2.cvtps2pd", ret_type, arg_types, 1);
-
-               ret_type = type_to_simd_type (MONO_TYPE_I4);
-               arg_types [0] = type_to_simd_type (MONO_TYPE_R8);
-               AddFunc (module, "llvm.x86.sse2.cvttpd2dq", ret_type, arg_types, 1);
-               ret_type = type_to_simd_type (MONO_TYPE_I4);
-               arg_types [0] = type_to_simd_type (MONO_TYPE_R4);
-               AddFunc (module, "llvm.x86.sse2.cvttps2dq", ret_type, arg_types, 1);
-
-               /* Unary ops */
+               AddFunc (module, name, ret_type, arg_types, 1);
+               break;
+       case INTRINS_SSE_CMPPD:
+               /* cmp pd/ps */
                ret_type = type_to_simd_type (MONO_TYPE_R8);
                arg_types [0] = ret_type;
-               AddFunc (module, "llvm.x86.sse2.sqrt.pd", ret_type, arg_types, 1);
-               ret_type = type_to_simd_type (MONO_TYPE_R4);
-               arg_types [0] = ret_type;
-               AddFunc (module, "llvm.x86.sse.sqrt.ps", ret_type, arg_types, 1);
-               ret_type = type_to_simd_type (MONO_TYPE_R4);
-               arg_types [0] = ret_type;
-               AddFunc (module, "llvm.x86.sse.rsqrt.ps", ret_type, arg_types, 1);
+               arg_types [1] = ret_type;
+               arg_types [2] = LLVMInt8Type ();
+               AddFunc (module, name, ret_type, arg_types, 3);
+               break;
+       case INTRINS_SSE_CMPPS:
                ret_type = type_to_simd_type (MONO_TYPE_R4);
                arg_types [0] = ret_type;
-               AddFunc (module, "llvm.x86.sse.rcp.ps", ret_type, arg_types, 1);
-
-               /* shifts */
+               arg_types [1] = ret_type;
+               arg_types [2] = LLVMInt8Type ();
+               AddFunc (module, name, ret_type, arg_types, 3);
+               break;
+       case INTRINS_SSE_PACKSSWB:
+       case INTRINS_SSE_PACKUSWB:
+       case INTRINS_SSE_PACKSSDW:
+               /* pack */
+               ret_type = type_to_simd_type (MONO_TYPE_I1);
+               arg_types [0] = type_to_simd_type (MONO_TYPE_I2);
+               arg_types [1] = type_to_simd_type (MONO_TYPE_I2);
+               AddFunc (module, name, ret_type, arg_types, 2);
+               break;
+       case INTRINS_SSE_PACKUSDW:
                ret_type = type_to_simd_type (MONO_TYPE_I2);
-               arg_types [0] = ret_type;
-               arg_types [1] = LLVMInt32Type ();
-               AddFunc (module, "llvm.x86.sse2.psrli.w", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.psrai.w", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.pslli.w", ret_type, arg_types, 2);
-               ret_type = type_to_simd_type (MONO_TYPE_I4);
-               arg_types [0] = ret_type;
-               arg_types [1] = LLVMInt32Type ();
-               AddFunc (module, "llvm.x86.sse2.psrli.d", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.psrai.d", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.pslli.d", ret_type, arg_types, 2);
-               ret_type = type_to_simd_type (MONO_TYPE_I8);
-               arg_types [0] = ret_type;
-               arg_types [1] = LLVMInt32Type ();
-               AddFunc (module, "llvm.x86.sse2.psrli.q", ret_type, arg_types, 2);
-               AddFunc (module, "llvm.x86.sse2.pslli.q", ret_type, arg_types, 2);
+               arg_types [0] = type_to_simd_type (MONO_TYPE_I4);
+               arg_types [1] = type_to_simd_type (MONO_TYPE_I4);
+               AddFunc (module, name, ret_type, arg_types, 2);
+               break;
+               /* SSE Binary ops */
+       case INTRINS_SSE_PMINUD:
+       case INTRINS_SSE_PMAXUD:
+               add_sse_binary (module, name, MONO_TYPE_I4);
+               break;
+       case INTRINS_SSE_PMINUW:
+       case INTRINS_SSE_PMINSW:
+       case INTRINS_SSE_PMAXUW:
+       case INTRINS_SSE_PADDSW:
+       case INTRINS_SSE_PSUBSW:
+       case INTRINS_SSE_PADDUSW:
+       case INTRINS_SSE_PSUBUSW:
+       case INTRINS_SSE_PAVGW:
+       case INTRINS_SSE_PMULHW:
+       case INTRINS_SSE_PMULHU:
+               add_sse_binary (module, name, MONO_TYPE_I2);
+               break;
+       case INTRINS_SSE_MINPS:
+       case INTRINS_SSE_MAXPS:
+       case INTRINS_SSE_HADDPS:
+       case INTRINS_SSE_HSUBPS:
+       case INTRINS_SSE_ADDSUBPS:
+               add_sse_binary (module, name, MONO_TYPE_R4);
+               break;
+       case INTRINS_SSE_MINPD:
+       case INTRINS_SSE_MAXPD:
+       case INTRINS_SSE_HADDPD:
+       case INTRINS_SSE_HSUBPD:
+       case INTRINS_SSE_ADDSUBPD:
+               add_sse_binary (module, name, MONO_TYPE_R8);
+               break;
+       case INTRINS_SSE_PMINUB:
+       case INTRINS_SSE_PMAXUB:
+       case INTRINS_SE_PADDSB:
+       case INTRINS_SSE_PSUBSB:
+       case INTRINS_SSE_PADDUSB:
+       case INTRINS_SSE_PSUBUSB:
+       case INTRINS_SSE_PAVGB:
+               add_sse_binary (module, name, MONO_TYPE_I1);
+               break;
+       case INTRINS_SSE_PAUSE:
+               AddFunc (module, "llvm.x86.sse2.pause", LLVMVoidType (), NULL, 0);
+               break;
+#endif
+       default:
+               g_assert_not_reached ();
+               break;
+       }
+}
 
-               /* pmovmskb */
-               ret_type = LLVMInt32Type ();
-               arg_types [0] = type_to_simd_type (MONO_TYPE_I1);
-               AddFunc (module, "llvm.x86.sse2.pmovmskb.128", ret_type, arg_types, 1);
+static LLVMValueRef
+get_intrinsic (EmitContext *ctx, const char *name)
+{
+#if LLVM_API_VERSION > 100
+       LLVMValueRef res;
+
+       /*
+        * Every method is emitted into its own module so
+        * we can add intrinsics on demand.
+        */
+       res = LLVMGetNamedFunction (ctx->lmodule, name);
+       if (!res) {
+               int id = -1;
+
+               /* No locking needed */
+               id = GPOINTER_TO_INT (g_hash_table_lookup (intrins_name_to_id, name));
+               id --;
+               if (id == -1)
+                       printf ("%s\n", name);
+               g_assert (id != -1);
+               add_intrinsic (ctx->lmodule, id);
+               res = LLVMGetNamedFunction (ctx->lmodule, name);
+               g_assert (res);
        }
 
-       AddFunc (module, "llvm.x86.sse2.pause", LLVMVoidType (), NULL, 0);
+       return res;
+#else
+       LLVMValueRef res;
+
+       res = LLVMGetNamedFunction (ctx->lmodule, name);
+       g_assert (res);
+       return res;
+#endif
+}
+
+static void
+add_intrinsics (LLVMModuleRef module)
+{
+       int i;
+
+       /* Emit declarations of instrinsics */
+       /*
+        * It would be nicer to emit only the intrinsics actually used, but LLVM's Module
+        * type doesn't seem to do any locking.
+        */
+       for (i = 0; i < INTRINS_NUM; ++i)
+               add_intrinsic (module, i);
+
+       /* EH intrinsics */
+       {
+               AddFunc (module, "mono_personality", LLVMVoidType (), NULL, 0);
+
+               AddFunc (module, "llvm_resume_unwind_trampoline", LLVMVoidType (), NULL, 0);
+       }
+
+       /* SSE intrinsics */
+#if defined(TARGET_X86) || defined(TARGET_AMD64)
+
 #endif
 
        /* Load/Store intrinsics */
@@ -7538,13 +8033,25 @@ add_types (MonoLLVMModule *module)
 void
 mono_llvm_init (void)
 {
+       GHashTable *h;
+       int i;
+
        mono_native_tls_alloc (&current_cfg_tls_id, NULL);
+
+       h = g_hash_table_new (NULL, NULL);
+       for (i = 0; i < INTRINS_NUM; ++i)
+               g_hash_table_insert (h, GINT_TO_POINTER (intrinsics [i].id), (gpointer)intrinsics [i].name);
+       intrins_id_to_name = h;
+
+       h = g_hash_table_new (g_str_hash, g_str_equal);
+       for (i = 0; i < INTRINS_NUM; ++i)
+               g_hash_table_insert (h, (gpointer)intrinsics [i].name, GINT_TO_POINTER (intrinsics [i].id + 1));
+       intrins_name_to_id = h;
 }
 
 static void
 init_jit_module (MonoDomain *domain)
 {
-       MonoJitICallInfo *info;
        MonoJitDomainInfo *dinfo;
        MonoLLVMModule *module;
        char *name;
@@ -7573,9 +8080,13 @@ init_jit_module (MonoDomain *domain)
 
        module->llvm_types = g_hash_table_new (NULL, NULL);
 
+#if LLVM_API_VERSION < 100
+       MonoJitICallInfo *info;
+
        info = mono_find_jit_icall_by_name ("llvm_resume_unwind_trampoline");
        g_assert (info);
        LLVMAddGlobalMapping (module->ee, LLVMGetNamedFunction (module->lmodule, "llvm_resume_unwind_trampoline"), (void*)info->func);
+#endif
 
        mono_memory_barrier ();
 
index 7a149b345f297d48dc3dc6c23686e83fbec2044e..6a9f054864b68efb5c4915a9b234c442443ec58e 100644 (file)
@@ -2164,7 +2164,6 @@ mono_jit_free_method (MonoDomain *domain, MonoMethod *method)
                }
                g_slist_free (remove);
        }
-
        mono_domain_unlock (domain);
 
 #ifdef MONO_ARCH_HAVE_INVALIDATE_METHOD
@@ -3311,6 +3310,8 @@ mini_parse_debug_option (const char *option)
                mono_align_small_structs = TRUE;
        else if (!strcmp (option, "native-debugger-break"))
                debug_options.native_debugger_break = TRUE;
+       else if (!strcmp (option, "disable_omit_fp"))
+               debug_options.disable_omit_fp = TRUE;
        else
                return FALSE;
 
@@ -3519,6 +3520,12 @@ runtime_invoke_info_free (gpointer value)
        g_free (info);
 }
 
+static void
+free_jit_callee_list (gpointer key, gpointer value, gpointer user_data)
+{
+       g_slist_free (value);
+}
+
 static void
 mini_free_jit_domain_info (MonoDomain *domain)
 {
@@ -3549,6 +3556,10 @@ mini_free_jit_domain_info (MonoDomain *domain)
                mono_debugger_agent_free_domain_info (domain);
        if (info->gsharedvt_arg_tramp_hash)
                g_hash_table_destroy (info->gsharedvt_arg_tramp_hash);
+       if (info->llvm_jit_callees) {
+               g_hash_table_foreach (info->llvm_jit_callees, free_jit_callee_list, NULL);
+               g_hash_table_destroy (info->llvm_jit_callees);
+       }
 #ifdef ENABLE_LLVM
        mono_llvm_free_domain_info (domain);
 #endif
index bcb603603f38dc0215822fac41186b189cffd1dd..ed844636c525ed7b50cf746cfca057e22f5c301f 100644 (file)
@@ -1016,14 +1016,6 @@ mono_aot_plt_trampoline (mgreg_t *regs, guint8 *code, guint8 *aot_module,
                        mono_error_set_pending_exception (&error);
                        return NULL;
                }
-               if (mono_loader_get_last_error ()) {
-                       MonoError error;
-
-                       mono_error_init (&error);
-                       mono_error_set_from_loader_error (&error);
-                       mono_error_set_pending_exception (&error);
-                       return NULL;
-               }
                // FIXME: Error handling (how ?)
                g_assert (res);
        }
index 10cb86ba1a9638a027b1caa4e1f5d5bbd1295bce..046572a332925011fdfb5b9d33a0f3ec30c14f7a 100644 (file)
@@ -3478,6 +3478,7 @@ mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, JitFl
        cfg->verbose_level = mini_verbose;
        cfg->compile_aot = compile_aot;
        cfg->full_aot = full_aot;
+       cfg->disable_omit_fp = debug_options.disable_omit_fp;
        cfg->skip_visibility = method->skip_visibility;
        cfg->orig_method = method;
        cfg->gen_seq_points = debug_options.gen_seq_points_compact_data || debug_options.gen_sdb_seq_points;
@@ -4490,6 +4491,18 @@ mono_jit_compile_method_inner (MonoMethod *method, MonoDomain *target_domain, in
                }
        }
 
+       /* Update llvm callees */
+       if (domain_jit_info (target_domain)->llvm_jit_callees) {
+               GSList *callees = g_hash_table_lookup (domain_jit_info (target_domain)->llvm_jit_callees, method);
+               GSList *l;
+
+               for (l = callees; l; l = l->next) {
+                       gpointer *addr = (gpointer*)l->data;
+
+                       *addr = code;
+               }
+       }
+
        mono_emit_jit_map (jinfo);
 #endif
        mono_domain_unlock (target_domain);
index dcec9707567346673e0af609312eb6f5f8a3a84e..2a1b331f809921750df32acc131c984005861ce1 100644 (file)
@@ -354,6 +354,8 @@ typedef struct
        gpointer *memcpy_addr [17];
        gpointer *bzero_addr [17];
        gpointer llvm_module;
+       /* Maps MonoMethod -> GSlist of addresses */
+       GHashTable *llvm_jit_callees;
 } MonoJitDomainInfo;
 
 typedef struct {
@@ -2131,6 +2133,11 @@ typedef struct {
         * Translate Debugger.Break () into a native breakpoint signal
         */
        gboolean native_debugger_break;
+       /*
+        * Disabling the frame pointer emit optimization can allow debuggers to more easily
+        * identify the stack on some platforms
+        */
+       gboolean disable_omit_fp;
 } MonoDebugOptions;
 
 enum {
index c0c5b736badc681f2e43741fe4825e80212a0d1e..cb2ea092fb3cdd739df3308daa6002b7cdc87258 100644 (file)
@@ -2501,6 +2501,7 @@ mono_cpu_count (void)
         * means the normal way to query cpu count returns a wrong value with userspace API.
         * Instead we use /sys entries to query the actual hardware CPU count.
         */
+       int count = 0;
        char buffer[8] = {'\0'};
        int present = open ("/sys/devices/system/cpu/present", O_RDONLY);
        /* Format of the /sys entry is a cpulist of indexes which in the case
index 3ca680c5d3cb083bb60a6fffe7b4a408db2d2854..b410d785f993dba01dbc6b3d765ed64d069dad0e 100644 (file)
@@ -32,10 +32,14 @@ MKBUNDLE = \
        PKG_CONFIG_PATH=$(top_builddir):$(PKG_CONFIG_PATH) \
        $(RUNTIME) $(CLASS)/mkbundle.exe
 
-MCS = $(RUNTIME) $(mcs_topdir)/class/lib/build/mcs.exe -unsafe -debug \
+MCS_NO_LIB = $(RUNTIME) $(mcs_topdir)/class/lib/build/mcs.exe -unsafe -debug \
+       -noconfig -nologo \
        -nowarn:0162 -nowarn:0168 -nowarn:0219 -nowarn:0414 -nowarn:0618 \
        -nowarn:0169 -nowarn:1690 -nowarn:0649 -nowarn:0612 -nowarn:3021 \
        -nowarn:0197
+
+MCS = $(MCS_NO_LIB) -lib:$(CLASS)
+
 ILASM = $(RUNTIME) $(CLASS)/ilasm.exe
 
 BENCHSRC=fib.cs random.cs nested-loops.cs ackermann.cs tight-loop.cs sieve.cs
@@ -61,6 +65,7 @@ BASE_TEST_CS_SRC=             \
        bug-2907.cs             \
        array-init.cs           \
        arraylist.cs            \
+       assembly-load-remap.cs  \
        assemblyresolve_event.cs        \
        assemblyresolve_event3.cs       \
        assemblyresolve_event4.cs       \
@@ -704,7 +709,7 @@ EXTRA_DIST=test-driver test-runner.cs $(TEST_CS_SRC_DIST) $(TEST_IL_SRC) \
        $(ILASM) -out:$@ $<
 
 %.exe: %.cs TestDriver.dll
-       $(MCS) -r:TestDriver.dll -out:$@ $<
+       $(MCS) -r:System.dll -r:System.Xml.dll -r:System.Core.dll -r:TestDriver.dll -out:$@ $<
 
 # mkbundle works on ppc, but the pkg-config POC doesn't when run with make test
 if POWERPC
@@ -1187,7 +1192,7 @@ test-unhandled-exception: unhandled-exception-test-runner.2.exe unhandled-except
 
 # We use 'test-support-files' to handle an ordering issue between the 'mono/' and 'runtime/' directories
 bug-80307.exe: $(srcdir)/bug-80307.cs
-       $(MCS) -r:System.Web -out:$@ $(srcdir)/bug-80307.cs
+       $(MCS) -r:System.Web.dll -out:$@ $(srcdir)/bug-80307.cs
        cd $(top_builddir)/runtime && $(MAKE) test-support-files
 
 EXTRA_DIST += bug-81673-interface.cs
@@ -1240,7 +1245,7 @@ bug-17537-helper.exe: bug-17537-helper.cs
        chmod -x $@
 
 bug-17537.exe: bug-17537.cs bug-17537-helper.exe
-       $(MCS) -out:$@ $(srcdir)/bug-17537.cs
+       $(MCS) -r:System.dll -out:$@ $(srcdir)/bug-17537.cs
 
 EXTRA_DIST += coreclr-security.cs
 
@@ -1274,7 +1279,7 @@ generic-delegate2.2.exe : generic-delegate2.2.cs generic-delegate2-lib.2.dll
        $(MCS) -r:generic-delegate2-lib.2.dll -out:$@ $(srcdir)/generic-delegate2.2.cs
 
 bug-3903.exe: bug-3903.cs
-       $(MCS) -sdk:2 $(srcdir)/bug-3903.cs -out:$@
+       $(MCS_NO_LIB) -lib:$(srcdir)/../../external/binary-reference-assemblies/v2.0/ $(srcdir)/bug-3903.cs -r:System.Core.dll -out:$@
 
 gshared: test-generic-sharing
 
diff --git a/mono/tests/assembly-load-remap.cs b/mono/tests/assembly-load-remap.cs
new file mode 100644 (file)
index 0000000..f9c93d5
--- /dev/null
@@ -0,0 +1,90 @@
+using System;
+using System.IO;
+using System.Reflection;
+
+public class Tests
+{
+       public static void Main (string[] args)
+       {
+               var ver40 = new Version (4, 0, 0, 0);
+               var ver140 = new Version (14, 0, 0, 0);
+               var util20 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Utilities, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
+               var util35 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Utilities.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
+               var task20 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
+               var task35 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
+               var engn20 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Engine, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
+               var engn35 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Engine, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
+               var frwk20 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Framework, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
+               var frwk35 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Framework, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
+
+               // when run as part of the test suite, we need to register the xbuild 14.0 path or v14 assembly lookup will fail 
+               if (!String.IsNullOrEmpty (Environment.GetEnvironmentVariable ("MONO_PATH"))) {
+                       var p = Path.Combine (new DirectoryInfo (Environment.GetEnvironmentVariable ("MONO_PATH")).Parent.FullName, "xbuild_14");
+                       Console.WriteLine("Adding private bin path " + p);
+                       AppDomain.CurrentDomain.AppendPrivatePath (p);
+               }
+
+               var engn140 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Engine, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
+               var frwk140 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Framework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
+
+               if (util20 == null)
+                       throw new Exception ("#1 assembly couldn't be loaded.");
+
+               if (util35 == null)
+                       throw new Exception ("#2 assembly couldn't be loaded.");
+
+               if (util20.GetName ().Version != ver40)
+                       throw new Exception ("#3 expected remap to v4.0.0.0, but got " + util20);
+
+               if (util35.GetName ().Version != ver40)
+                       throw new Exception ("#4 expected remap to v4.0.0.0, but got " + util35);
+
+               if (task20 == null)
+                       throw new Exception ("#5 assembly couldn't be loaded.");
+
+               if (task35 == null)
+                       throw new Exception ("#6 assembly couldn't be loaded.");
+
+               if (task20.GetName ().Version != ver40)
+                       throw new Exception ("#7 expected remap to v4.0.0.0, but got " + task20);
+
+               if (task35.GetName ().Version != ver40)
+                       throw new Exception ("#8 expected remap to v4.0.0.0, but got " + task35);
+
+               if (engn20 == null)
+                       throw new Exception ("#9 assembly couldn't be loaded.");
+
+               if (engn35 == null)
+                       throw new Exception ("#10 assembly couldn't be loaded.");
+
+               if (engn140 == null)
+                       throw new Exception ("#11 assembly couldn't be loaded.");
+
+               if (engn20.GetName ().Version != ver40)
+                       throw new Exception ("#12 expected remap to v4.0.0.0, but got " + engn20);
+
+               if (engn35.GetName ().Version != ver40)
+                       throw new Exception ("#13 expected remap to v4.0.0.0, but got " + engn35);
+       
+               if (engn140.GetName ().Version != ver140)
+                       throw new Exception ("#14 expected v14.0.0.0, but got " + engn140);
+
+               if (frwk20 == null)
+                       throw new Exception ("#15 assembly couldn't be loaded.");
+
+               if (frwk35 == null)
+                       throw new Exception ("#16 assembly couldn't be loaded.");
+
+               if (frwk140 == null)
+                       throw new Exception ("#17 assembly couldn't be loaded.");
+
+               if (frwk20.GetName ().Version != ver40)
+                       throw new Exception ("#18 expected remap to v4.0.0.0, but got " + frwk20);
+
+               if (frwk35.GetName ().Version != ver40)
+                       throw new Exception ("#19 expected remap to v4.0.0.0, but got " + frwk35);
+
+               if (frwk140.GetName ().Version != ver140)
+                       throw new Exception ("#20 expected v14.0.0.0, but got " + frwk140);
+       }
+}
index f1e1bacf6be5857c31bb05a9611ae3e0c955c1ad..b6f2ee0979524b82e12815c5bd57731c7d1886a4 100644 (file)
@@ -599,7 +599,7 @@ mono_error_prepare_exception (MonoError *oerror, MonoError *error_out)
                break;
 
        case MONO_ERROR_TYPE_LOAD:
-               if (error->type_name && error->assembly_name) {
+               if ((error->type_name && error->assembly_name) || error->exn.klass) {
                        type_name = get_type_name_as_mono_string (error, domain, error_out);
                        if (!mono_error_ok (error_out))
                                break;
index 8f52311aed9c458202dd6b1ebc5b3d2d9231a915..dc7ba95c73264a4b5fa54ac474b31e2dcc0f92fc 100644 (file)
@@ -627,6 +627,7 @@ mono_cpu_count (void)
         * means the normal way to query cpu count returns a wrong value with userspace API.
         * Instead we use /sys entries to query the actual hardware CPU count.
         */
+       int count = 0;
        char buffer[8] = {'\0'};
        int present = open ("/sys/devices/system/cpu/present", O_RDONLY);
        /* Format of the /sys entry is a cpulist of indexes which in the case