arduino / arduino/ArduinoCore-API
Missing virtual destructor for `Print` class
- Lenguaje dominante
- C++
- Estrellas
- 306
- Forks
- 150
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
### Description
Missing virtual destructor - memory leak and UB
### Environment
First found on R4, but it is general
### Current behavior
Warning while compiling sketch, possible UB.
```
packages/arduino/hardware/renesas_uno/1.5.0/libraries/WiFiS3/src/Modem.cpp: In destructor 'ModemClass::~ModemClass()':
packages/arduino/hardware/renesas_uno/1.5.0/libraries/WiFiS3/src/Modem.cpp:27:14: warning: deleting object of polymorphic
class type 'UART' which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor]
delete _serial;
```
ModemClass extends Serial which extends Print.
### Expected behavior
no warnings
### Additional information
This class is very base class of all streams and other i/o components.
https://github.com/arduino/ArduinoCore-API/blob/4a02bfc0a924e1fec34c3bb82ffd5dfba7643a0c/api/Print.h#L35
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Lee la declaración referenciada en api/Print.h y revisa el pull request enlazado #218 para entender el cambio propuesto. Se considera completado cuando el ejemplo Modem.cpp ya no produce la advertencia sobre un destructor no virtual ni la preocupación asociada por comportamiento indefinido.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- cpp
- Área
- api, embedded-iot
- Tipo de issue
- Error
- Dificultad
- 1/5
- Tiempo estimado
- Menos de una hora
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 30/100