# C et C++ > Outils pour C & C++ > Analyse de code >  Analyse statique de code

## Bayard

Bonsoir,

Etant  la recherche d'outil d'analyse statique de code, j'ai dcouvert cela:

http://en.wikipedia.org/wiki/List_of..._code_analysis


Est-ce quelqu'un connait un outil permettant de raliser de l'analyse statique de code ? Je connais par exemple QA C.

----------


## Gruik

Salut,

On m'avait parl de Splint  une epoque, pas eu vraiment l'occasion d'essayer

----------


## Bayard

Est ce que quelqu'un connait quelque chose de comparable au puissant (et payant   ::oops:: ) QA C ?

-> Dtection de code mort, de dpassement de buffer, etc...

----------


## Emmanuel Delahaye

> Est ce que quelqu'un connait quelque chose de comparable au puissant (et payant  ) QA C ?
> 
> -> Dtection de code mort, de dpassement de buffer, etc...


QA C est hors de prix et les rsultats ne sont pas  la hauteur...

Un gcc bien rgl + [sp]lint + un cerveau en tat de marche suffisent en gnral.

----------


## Bayard

```
QA C est hors de prix
```

C'est vrai qu'il est cher : environ 9 000 Euros.

Nanmoins je doute que Splint le remplace.

A ma connaissance, splint ne gre pas les rgles MISRA.



```
et les résultats ne sont pas à la hauteur...
```

-> Un exemple ?

----------


## Gruik

> Est ce que quelqu'un connait quelque chose de comparable au puissant (et payant  ) QA C ?
> 
> -> Dtection de code mort, de dpassement de buffer, etc...


Pour la detection de code mort, gcc le gere avec -Wunreachable-code. C'tait un peu foireux dans la version 3 (tout comme les variables non initialises), mais il semblerait qu'avec la version 4 a soit beaucoup mieux.
Depassement de buffer, une extension de gcc appele "Bounds Checking" le permet (mais pas de faon statique). Le memcheck de valgrind aussi.

----------


## Emmanuel Delahaye

> A ma connaissance, splint ne gre pas les rgles MISRA.


Non, mais MISRA est une norme trs ferme avec ses propres outils de vrification...



> et les rsultats ne sont pas  la hauteur...
> 			
> 		
> 
> -> Un exemple ?


J'avais demand une dmo sur mon code (clib) et il trouvait des tas d'erreurs fantaisistes (faux positifs)... Je ne crois pas avoir rcupr ces fichiers de dmo (incendie, licenciement, crashes DD...)...

----------

