[cpp] Check whether path between function A and function B exists
- Langage dominant
- CodeQL
- Étoiles
- 10.1k
- Forks
- 2.1k
- Merge moyen
- 2 j 15 h
- PR mergées (30 j)
- 141
Description
Hi! I'm trying to write a query that checks whether function A can call (directly or transitively) function B. I've implemented it with recursive predicate that uses `Function.calls`. It works, but is slow. I suspect DataFlow API can be handy but couldn't produce working query yet. I'm dealing with fairly simple cpp code that doesn't use virtual functions, doesn't use pointer arithmetic, so DataFlow might be a bit too excessive for my task. I wonder what is the most efficient way to solve this problem. Thanks!
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Aucun fichier ni test du dépôt n’est nommé. Commencez par examiner le prédicat récursif à l’aide de `Function.calls` et des points d’entrée disponibles de l’API DataFlow ; la tâche est terminée lorsqu’une approche efficace pour vérifier les appels directs ou transitifs dans le cas C++ non virtuel indiqué a été identifiée et documentée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp
- Domaine
- tooling
- Type d'issue
- Documentation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 20/100