arduino / arduino/ArduinoCore-mbed
Moving one EthernetClient object to another crashes the Portenta H7
- Dominant language
- C
- Stars
- 411
- Forks
- 225
- PR merge metrics
- No merged PRs in 30d
Description
As the title says. Reproducer sketch:
```c++
#include
// --------------------------------------------------------------------------------
// remove_reference
template
struct remove_reference {
typedef T type;
};
template
struct remove_reference {
typedef T type;
};
template
struct remove_reference {
typedef T type;
};
#define MOVE(...) \
static_cast::type &&>( \
__VA_ARGS__)
void setup() {
EthernetClient ec = {};
EthernetClient ec2{ MOVE(ec) }; // Crashes the board
}
void loop() {}
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the provided reproducer sketch and the EthernetClient move construction in setup(). Run it on a Portenta H7 to confirm the crash, then trace the EthernetClient implementation used by Ethernet.h. Done means moving one EthernetClient into another no longer crashes the board.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- embedded-iot
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100