From 240dfde02f1daa035b85c79e7f95cdf4036f30cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D0=BE=D0=BD=D0=B4=D0=B0=D1=80=D0=B5=D0=B2=20=D0=98?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD?= Date: Sun, 2 Jun 2019 12:19:18 +0200 Subject: [PATCH] bug fix #1929 --- TestSuite/CompilationSamples/lib.dll | Bin 0 -> 43008 bytes .../CompilationSamples/xpointers_in_dll.pas | 10 ++++++++++ TreeConverter/TreeRealization/types.cs | 8 +++++++- 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 TestSuite/CompilationSamples/lib.dll create mode 100644 TestSuite/CompilationSamples/xpointers_in_dll.pas diff --git a/TestSuite/CompilationSamples/lib.dll b/TestSuite/CompilationSamples/lib.dll new file mode 100644 index 0000000000000000000000000000000000000000..cb00a05321c4eb935389f6a66852d80bfdd0d590 GIT binary patch literal 43008 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 U`A5|EoPLLG!~gsHzfS}I2kM2H_5c6? literal 0 HcmV?d00001 diff --git a/TestSuite/CompilationSamples/xpointers_in_dll.pas b/TestSuite/CompilationSamples/xpointers_in_dll.pas new file mode 100644 index 000000000..cfc84d98d --- /dev/null +++ b/TestSuite/CompilationSamples/xpointers_in_dll.pas @@ -0,0 +1,10 @@ +{$reference lib.dll} + +procedure p1; +begin + var r: lib.r1; // запись обязательно из библиотеки + var p: ^char; + r.p := p; // обязательно присвоить полю значение переменной. если присваивать nil - не воспроизводится +end; + +begin end. \ No newline at end of file diff --git a/TreeConverter/TreeRealization/types.cs b/TreeConverter/TreeRealization/types.cs index 5ae2c72cd..0888ac6e4 100644 --- a/TreeConverter/TreeRealization/types.cs +++ b/TreeConverter/TreeRealization/types.cs @@ -1057,7 +1057,13 @@ namespace PascalABCCompiler.TreeRealization } if (rtn == null) { - return null; + if (ctn is compiled_type_node && (ctn as compiled_type_node).compiled_type.IsPointer) + { + if (this.pointed_type == compiled_type_node.get_type_node((ctn as compiled_type_node).compiled_type.GetElementType())) + return PascalABCCompiler.TreeConverter.convertion_data_and_alghoritms.get_empty_conversion(this, ctn, false); + return get_implicit_conversion_to(new ref_type_node(compiled_type_node.get_type_node((ctn as compiled_type_node).compiled_type.GetElementType()))); + } + return null; } if (rtn.pointed_type == null || this.pointed_type == null) return null;