-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Labels
Description
Describe the bug
The ArduinoJson Library does not compile using the IAR Embedded Workbench for versions 20.0 and newer. Version 19.4 compiles without any errors or warnings. We already reached out to the support, who could reproduce the error with the current version (EWARM 9.40.2) and with version EWSYN 8.23.3. Both show the same error.
Troubleshooter report
Here is the report generated by the ArduinoJson Troubleshooter:
- The program uses ArduinoJson 21.3
- The issue happens at compile time
- The error is not in the list
Environment
Here is the environment that I used:
- EWSYN 8.23.3
- Renesas Synergy R7FS5
Reproduction
Here is a small snippet that reproduces the issue.
char json[] = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}";
DynamicJsonDocument doc(1024);
deserializeJson(doc, json);
const char* sensor = doc["sensor"];
long time = doc["time"];
double latitude = doc["data"][0];
double longitude = doc["data"][1];
Compiler output
Building configuration: GPT_HAL_MG_AP - Debug
Updating build tree...
json_test.cpp
Warning[Pe1346]: function returns incomplete class type "ArduinoJson::V6213DB2::JsonVariant" C:\Users\...\src\ArduinoJson-v6.21.3.hpp 2551
Warning[Pe1346]: function returns incomplete class type "ArduinoJson::V6213DB2::JsonVariant" C:\Users\...\src\ArduinoJson-v6.21.3.hpp 2569
Warning[Pe1346]: function returns incomplete class type "ArduinoJson::V6213DB2::JsonVariant" C:\Users\...\src\ArduinoJson-v6.21.3.hpp 2591
Warning[Pe1346]: function returns incomplete class type "ArduinoJson::V6213DB2::JsonVariant" C:\Users\...\src\ArduinoJson-v6.21.3.hpp 2597
Error[Pe304]: no instance of overloaded function "ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::as [with TDerived=ArduinoJson::V6213DB2::JsonVariant]" matches the argument list C:\Users\...\src\ArduinoJson-v6.21.3.hpp 2555
detected during:
instantiation of "inline ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::operator T() const [with TDerived=ArduinoJson::V6213DB2::JsonVariant, T=ArduinoJson::V6213DB2::JsonVariant]" at line 2669
instantiation of "inline TDerived const &ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::derived() const [with TDerived=ArduinoJson::V6213DB2::JsonVariant]" at line 2672
instantiation of "inline __interwork __softfp ArduinoJson::V6213DB2::detail::MemoryPool *ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::getPool() const [with
TDerived=ArduinoJson::V6213DB2::JsonVariant]" at line 2592
instantiation of "inline bool ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::set(T const &) const [with TDerived=ArduinoJson::V6213DB2::JsonVariant, T=ArduinoJson::V6213DB2::JsonVariantConst]" at
line 3546
Warning[Pe430]: returning reference to local temporary C:\Users\...\src\ArduinoJson-v6.21.3.hpp 2669
detected during:
instantiation of "inline TDerived const &ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::derived() const [with TDerived=ArduinoJson::V6213DB2::JsonVariant]" at line 2672
instantiation of "inline __interwork __softfp ArduinoJson::V6213DB2::detail::MemoryPool *ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::getPool() const [with
TDerived=ArduinoJson::V6213DB2::JsonVariant]" at line 2592
instantiation of "inline bool ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::set(T const &) const [with TDerived=ArduinoJson::V6213DB2::JsonVariant, T=ArduinoJson::V6213DB2::JsonVariantConst]" at
line 3546
Warning[Pe540]: support for exception handling is disabled C:\Users\...\src\ArduinoJson-v6.21.3.hpp 5496
Error[Pe291]: no default constructor exists for class "ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>" C:\Users\...\src\ArduinoJson-v6.21.3.hpp 4687
detected during:
instantiation of "inline T ArduinoJson::V6213DB2::Converter<T, Enable>::fromJson(ArduinoJson::V6213DB2::JsonVariantConst) [with
T=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>, Enable=void]" at line 2546
instantiation of "inline ArduinoJson::V6213DB2::detail::enable_if<<expression>, T>::type ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::as<T>() const [with
TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>, T=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char
const *>]" at line 2555
instantiation of "inline ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::operator T() const [with TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char
const *>, T=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>]" at line 2669
instantiation of "inline TDerived const &ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::derived() const [with
TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>]" at line 2675
instantiation of "inline __interwork __softfp ArduinoJson::V6213DB2::detail::VariantData *ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::getData() const [with
TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>]" at line 2683
instantiation of "inline __interwork __softfp ArduinoJson::V6213DB2::JsonVariantConst ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::getVariantConst() const [with
TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>]" at line 2546
instantiation of "inline ArduinoJson::V6213DB2::detail::enable_if<<expression>, T>::type ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::as<T>() const [with
TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>, T=char const *]" at line 2555
instantiation of "inline ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::operator T() const [with TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char
const *>, T=char const *]" at line 13 of "C:\Users\...\src\json_test.cpp"
Error[Pe434]: a reference of type "std::string &" (not const-qualified) cannot be initialized with a value of type "ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>" C:\Users\...\src\ArduinoJson-v6.21.3.hpp 4688
detected during:
instantiation of "inline T ArduinoJson::V6213DB2::Converter<T, Enable>::fromJson(ArduinoJson::V6213DB2::JsonVariantConst) [with
T=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>, Enable=void]" at line 2546
instantiation of "inline ArduinoJson::V6213DB2::detail::enable_if<<expression>, T>::type ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::as<T>() const [with
TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>, T=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char
const *>]" at line 2555
instantiation of "inline ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::operator T() const [with TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char
const *>, T=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>]" at line 2669
instantiation of "inline TDerived const &ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::derived() const [with
TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>]" at line 2675
instantiation of "inline __interwork __softfp ArduinoJson::V6213DB2::detail::VariantData *ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::getData() const [with
TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>]" at line 2683
instantiation of "inline __interwork __softfp ArduinoJson::V6213DB2::JsonVariantConst ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::getVariantConst() const [with
TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>]" at line 2546
instantiation of "inline ArduinoJson::V6213DB2::detail::enable_if<<expression>, T>::type ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::as<T>() const [with
TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>, T=char const *]" at line 2555
instantiation of "inline ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::operator T() const [with TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char
const *>, T=char const *]" at line 13 of "C:\Users\...\src\json_test.cpp"
Warning[Pe430]: returning reference to local temporary C:\Users\...\src\ArduinoJson-v6.21.3.hpp 2669
detected during:
instantiation of "inline TDerived const &ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::derived() const [with
TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>]" at line 2675
instantiation of "inline __interwork __softfp ArduinoJson::V6213DB2::detail::VariantData *ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::getData() const [with
TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>]" at line 2683
instantiation of "inline __interwork __softfp ArduinoJson::V6213DB2::JsonVariantConst ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::getVariantConst() const [with
TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>]" at line 2546
instantiation of "inline ArduinoJson::V6213DB2::detail::enable_if<<expression>, T>::type ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::as<T>() const [with
TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>, T=char const *]" at line 2555
instantiation of "inline ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::operator T() const [with TDerived=ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char
const *>, T=char const *]" at line 13 of "C:\Users\...\src\json_test.cpp"
Error[Pe291]: no default constructor exists for class "ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>" C:\Users\...\src\ArduinoJson-v6.21.3.hpp 4687
detected during:
instantiation of "inline T ArduinoJson::V6213DB2::Converter<T, Enable>::fromJson(ArduinoJson::V6213DB2::JsonVariantConst) [with
T=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>, Enable=void]" at line 2546
instantiation of "inline ArduinoJson::V6213DB2::detail::enable_if<<expression>, T>::type ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::as<T>() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>,
T=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>]" at line 2555
instantiation of "inline ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::operator T() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>,
T=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>]" at line 2669
instantiation of "inline TDerived const &ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::derived() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>]" at line 2675
instantiation of "inline __interwork __softfp ArduinoJson::V6213DB2::detail::VariantData *ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::getData() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>]" at line 2683
instantiation of "inline __interwork __softfp ArduinoJson::V6213DB2::JsonVariantConst ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::getVarian
743A
tConst() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>]" at line 2546
instantiation of "inline ArduinoJson::V6213DB2::detail::enable_if<<expression>, T>::type ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::as<T>() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>, T=double]" at line 2555
instantiation of "inline ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::operator T() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>, T=double]" at line 15 of "C:\Users\...\src\json_test.cpp"
Error[Pe434]: a reference of type "std::string &" (not const-qualified) cannot be initialized with a value of type C:\Users\...\src\ArduinoJson-v6.21.3.hpp 4688
"ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>"
detected during:
instantiation of "inline T ArduinoJson::V6213DB2::Converter<T, Enable>::fromJson(ArduinoJson::V6213DB2::JsonVariantConst) [with
T=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>, Enable=void]" at line 2546
instantiation of "inline ArduinoJson::V6213DB2::detail::enable_if<<expression>, T>::type ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::as<T>() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>,
T=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>]" at line 2555
instantiation of "inline ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::operator T() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>,
T=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>]" at line 2669
instantiation of "inline TDerived const &ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::derived() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>]" at line 2675
instantiation of "inline __interwork __softfp ArduinoJson::V6213DB2::detail::VariantData *ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::getData() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>]" at line 2683
instantiation of "inline __interwork __softfp ArduinoJson::V6213DB2::JsonVariantConst ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::getVariantConst() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>]" at line 2546
instantiation of "inline ArduinoJson::V6213DB2::detail::enable_if<<expression>, T>::type ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::as<T>() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>, T=double]" at line 2555
instantiation of "inline ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::operator T() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>, T=double]" at line 15 of "C:\Users\...\src\json_test.cpp"
Warning[Pe430]: returning reference to local temporary C:\Users\...\src\ArduinoJson-v6.21.3.hpp 2669
detected during:
instantiation of "inline TDerived const &ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::derived() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>]" at line 2675
instantiation of "inline __interwork __softfp ArduinoJson::V6213DB2::detail::VariantData *ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::getData() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>]" at line 2683
instantiation of "inline __interwork __softfp ArduinoJson::V6213DB2::JsonVariantConst ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::getVariantConst() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>]" at line 2546
instantiation of "inline ArduinoJson::V6213DB2::detail::enable_if<<expression>, T>::type ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::as<T>() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>, T=double]" at line 2555
instantiation of "inline ArduinoJson::V6213DB2::detail::VariantRefBase<TDerived>::operator T() const [with
TDerived=ArduinoJson::V6213DB2::detail::ElementProxy<ArduinoJson::V6213DB2::detail::MemberProxy<ArduinoJson::V6213DB2::JsonDocument &, char const *>>, T=double]" at line 15 of "C:\Users\...\src\json_test.cpp"
Error while running C/C++ Compiler
Total number of errors: 5
Total number of warnings: 8