Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

`A4-7-1`: Guard using "." operator getting ignored

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

Personne n'a encore pris cette issue.

Évaluation

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

Piste de recherche

Commencez par localiser l’implémentation de A4-7-1 qui émet cpp/autosar/integer-expression-lead-to-data-loss, puis reproduisez les exemples false_positive et true_negative. Suivez la manière dont la garde est reconnue pour un membre auquel on accède avec l’opérateur ".". Le travail est terminé lorsque le décrément protégé dans false_positive n’émet plus d’avertissement, tandis que le comportement existant de true_negative reste conforme.

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

Description

Difficulty-High false positive/false negative Impact-Medium Standard-AUTOSAR user-report
Affected rules
  • A4-7-1
Description

Changing a class/struct's member value with an arithmetic expression triggers a A4-7-1 warning, despite using an appropriate type guard (example function false_positive).
I have to workaround it by destructuring my member (example function true_negative).

It seems that the "." operator is badly supported.

Triggered warning is cpp/autosar/integer-expression-lead-to-data-loss.

Example
struct A {
  std::int32_t s32;
}

void false_positive(A a) {
  if (a.s32 > std::numeric_limits<std::int32_t>::min()) {
    // Is supposed to be compliant with A4-7-1, but CodeQL reports a warning
    --a.s32;
  }
}

void true_negative(A a) {
  auto s32 = a.s32;
  if (s32 > std::numeric_limits<std::int32_t>::min()) {
    // Compliant with A4-7-1
    --s32;
  }
  a.s32 = s32;
}
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.