Check that array element size fits in 16 bits (#84751)
authorMichal Strehovský <MichalStrehovsky@users.noreply.github.com>
Thu, 13 Apr 2023 14:53:22 +0000 (23:53 +0900)
committerGitHub <noreply@github.com>
Thu, 13 Apr 2023 14:53:22 +0000 (07:53 -0700)
Looks like the `checked` cast was lost in #75436. Noticed a comment that doesn't make sense as I was looking at implementing function pointer MethodTables. We want a compiler crash if this doesn't hold, not invalid outputs.

src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/DependencyAnalysis/EETypeNode.cs

index cdb637e..a3cc904 100644 (file)
@@ -775,7 +775,7 @@ namespace ILCompiler.DependencyAnalysis
                 {
                     int elementSize = elementType.GetElementSize().AsInt;
                     // We validated that this will fit the short when the node was constructed. No need for nice messages.
-                    flags |= (uint)elementSize;
+                    flags |= (uint)checked((ushort)elementSize);
                 }
             }
             else if (_type.IsString)