Search Issue Tracker

Fixed in future release

Votes

0

Found in

2018.3.0f2

Issue ID

1115145

Regression

No

[IL2CPP] Build fails due to "((int[])null)[0] = 1;" expression

IL2CPP

-

-

Priority: 3Not yet prioritized for a release

-

Severity: 3Secondary functionality broken

Steps to reproduce:
1. Download 1115145_repro.zip
2. Build project for a standalone platform with IL2CPP backend

Expected results: Project is successfully build
Actual results: IL2CPP build fails due to "((int[])null)[0] = 1;" expression

Reproduced with: 2019.1.0a13, 2018.3.2f1, 2017.4.18f1

stdout:
IL2CPP error for method 'System.Void test::Start()' in assembly 'C:\Users\sarunas\Downloads\New Unity Project\Temp\StagingArea\Data\Managed\Assembly-CSharp.dll'
Additional information: Build a development build for more information. System.Object is not an array type
Parameter name: typeReference
il2cpp.exe didn't catch exception: System.ArgumentException: System.Object is not an array type
Parameter name: typeReference
at Unity.IL2CPP.ArrayUtilities.ArrayElementTypeOf(TypeReference typeReference)
at Unity.IL2CPP.MethodBodyWriter.StoreElement(StackInfo array, StackInfo index, StackInfo value, Boolean emitElementTypeCheck)
at Unity.IL2CPP.MethodBodyWriter.ProcessInstruction(Node node, InstructionBlock block, Instruction& ins)
at Unity.IL2CPP.MethodBodyWriter.GenerateCodeRecursive(Node node)
at Unity.IL2CPP.MethodBodyWriter.Generate()
at Unity.IL2CPP.MethodWriter.<>c__DisplayClass0_0.<WriteMethodDefinition>b__0(IGeneratedMethodCodeWriter bodyWriter, IRuntimeMetadataAccess metadataAccess)
at Unity.IL2CPP.CodeWriterExtensions.WriteMethodWithMetadataInitialization(IGeneratedMethodCodeWriter writer, String methodSignature, String methodFullName, Action`2 writeMethodBody, String uniqueIdentifier, MethodReference methodRef)
at Unity.IL2CPP.MethodWriter.WriteMethodDefinition(IGeneratedMethodCodeWriter writer, MethodReference method, IMethodCollector methodCollector, IMethodVerifier methodVerifier, ISourceAnnotationWriter sourceAnnotationWriter, IIcallMappingService icallMapping, VTableBuilder vtableBuilder)
at Unity.IL2CPP.SourceWriter.<>c__DisplayClass12_0.<WriteMethodSourceFiles>b__0(IGeneratedMethodCodeWriter writer, TypeReference type)
at Unity.IL2CPP.SourceWriter.WriteEqualSizedChunks[T](NPath outputDir, IEnumerable`1 items, String fileName, Int64 chunkSize, Action`2 writeItemAction, SourceWritingContext sourceWritingContext)
at Unity.IL2CPP.SourceWriter.WriteMethodSourceFiles(NPath outputDirectory, SourceWritingContext sourceWritingContext, String fileName, IEnumerable`1 typeList, IMethodCollector methodCollector, Boolean writeMarshalingDefinitions)
at Unity.IL2CPP.SourceWriter.Write(NPath outputDir, SourceWritingContext sourceWritingContext, ReadOnlyCollection`1 assemblyDefinitions, IMethodCollector methodCollector, IInteropDataCollector interopDataCollector)
at Unity.IL2CPP.AssemblyConverter.Apply()
at Unity.IL2CPP.AssemblyConverter.ConvertAssemblies(IEnumerable`1 assemblyDirectories, IEnumerable`1 explicitAssemblies, NPath outputDir, NPath dataFolder, NPath symbolsFolder, NPath executableAssembiesFolder, NPath monoLibFolder, NPath monoEtcFolder, NPath[] searchDirectories, String entryAssemblyName, NPath[] extraTypesFiles)
at il2cpp.Program.DoRun(String[] args)
at il2cpp.Program.Run(String[] args)
at il2cpp.Program.Main(String[] args)

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.