Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/ILCompiler.CppCodeGen/src/CppCodeGen/ILToCppImporter.cs')
-rw-r--r--src/ILCompiler.CppCodeGen/src/CppCodeGen/ILToCppImporter.cs10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/ILCompiler.CppCodeGen/src/CppCodeGen/ILToCppImporter.cs b/src/ILCompiler.CppCodeGen/src/CppCodeGen/ILToCppImporter.cs
index ae062dad6..33ab17d76 100644
--- a/src/ILCompiler.CppCodeGen/src/CppCodeGen/ILToCppImporter.cs
+++ b/src/ILCompiler.CppCodeGen/src/CppCodeGen/ILToCppImporter.cs
@@ -1003,8 +1003,9 @@ namespace Internal.IL
if (IsTypeName(method, "System", "ByReference`1"))
{
var thisRef = _stack.Pop();
-
- PushExpression(StackValueKind.ValueType, ((ExpressionEntry)thisRef).Name + "->_value", method.Signature.ReturnType);
+ PushExpression(StackValueKind.ByRef,
+ String.Concat("(", GetSignatureTypeNameAndAddReference(method.Signature.ReturnType), ")", ((ExpressionEntry)thisRef).Name, "->_value"),
+ method.Signature.ReturnType);
return true;
}
break;
@@ -1151,7 +1152,7 @@ namespace Internal.IL
{
// TODO: Null checks
- if (method.IsVirtual)
+ if (method.IsVirtual && !method.IsFinal && !method.OwningType.IsSealed())
{
// TODO: Full resolution of virtual methods
if (!method.IsNewSlot)
@@ -2613,7 +2614,8 @@ namespace Internal.IL
private void ImportUnalignedPrefix(byte alignment)
{
- throw new NotImplementedException();
+ // TODO:
+ // throw new NotImplementedException();
}
private void ImportVolatilePrefix()