﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
3653	Evaluation of lists (stringReal looses type?)	Henning Kiel	Martin Sjölund	"I have the following simple code:
{{{
package Main

public function main
  input list<String> args;
  output list<String> out;
protected
  list<Real> r_arr;
  list<String> s_arr;
algorithm
  r_arr := list(stringReal(s) for s in args);
  s_arr := list(String(r) for r in r_arr);
  out := listAppend(args,s_arr);
end main;

end Main;
}}}

I run it with omc +g=MetaModelica and the following script:
{{{
loadFile(""Main.mo"");
getErrorString();
Main.main({""1"",""2"",""3"",""4"",""5"",""6"",""7"",""8""});
getErrorString();
}}}
and get the following error:
{{{
true
""""

""Error: Error building simulator. Build log: clang -I""/Users/henning/src/OpenModelica/build/include/omc/c""  -g  -O0 -march=native   -c -o Main_main.o Main_main.c
/Users/henning/src/OpenModelica/mmc/Main.mo:11:16: warning: implicit declaration of function 'modelica_metatype_to_modelica_string' is invalid in C99 [-Wimplicit-function-declaration]
        tmp4 = modelica_metatype_to_modelica_string(_r, ((modelica_integer) 0), 1);
               ^
/Users/henning/src/OpenModelica/mmc/Main.mo:11:14: warning: incompatible integer to pointer conversion assigning to 'modelica_string' (aka 'void *') from 'int' [-Wint-conversion]
        tmp4 = modelica_metatype_to_modelica_string(_r, ((modelica_integer) 0), 1);
             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 warnings generated.
clang -I""/Users/henning/src/OpenModelica/build/include/omc/c""  -g  -O0 -march=native   -c -o Main_main_records.o Main_main_records.c
clang -single_module -dynamiclib -flat_namespace -o Main_main.dylib Main_main.o Main_main_records.o  -I""/Users/henning/src/OpenModelica/build/include/omc/c""  -g  -O0 -march=native   -L""/Users/henning/src/OpenModelica/build/lib/x86_64-darwin15.3.0/omc"" -Wl,-rpath,'/Users/henning/src/OpenModelica/build/lib/x86_64-darwin15.3.0/omc'    -lOpenModelicaRuntimeC -llapack -lblas -lm -lm
Undefined symbols for architecture x86_64:
  ""_modelica_metatype_to_modelica_string"", referenced from:
      _omc_Main_main in Main_main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Main_main] Error 1
""
}}}

So, list(stringReal(...)...) seems to loose information of element type (should be modelica_real, but is modelica_metatype)."	defect	closed	critical	1.9.4	Code Generation		fixed		Martin Sjölund
