`A27-0-4`: C-Style (and arrays) detected when logging in assert or using the hash/stringize operator in a macro

Ouverte
#772 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
cpp
Domaine
devtools

Piste de recherche

Commencez par les implémentations des règles A27-0-4 et A18-1-1, puis reproduisez l’exemple C++ fourni. Comparez les diagnostics du macro, de l’appel à assert et de l’expression transformée en chaîne avec des cas qui utilisent directement des tableaux ou des chaînes. Le travail est terminé lorsque les faux positifs signalés sont résolus tout en permettant aux règles concernées de continuer à détecter les cas prévus.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

false positive/false negative Standard-AUTOSAR
Affected rules
  • A27-0-4
  • A18-1-1
Description

Alerts of both rules are triggered even if no C-style array or string is directly used. It may also be relevant that the usage of the # operator is covered by rule M16-3-2.

Example
#include <cassert>

#define ASSERT(expr) ((expr) ? static_cast<void>(0) : [] { assert(false && #expr); }())

class a_class
{
  public:
    void some_operator()
    {
        ASSERT(flag_);
    }

  private:
    bool flag_ = false;
};

int main()
{
    assert((false) && "A way to add an assert message");
    a_class instance;
    instance.some_operator();
}

A27-0-4 and A18-1-1 alerts are signaled on ASSERT(flag_); as well as assert((false) && "A way ... message");

Langage dominant
CodeQL
Étoiles
227
Forks
82
Merge moyen
6 j 7 h
PR mergées (30 j)
9

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de github/codeql-coding-standards

Toutes les issues de github/codeql-coding-standards

Issues similaires

Plus d'issues DevTools

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.