Opened 11 years ago

Closed 11 years ago

#2313 closed defect (fixed)

C++ Code generator does not work

Reported by: Martin Sjölund Owned by: Niklas Worschech
Priority: high Milestone: 1.9.0
Component: Code Generation Version: trunk
Keywords: Cc: Lennart Ochel

Description

Boost doesn't like the generated code:

marsj@dev:~/trunk/testsuite/openmodelica/cppruntime$ ../../../build/bin/omc +simCodeTarget=Cpp tearnonlin1FMI.mos
true

"Error: Error building simulator. Build log: g++ -shared -I. -o tearnonlin1.so tearnonlin1.cpp tearnonlin1FMU.cpp Functions.cpp tearnonlin1Algloop9.cpp tearnonlin1Algloop4.cpp  -I"/home/marsj/trunk/build/include/omc/cpp" -I"/home/marsj/trunk/build/include/omc/cpp/Core" -I"/home/marsj/trunk/build/include/omc/cpp/SimCoreFactory" -I"/usr/include"  -O0 -falign-functions -march=native -mfpmath=sse -fPIC   -L"/home/marsj/trunk/build/lib/omc/cpp" -L/usr/lib -lOMCppSystem_static -lOMCppDataExchange_static -lOMCppOMCFactory /usr/lib/libboost_system-mt.so /usr/lib/libboost_filesystem-mt.so /usr/lib/libboost_serialization-mt.so -ldl
In file included from /usr/include/boost/limits.hpp:19:0,
                 from /usr/include/boost/iterator/iterator_concepts.hpp:26,
                 from /usr/include/boost/range/concepts.hpp:20,
                 from /usr/include/boost/range/algorithm/equal.hpp:14,
                 from /usr/include/boost/range/iterator_range_core.hpp:29,
                 from /usr/include/boost/range/iterator_range.hpp:13,
                 from /usr/include/boost/assign/list_of.hpp:20,
                 from /home/marsj/trunk/build/include/omc/cpp/Modelica.h:17,
                 from tearnonlin1.cpp:1:
/usr/include/c++/4.6/limits: In instantiation of ‘std::numeric_limits<long int(long int*)throw ()>’:
/usr/include/boost/detail/lcast_precision.hpp:75:5:   instantiated from ‘const unsigned int boost::detail::lcast_precision<long int(long int*)throw ()>::precision_dec’
/usr/include/boost/detail/lcast_precision.hpp:79:1:   instantiated from ‘boost::detail::lcast_precision<long int(long int*)throw ()>’
/usr/include/boost/detail/lcast_precision.hpp:102:32:   instantiated from ‘std::streamsize boost::detail::lcast_get_precision(T*) [with T = long int(long int*)throw (), std::streamsize = long int]’
/usr/include/boost/detail/lcast_precision.hpp:176:74:   instantiated from ‘void boost::detail::lcast_set_precision(std::ios_base&, Source*, Target*) [with Source = long int(long int*)throw (), Target = std::basic_string<char>]’
/usr/include/boost/lexical_cast.hpp:585:17:   instantiated from ‘boost::detail::lexical_stream<Target, Source, Traits>::lexical_stream(boost::detail::lexical_stream<Target, Source, Traits>::char_type*, boost::detail::lexical_stream<Target, Source, Traits>::char_type*) [with Target = std::basic_string<char>, Source = long int(long int*)throw (), Traits = std::char_traits<char>, boost::detail::lexical_stream<Target, Source, Traits>::char_type = char]’
/usr/include/boost/lexical_cast.hpp:1148:53:   instantiated from ‘Target boost::detail::lexical_cast(typename boost::call_traits<Source>::param_type, CharT*, std::size_t) [with Target = std::basic_string<char>, Source = long int(long int*)throw (), bool Unlimited = true, CharT = char, typename boost::call_traits<Source>::param_type = long int (&)(long int*)throw (), std::size_t = long unsigned int]’
/usr/include/boost/lexical_cast.hpp:1174:77:   instantiated from ‘Target boost::lexical_cast(const Source&) [with Target = std::basic_string<char>, Source = long int(long int*)throw ()]’
tearnonlin1.cpp:87:116:   instantiated from here
/usr/include/c++/4.6/limits:309:7: error: function returning a function
/usr/include/c++/4.6/limits:313:7: error: function returning a function
/usr/include/c++/4.6/limits:325:7: error: function returning a function
/usr/include/c++/4.6/limits:329:7: error: function returning a function
/usr/include/c++/4.6/limits:333:7: error: function returning a function
/usr/include/c++/4.6/limits:338:7: error: function returning a function
/usr/include/c++/4.6/limits:343:7: error: function returning a function
/usr/include/c++/4.6/limits:349:7: error: function returning a function
make: *** [tearnonlin1.fmu] Error 1

"
"tearnonlin1_me_FMU.mo"
""
true
""

Change History (4)

comment:1 by Martin Sjölund, 11 years ago

Cc: Lennart Ochel added
Milestone: Future1.9.0

Who is supposed to handle these tests? It's run in the testsuite, so it has to work everywhere.

comment:2 by Adrian Pop, 11 years ago

Owner: changed from Martin Sjölund to Niklas Worschech
Status: newassigned

comment:3 by Adrian Pop, 11 years ago

I added Niklas as ticket owner and sent him an email.

comment:4 by Niklas Worschech, 11 years ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.