[mcs] Silently ignore invalid assembly name in InternalsVisibleTo. Fixes #30679
authorMarek Safar <marek.safar@gmail.com>
Fri, 5 Jun 2015 14:46:52 +0000 (16:46 +0200)
committerMarek Safar <marek.safar@gmail.com>
Fri, 5 Jun 2015 14:55:57 +0000 (16:55 +0200)
mcs/errors/CS0122-38-lib.cs [new file with mode: 0644]
mcs/errors/Makefile
mcs/errors/cs0122-38.cs [new file with mode: 0644]
mcs/mcs/import.cs

diff --git a/mcs/errors/CS0122-38-lib.cs b/mcs/errors/CS0122-38-lib.cs
new file mode 100644 (file)
index 0000000..bcedb91
--- /dev/null
@@ -0,0 +1,8 @@
+using System.Runtime.CompilerServices;
+
+[assembly: InternalsVisibleTo("cs0122-38, PublicKeyToken=<ad60da1470a03d36")]
+
+class Internal
+{
+       
+}
\ No newline at end of file
index d19d3c469309d65daf71f9e4ab7bd9b3aa60f021..ac117f61d8d5f54b088fcdc38128d01fbe720b3b 100644 (file)
@@ -22,7 +22,7 @@ DISTFILES = \
 
 TEST_SUPPORT_FILES = \
        CS0012-lib.dll CS0012-2-lib.dll CS0012-3-lib.dll CS0012-4-lib.dll CS0012-5-lib.dll CS0012-6-lib.dll CS0012-9-lib.dll CS0012-10-lib.dll CS0012-11-lib.dll CS0012-12-lib.dll CS0012-13-lib.dll CS0012-14-lib.dll CS0012-15-lib.dll CS0012-16-lib.dll CS0012-17-lib.dll CS0012-18-lib.dll CS0012-21-lib.dll CS0012-22-lib.dll CS0012-23-lib.dll CS0012-24-lib.dll CS0019-71-lib.dll CS0029-26-lib.dll \
-       CS0103-2-lib.dll CS0118-2-lib.dll CS0122-8-lib.dll CS0122-10-lib.dll CS0122-14-lib.dll CS0122-15-lib.dll CS0122-19-lib.dll CS0122-35-lib.dll CS0122-36-lib.dll CS0143-lib.dll CS0144-3-lib.dll CS0165-19-lib.dll CS0165-51-lib.dll \
+       CS0103-2-lib.dll CS0118-2-lib.dll CS0122-8-lib.dll CS0122-10-lib.dll CS0122-14-lib.dll CS0122-15-lib.dll CS0122-19-lib.dll CS0122-35-lib.dll CS0122-36-lib.dll CS0122-38-lib.dll CS0143-lib.dll CS0144-3-lib.dll CS0165-19-lib.dll CS0165-51-lib.dll \
        CS0205-3-lib.dll CS0246-29-lib.dll CS0229-3-lib.dll CS0229-4-lib.dll CS0266-25-lib.dll \
        CS0315-2-lib.dll \
        CS0425-7-lib.dll CS0433-lib.dll CS0433-2-lib.dll \
diff --git a/mcs/errors/cs0122-38.cs b/mcs/errors/cs0122-38.cs
new file mode 100644 (file)
index 0000000..e309750
--- /dev/null
@@ -0,0 +1,11 @@
+// CS0122: `Internal' is inaccessible due to its protection level
+// Line: 9
+// Compiler options: -r:CS0122-38-lib.dll
+
+class M
+{
+       public static void Main ()
+       {
+               new Internal ();
+       }
+}
\ No newline at end of file
index 630548ce8d28a7665d7f15a4a23e2820e0eaa862..42401de7ad90eec78a821ed1f23893d395529b19 100644 (file)
@@ -13,6 +13,7 @@ using System;
 using System.Runtime.CompilerServices;
 using System.Linq;
 using System.Collections.Generic;
+using System.IO;
 
 #if STATIC
 using MetaType = IKVM.Reflection.Type;
@@ -1724,7 +1725,14 @@ namespace Mono.CSharp
                                        if (s == null)
                                                continue;
 
-                                       var an = new AssemblyName (s);
+                                       AssemblyName an;
+                                       try {
+                                               an = new AssemblyName (s);
+                                       } catch (FileLoadException) {
+                                               // Invalid assembly name reuses FileLoadException
+                                               continue;
+                                       }
+
                                        if (internals_visible_to == null)
                                                internals_visible_to = new List<AssemblyName> ();