Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Missing virtual destructor for `Print` class

Aberta
#256 0 comentários 0 reações 0 responsáveis Ver no GitHub

@andreagilardoni já está trabalhando nisso.

Desde 27/9/2023.

  • #218 de @andreagilardoni — aberto

Avaliação

Dificuldade
1/5
Tempo estimado
Menos de uma hora
Facilidade para iniciantes
30/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Estagnada
Stack de tecnologia
cpp
Domínio
api, embedded-iot

Direção de pesquisa

Leia a declaração referenciada em api/Print.h e revise o pull request vinculado #218 para entender a alteração proposta. Está concluído quando o exemplo Modem.cpp não produzir mais o aviso sobre destrutor não virtual nem a preocupação associada de comportamento indefinido.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug
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

Linguagem predominante
C++
Estrelas
306
Forks
150
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Ainda não verificamos os arquivos de configuração deste projeto. Comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de arduino/ArduinoCore-API

Todas as issues de arduino/ArduinoCore-API

Issues semelhantes

Mais issues de C++

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.