Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

failed to compile. ambiguous call to writer->Put #7057

Closed
Kxuan opened this issue May 24, 2021 · 4 comments
Closed

failed to compile. ambiguous call to writer->Put #7057

Kxuan opened this issue May 24, 2021 · 4 comments

Comments

@Kxuan
Copy link
Contributor

Kxuan commented May 24, 2021

Problem

Step to reproduce
Build examples/all-cluster-app/esp32

The error mesage shows:

Click to expand!
FAILED: esp-idf/main/CMakeFiles/__idf_main.dir/__/third_party/connectedhomeip/src/app/clusters/door-lock-server/door-lock-server-logging.cpp.obj
/home/xuan/.espressif/tools/riscv32-esp-elf/1.24.0.123_64eb9ff-8.4.0/riscv32-esp-elf/bin/riscv32-esp-elf-g++ -DHAVE_CONFIG_H -DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\" -DUNITY_INCLUDE_CONFIG_H -DWITH_POSIX -Iconfig -I../third_party/connectedhomeip/examples/all-clusters-app/all-clusters-common -I../third_party/connectedhomeip/third_party/nlio/repo/include -I../third_party/connectedhomeip/src -I../main/include -I../third_party/connectedhomeip/examples/common/screen-framework/include -I/data/git/esp-idf/components/newlib/platform_include -I/data/git/esp-idf/components/freertos/include -I/data/git/esp-idf/components/freertos/port/riscv/include -I/data/git/esp-idf/components/esp_hw_support/include -I/data/git/esp-idf/components/esp_hw_support/port/esp32c3/. -I/data/git/esp-idf/components/esp_hw_support/port/esp32c3/private_include -I/data/git/esp-idf/components/heap/include -I/data/git/esp-idf/components/log/include -I/data/git/esp-idf/components/lwip/include/apps -I/data/git/esp-idf/components/lwip/include/apps/sntp -I/data/git/esp-idf/components/lwip/lwip/src/include -I/data/git/esp-idf/components/lwip/port/esp32/include -I/data/git/esp-idf/components/lwip/port/esp32/include/arch -I/data/git/esp-idf/components/soc/include -I/data/git/esp-idf/components/soc/esp32c3/. -I/data/git/esp-idf/components/soc/esp32c3/include -I/data/git/esp-idf/components/hal/esp32c3/include -I/data/git/esp-idf/components/hal/include -I/data/git/esp-idf/components/esp_rom/include -I/data/git/esp-idf/components/esp_rom/esp32c3 -I/data/git/esp-idf/components/esp_common/include -I/data/git/esp-idf/components/esp_system/include -I/data/git/esp-idf/components/esp32c3/include -I/data/git/esp-idf/components/driver/include -I/data/git/esp-idf/components/driver/esp32c3/include -I/data/git/esp-idf/components/esp_ringbuf/include -I/data/git/esp-idf/components/efuse/include -I/data/git/esp-idf/components/efuse/esp32c3/include -I/data/git/esp-idf/components/riscv/include -I/data/git/esp-idf/components/espcoredump/include -I/data/git/esp-idf/components/esp_timer/include -I/data/git/esp-idf/components/esp_ipc/include -I/data/git/esp-idf/components/esp_pm/include -I/data/git/esp-idf/components/vfs/include -I/data/git/esp-idf/components/esp_wifi/include -I/data/git/esp-idf/components/esp_wifi/esp32c3/include -I/data/git/esp-idf/components/esp_event/include -I/data/git/esp-idf/components/esp_netif/include -I/data/git/esp-idf/components/esp_eth/include -I/data/git/esp-idf/components/tcpip_adapter/include -I/data/git/esp-idf/components/mbedtls/port/include -I/data/git/esp-idf/components/mbedtls/mbedtls/include -I/data/git/esp-idf/components/mbedtls/esp_crt_bundle/include -I/data/git/esp-idf/components/app_update/include -I/data/git/esp-idf/components/spi_flash/include -I/data/git/esp-idf/components/bootloader_support/include -I/data/git/esp-idf/components/nvs_flash/include -I/data/git/esp-idf/components/pthread/include -I/data/git/esp-idf/components/esp_gdbstub/include -I/data/git/esp-idf/components/esp_gdbstub/riscv -I/data/git/esp-idf/components/esp_gdbstub/esp32c3 -I/data/git/esp-idf/components/wpa_supplicant/include -I/data/git/esp-idf/components/wpa_supplicant/port/include -I/data/git/esp-idf/components/wpa_supplicant/include/esp_supplicant -I/data/git/esp-idf/components/app_trace/include -I/data/git/esp-idf/components/asio/asio/asio/include -I/data/git/esp-idf/components/asio/port/include -I/data/git/esp-idf/components/bt/common/osi/include -I/data/git/esp-idf/components/bt/include/esp32c3/include -I/data/git/esp-idf/components/bt/host/nimble/nimble/porting/nimble/include -I/data/git/esp-idf/components/bt/host/nimble/port/include -I/data/git/esp-idf/components/bt/host/nimble/nimble/nimble/include -I/data/git/esp-idf/components/bt/host/nimble/nimble/nimble/host/include -I/data/git/esp-idf/components/bt/host/nimble/nimble/nimble/host/services/ans/include -I/data/git/esp-idf/components/bt/host/nimble/nimble/nimble/host/services/bas/include -I/data/git/esp-idf/components/bt/host/nimble/nimble/nimble/host/services/dis/include -I/data/git/esp-idf/components/bt/host/nimble/nimble/nimble/host/services/gap/include -I/data/git/esp-idf/components/bt/host/nimble/nimble/nimble/host/services/gatt/include -I/data/git/esp-idf/components/bt/host/nimble/nimble/nimble/host/services/ias/include -I/data/git/esp-idf/components/bt/host/nimble/nimble/nimble/host/services/ipss/include -I/data/git/esp-idf/components/bt/host/nimble/nimble/nimble/host/services/lls/include -I/data/git/esp-idf/components/bt/host/nimble/nimble/nimble/host/services/tps/include -I/data/git/esp-idf/components/bt/host/nimble/nimble/nimble/host/util/include -I/data/git/esp-idf/components/bt/host/nimble/nimble/nimble/host/store/ram/include -I/data/git/esp-idf/components/bt/host/nimble/nimble/nimble/host/store/config/include -I/data/git/esp-idf/components/bt/host/nimble/nimble/porting/npl/freertos/include -I/data/git/esp-idf/components/bt/host/nimble/esp-hci/include -I/data/git/esp-idf/components/cbor/port/include -I/data/git/esp-idf/components/unity/include -I/data/git/esp-idf/components/unity/unity/src -I/data/git/esp-idf/components/cmock/CMock/src -I/data/git/esp-idf/components/coap/port/include -I/data/git/esp-idf/components/coap/port/include/coap -I/data/git/esp-idf/components/coap/libcoap/include -I/data/git/esp-idf/components/coap/libcoap/include/coap2 -I/data/git/esp-idf/components/console -I/data/git/esp-idf/components/nghttp/port/include -I/data/git/esp-idf/components/nghttp/nghttp2/lib/includes -I/data/git/esp-idf/components/esp-tls -I/data/git/esp-idf/components/esp-tls/esp-tls-crypto -I/data/git/esp-idf/components/esp_adc_cal/include -I/data/git/esp-idf/components/esp_hid/include -I/data/git/esp-idf/components/tcp_transport/include -I/data/git/esp-idf/components/esp_http_client/include -I/data/git/esp-idf/components/esp_http_server/include -I/data/git/esp-idf/components/esp_https_ota/include -I/data/git/esp-idf/components/protobuf-c/protobuf-c -I/data/git/esp-idf/components/protocomm/include/common -I/data/git/esp-idf/components/protocomm/include/security -I/data/git/esp-idf/components/protocomm/include/transports -I/data/git/esp-idf/components/mdns/include -I/data/git/esp-idf/components/esp_local_ctrl/include -I/data/git/esp-idf/components/sdmmc/include -I/data/git/esp-idf/components/esp_serial_slave_link/include -I/data/git/esp-idf/components/esp_websocket_client/include -I/data/git/esp-idf/components/expat/expat/expat/lib -I/data/git/esp-idf/components/expat/port/include -I/data/git/esp-idf/components/wear_levelling/include -I/data/git/esp-idf/components/fatfs/diskio -I/data/git/esp-idf/components/fatfs/vfs -I/data/git/esp-idf/components/fatfs/src -I/data/git/esp-idf/components/freemodbus/common/include -I/data/git/esp-idf/components/idf_test/include -I/data/git/esp-idf/components/idf_test/include/esp32c3 -I/data/git/esp-idf/components/jsmn/include -I/data/git/esp-idf/components/json/cJSON -I/data/git/esp-idf/components/libsodium/libsodium/src/libsodium/include -I/data/git/esp-idf/components/libsodium/port_include -I/data/git/esp-idf/components/mqtt/esp-mqtt/include -I/data/git/esp-idf/components/openssl/include -I/data/git/esp-idf/components/spiffs/include -I/data/git/esp-idf/components/wifi_provisioning/include -I/data/git/connectedhomeip/src/platform/ESP32 -I/data/git/connectedhomeip/src/include -I/data/git/connectedhomeip/src/lib -I/data/git/connectedhomeip/src -I/data/git/connectedhomeip/third_party/nlassert/repo/include -I/data/git/connectedhomeip/third_party/nlio/repo/include -Iesp-idf/chip/src/include -Iesp-idf/chip/include -Iesp-idf/chip/gen/include -I../third_party/connectedhomeip/config/esp32/components/esp32_mbedtls -I/data/git/connectedhomeip/examples/common/QRCode/repo/c -march=rv32imc -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -ggdb -Wno-error=format= -nostartfiles -Wno-format -Og -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -std=gnu++11 -fno-exceptions -fno-rtti -std=gnu++14 -Os -DLWIP_IPV6_SCOPES=0 -DCHIP_HAVE_CONFIG_H -D_GNU_SOURCE -DIDF_VER=\"v4.3-beta3-195-g6be10fab0\" -DESP_PLATFORM -std=gnu++14 -MD -MT esp-idf/main/CMakeFiles/__idf_main.dir/__/third_party/connectedhomeip/src/app/clusters/door-lock-server/door-lock-server-logging.cpp.obj -MF esp-idf/main/CMakeFiles/__idf_main.dir/__/third_party/connectedhomeip/src/app/clusters/door-lock-server/door-lock-server-logging.cpp.obj.d -o esp-idf/main/CMakeFiles/__idf_main.dir/__/third_party/connectedhomeip/src/app/clusters/door-lock-server/door-lock-server-logging.cpp.obj -c ../third_party/connectedhomeip/src/app/clusters/door-lock-server/door-lock-server-logging.cpp
In file included from /data/git/connectedhomeip/third_party/nlassert/repo/include/nlassert-production.h:29,
                 from /data/git/connectedhomeip/third_party/nlassert/repo/include/nlassert.h:1725,
                 from /data/git/connectedhomeip/src/lib/support/CodeUtils.h:118,
                 from ../third_party/connectedhomeip/src/system/SystemPacketBuffer.h:33,
                 from ../third_party/connectedhomeip/src/transport/raw/MessageHeader.h:36,
                 from ../third_party/connectedhomeip/src/app/util/basic-types.h:29,
                 from ../third_party/connectedhomeip/src/app/util/af-types.h:55,
                 from ../third_party/connectedhomeip/src/app/util/af.h:69,
                 from ../third_party/connectedhomeip/src/app/clusters/door-lock-server/door-lock-server.h:46,
                 from ../third_party/connectedhomeip/src/app/clusters/door-lock-server/door-lock-server-logging.cpp:41:
../third_party/connectedhomeip/src/app/clusters/door-lock-server/door-lock-server-logging.cpp: In function 'bool emberAfDoorLockClusterGetLogRecordCallback(chip::app::Command*, uint16_t)':
../third_party/connectedhomeip/src/app/clusters/door-lock-server/door-lock-server-logging.cpp:158:80: error: call of overloaded 'Put(uint64_t, EmberAfDoorLockEventType&)' is ambiguous
             SuccessOrExit(err = writer->Put(TLV::ContextTag(2), entry.eventType));
                                                                                ^
/data/git/connectedhomeip/third_party/nlassert/repo/include/nlassert-internal.h:125:38: note: in definition of macro '__nlSHOULD_ASSERT'
 #define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
                                      ^~~~~~~~~
/data/git/connectedhomeip/third_party/nlassert/repo/include/nlassert.h:1400:81: note: in expansion of macro '__nlEXPECT'
 #define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
                                                                                 ^~~~~~~~~~
/data/git/connectedhomeip/src/lib/support/CodeUtils.h:312:32: note: in expansion of macro 'nlEXPECT'
 #define SuccessOrExit(aStatus) nlEXPECT((aStatus) == CHIP_NO_ERROR, exit)
                                ^~~~~~~~
../third_party/connectedhomeip/src/app/clusters/door-lock-server/door-lock-server-logging.cpp:158:13: note: in expansion of macro 'SuccessOrExit'
             SuccessOrExit(err = writer->Put(TLV::ContextTag(2), entry.eventType));
             ^~~~~~~~~~~~~
In file included from ../third_party/connectedhomeip/src/credentials/CHIPCert.h:34,
                 from ../third_party/connectedhomeip/src/credentials/CHIPOperationalCredentials.h:28,
                 from ../third_party/connectedhomeip/src/transport/AdminPairingTable.h:26,
                 from ../third_party/connectedhomeip/src/messaging/ExchangeACL.h:21,
                 from ../third_party/connectedhomeip/src/messaging/ExchangeContext.h:27,
                 from ../third_party/connectedhomeip/src/app/util/af-types.h:58,
                 from ../third_party/connectedhomeip/src/app/util/af.h:69,
                 from ../third_party/connectedhomeip/src/app/clusters/door-lock-server/door-lock-server.h:46,
                 from ../third_party/connectedhomeip/src/app/clusters/door-lock-server/door-lock-server-logging.cpp:41:
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:896:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, int8_t)'
     CHIP_ERROR Put(uint64_t tag, int8_t v);
                ^~~
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:933:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, int16_t)'
     CHIP_ERROR Put(uint64_t tag, int16_t v);
                ^~~
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:943:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, int32_t)'
     CHIP_ERROR Put(uint64_t tag, int32_t v);
                ^~~
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:953:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, int64_t)'
     CHIP_ERROR Put(uint64_t tag, int64_t v);
                ^~~
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:986:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, uint8_t)'
     CHIP_ERROR Put(uint64_t tag, uint8_t v);
                ^~~
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:1023:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, uint16_t)'
     CHIP_ERROR Put(uint64_t tag, uint16_t v);
                ^~~
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:1033:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, uint32_t)'
     CHIP_ERROR Put(uint64_t tag, uint32_t v);
                ^~~
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:1043:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, uint64_t)'
     CHIP_ERROR Put(uint64_t tag, uint64_t v);
                ^~~
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:1076:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, double)'
     CHIP_ERROR Put(uint64_t tag, double v);
                ^~~
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:1081:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, float)'
     CHIP_ERROR Put(uint64_t tag, float v);
                ^~~
In file included from /data/git/connectedhomeip/third_party/nlassert/repo/include/nlassert-production.h:29,
                 from /data/git/connectedhomeip/third_party/nlassert/repo/include/nlassert.h:1725,
                 from /data/git/connectedhomeip/src/lib/support/CodeUtils.h:118,
                 from ../third_party/connectedhomeip/src/system/SystemPacketBuffer.h:33,
                 from ../third_party/connectedhomeip/src/transport/raw/MessageHeader.h:36,
                 from ../third_party/connectedhomeip/src/app/util/basic-types.h:29,
                 from ../third_party/connectedhomeip/src/app/util/af-types.h:55,
                 from ../third_party/connectedhomeip/src/app/util/af.h:69,
                 from ../third_party/connectedhomeip/src/app/clusters/door-lock-server/door-lock-server.h:46,
                 from ../third_party/connectedhomeip/src/app/clusters/door-lock-server/door-lock-server-logging.cpp:41:
../third_party/connectedhomeip/src/app/clusters/door-lock-server/door-lock-server-logging.cpp:159:77: error: call of overloaded 'Put(uint64_t, EmberAfDoorLockEventSource&)' is ambiguous
             SuccessOrExit(err = writer->Put(TLV::ContextTag(3), entry.source));
                                                                             ^
/data/git/connectedhomeip/third_party/nlassert/repo/include/nlassert-internal.h:125:38: note: in definition of macro '__nlSHOULD_ASSERT'
 #define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
                                      ^~~~~~~~~
/data/git/connectedhomeip/third_party/nlassert/repo/include/nlassert.h:1400:81: note: in expansion of macro '__nlEXPECT'
 #define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
                                                                                 ^~~~~~~~~~
/data/git/connectedhomeip/src/lib/support/CodeUtils.h:312:32: note: in expansion of macro 'nlEXPECT'
 #define SuccessOrExit(aStatus) nlEXPECT((aStatus) == CHIP_NO_ERROR, exit)
                                ^~~~~~~~
../third_party/connectedhomeip/src/app/clusters/door-lock-server/door-lock-server-logging.cpp:159:13: note: in expansion of macro 'SuccessOrExit'
             SuccessOrExit(err = writer->Put(TLV::ContextTag(3), entry.source));
             ^~~~~~~~~~~~~
In file included from ../third_party/connectedhomeip/src/credentials/CHIPCert.h:34,
                 from ../third_party/connectedhomeip/src/credentials/CHIPOperationalCredentials.h:28,
                 from ../third_party/connectedhomeip/src/transport/AdminPairingTable.h:26,
                 from ../third_party/connectedhomeip/src/messaging/ExchangeACL.h:21,
                 from ../third_party/connectedhomeip/src/messaging/ExchangeContext.h:27,
                 from ../third_party/connectedhomeip/src/app/util/af-types.h:58,
                 from ../third_party/connectedhomeip/src/app/util/af.h:69,
                 from ../third_party/connectedhomeip/src/app/clusters/door-lock-server/door-lock-server.h:46,
                 from ../third_party/connectedhomeip/src/app/clusters/door-lock-server/door-lock-server-logging.cpp:41:
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:896:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, int8_t)'
     CHIP_ERROR Put(uint64_t tag, int8_t v);
                ^~~
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:933:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, int16_t)'
     CHIP_ERROR Put(uint64_t tag, int16_t v);
                ^~~
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:943:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, int32_t)'
     CHIP_ERROR Put(uint64_t tag, int32_t v);
                ^~~
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:953:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, int64_t)'
     CHIP_ERROR Put(uint64_t tag, int64_t v);
                ^~~
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:986:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, uint8_t)'
     CHIP_ERROR Put(uint64_t tag, uint8_t v);
                ^~~
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:1023:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, uint16_t)'
     CHIP_ERROR Put(uint64_t tag, uint16_t v);
                ^~~
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:1033:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, uint32_t)'
     CHIP_ERROR Put(uint64_t tag, uint32_t v);
                ^~~
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:1043:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, uint64_t)'
     CHIP_ERROR Put(uint64_t tag, uint64_t v);
                ^~~
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:1076:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, double)'
     CHIP_ERROR Put(uint64_t tag, double v);
                ^~~
/data/git/connectedhomeip/src/lib/core/CHIPTLV.h:1081:16: note: candidate: 'CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, float)'
     CHIP_ERROR Put(uint64_t tag, float v);
                ^~~
ninja: build stopped: subcommand failed.
ninja failed with exit code 1

Compiler version:
riscv32-esp-elf-g++ 8.4.0

Some details

The riscv32 toolchains defines int32_t from long int instead of int. This is unusual. But ESP-IDF did it!
This table shows all common used int type alias on riscv32-esp:

type alias base type on riscv32-esp
int8_t signed char
uint8_t unsigned char
int16_t short int
uint16_t short unsigned int
int32_t long int
uint32_t long unsigned int
int64_t long long int
uint64_t long long unsigned int

In the chip code, the field entry.eventType is an enum, and we have not set the underlying integer types, so the enum takes the default undying type int.
Then the problem happen.

As you can see, there is no type alias takes int, and we are not define a function CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, int) for compiler. So when the compiler try to invoke chip::TLV::TLVWriter::Put, it confused.

  1. The compiler first tries chip::TLV::TLVWriter::Put(uint64_t, EmberAfStatus&), but it is not defined. So the compiler should make a implicit cast.
  2. The compiler tries using the underlying integer types CHIP_ERROR chip::TLV::TLVWriter::Put(uint64_t, int) or similar overloads, then it fails due to they are not defined.
  3. The compiler tries to cast from EmberAfStatus to other compatible int type, but it find so many candidates, and it doesn't know which one should be take, so it fails again.

Proposed Solution

I think there are many solutions we can choice, just advise:

  1. explicit static_cast EmberAfStatus to int32_t when we call chip::TLV::TLVWriter::Put.
  2. update the riscv32-esp toolchains, and define int32_t from int instead of long int.
@Kxuan
Copy link
Contributor Author

Kxuan commented May 24, 2021

It seems this problem is introduced by 80120a2. @erjiaqing @vivien-apple

And also related #6345

@chshu
Copy link
Contributor

chshu commented May 26, 2021

Since the original type is enum, the explicit static_cast sounds a reasonable solution.

As discussed in esp-idf#6906, type alias on riscv32-esp is from the upstream RISC-V toolchain.

@bzbarsky-apple
Copy link
Contributor

Is this fixed by #7266?

@Kxuan
Copy link
Contributor Author

Kxuan commented Jun 15, 2021

Fixed

@Kxuan Kxuan closed this as completed Jun 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants