Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

`RULE-25-21`, others: Consider something like a library TracesToExplicit<T>

Offen
#848 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
25/100
Issue-Typ
Feature
Klarheit
Muss geklärt werden
Aktivitätsstatus
Veraltet
Tech-Stack
cpp
Bereich
devtools

Rechercherichtung

Beginnen Sie mit der Untersuchung der Implementierung und Tests für RULE-25-21 sowie der Behandlung von atomic_*_explicit-Operationen. Definieren Sie die unterstützten Fälle für die Rückwärtsverfolgung von Zuweisungen, Parametern und Funktionsaufrufen oder -rückgaben und bestimmen Sie anschließend, wie ungültige Pfade gemeldet werden sollen. Als abgeschlossen gilt die Aufgabe, wenn die vorgeschlagene Tracing-Bibliothek zulässige Wurzeln verarbeitet und Werte ablehnt, die nicht bis zu memory_order_seq_cst zurückverfolgt werden können.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Difficulty-Low enhancement Impact-Low
Affected rules
  • RULE-25-21
  • Likely others, haven't researched
Description

Rule 25-21 requires that the atomic_*_explicit operations use the memory order memory_order_seq_cst.

It would probably be overly restrictive to require an explicit inline written memory_order_seq_cst at the call site. However, it's probably too accepting to merely allow any dynamically computed value. Ideally, we can support basic indirection like variable assignment, parameter values, function calls/returns, and report cases that don't trace back to an acceptable root.

Doing this as a typical flow analysis is backwards. We can easily track flow from memory_order_seq_cst exprs to atomic_*_explicit calls, but the existence of such a flow doesn't preclude that invalid values also flow to the call. Alternatively, there are potential performance issues if we consider all exprs which are not memory_order_seq_cst to be sources in the flow analysis.

Wouldn't be terribly hard to write a library such as TracesToExplicit<T> that is a very simple global flow analysis made for this purpose, starting from sinks and doing only very obvious backwards tracking of values through function calls and variable assignments. If that doesn't track back to an acceptable value, we can report it. Ideally we can report it as a path-problem though this makes such a library more complex to implement.

Vorherrschende Sprache
CodeQL
Sterne
227
Forks
82
Ø Merge
6 T. 7 Std.
Gemergte PRs (30 T.)
9

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus github/codeql-coding-standards

Alle Issues in github/codeql-coding-standards

Ähnliche Issues

Weitere Issues zu DevTools

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.