La plupart des messages d'erreur sont associés à un numéro. En consultant la liste ci-dessous, vous obtiendrez des informations supplémentaires sur la cause de l'erreur.
En général, les erreurs de 1 à 99 sont des erreurs de syntaxe. Celles de 200 à 299 sont des erreurs internes de PC-Lint et ne devraient jamais se produire. Les messages de 500 à 599 sont des avertissements. Ils indiquent qu'il y a probablement un problème avec le programme C analysé. Les messages de 700 à 799 sont des messages d'information. Il peut s'agir d'erreurs, mais aussi de pratiques de programmation légitimes, selon le style de programmation personnel.
Dans chaque plage, les erreurs du quart supérieur de chaque groupe de 100 (75-99, 275-299, 575-599,...) ne peuvent être rattachées à une ligne de code spécifique. Les autres, en revanche, peuvent l'être.
Voici quelques termes utilisés dans le commentaire ci-dessous :
| Terme | Description |
|---|---|
| Intégral | Un type possédant des propriétés similaires à celles des entiers. Il s'agit notamment des types `char`, `short`, `int` et `long`, ainsi que de leurs variantes non signées. |
| Arithmétique | Tous les types entiers, ainsi que les types `float` et `double`. |
| Scalaire | Tous les types arithmétiques, ainsi que les pointeurs. |
| Erreur | Message | Description |
|---|---|---|
| 1 | Unclosed Comment | La fin du fichier a été atteinte alors qu'un commentaire était encore ouvert. |
| 2 | Unclosed Quote | Une fin de ligne a été atteinte et aucun caractère de guillemet correspondant (simple ou double) à un caractère de guillemet précédent sur la même ligne n'a été trouvé. |
| 3 | #else without a #if | Une directive #else a été rencontrée en dehors de la portée d'une directive #if, #ifdef ou #ifndef. |
| 4 | Too many #if levels | Une limite interne a été atteinte au niveau d'imbrication des #if (y compris les #ifdef et les #ifndef). |
| 5 | Too many #endif's | Une directive #endif a été rencontrée en dehors de la portée d'une directive #if, #ifdef ou #ifndef. |
| 6 | Stack overflow | L'une des piles intégrées non extensibles est surchargée. Cela peut être dû à un trop grand nombre d'instructions `#if`, `#include`, de blocs statiques (délimités par des accolades) ou de remplacements `#define` imbriqués. La cause la plus probable est une boucle `#define`. |
| 7 | Unable to open include file: ... | Le fichier d'inclusion spécifié n'a pas pu être ouvert. |
| 8 | Unclosed #if | Un #if (ou #ifdef ou #ifndef) a été rencontré sans #endif correspondant. |
| 9 | Too many #else's in #if (line ...) | Une instruction #if donnée contenait une instruction #else, elle-même suivie soit d'une autre instruction #else, soit d'une instruction #elif. Le message d'erreur indique la ligne de l'instruction #if qui a introduit la condition contenant l'anomalie. |
| 10 | Expecting... | Le jeton attendu est introuvable. |
| 11 | Excessive Size | Le nom de fichier spécifié sur une ligne #include avait une longueur supérieure à 100 caractères. |
| 12 | Need < or " | Après la détection d'une directive #include, une spécification de fichier de la forme <nom-de-fichier> ou "nom-de-fichier" est attendue. |
| 13 | Bad type | Un adjectif typologique tel que « long », « non signé », etc. ne peut pas être appliqué au type qui suit. |
| 14 | Object ... previously defined in ... | L'objet en question a été défini une seconde fois. L'emplacement de la définition précédente est indiqué. |
| 15 | Symbol ... has type incompatibility with ... | Le symbole nommé a été précédemment déclaré ou défini (emplacement indiqué) avec un type différent du type indiqué par la déclaration à l'emplacement actuel. |
| 16 | Unrecognized name | La directive # n'est pas suivie d'un mot reconnaissable. |
| 17 | Unrecognized name | Un élément non paramétrique est déclaré là où seuls des paramètres devraient être présents. |
| 18 | Redefinition of symbol ... | Le type d'un objet est en cours de modification. |
| 19 | Useless Declaration | Un type isolé, sans variable associée, et ce type n'était ni une structure ni une union. |
| 20 | Illegal use of = | Une déclaration de fonction était suivie du signe =. |
| 21 | Expected left bracs | L'initialiseur d'un tableau de taille indéfinie doit commencer par une accolade ouvrante. |
| 22 | Illegal operator | Un opérateur unaire a été trouvé après un opérande et cet opérateur n'est pas un opérateur post-opérateur. |
| 23 | Expected colon | Un opérateur « ? » a été rencontré, mais il n'était pas suivi d'un « : » comme prévu. |
| 24 | Expected an expression | Un opérateur a été trouvé au début d'une expression, mais il s'agissait d'un opérateur unaire. |
| 25 | Illegal constant | Trop de caractères ont été rencontrés dans une constante de caractères (une constante délimitée par des marques '). |
| 26 | Expected as expression | Aucune expression n'a été trouvée à l'endroit où elle était attendue. |
| 27 | Redefinition | Une fonction précédemment définie est en cours de redéfinition. |
| 28 | Redefinition | L'identifiant précédant un deux-points a été précédemment déclaré comme n'étant pas une étiquette. |
| 29 | Redefinition of symbol | La même étiquette apparaît deux fois. |
| 30 | Expected as constant | L'expression qui suit le mot-clef case doit être une expression constante. |
| 31 | Redefinition of symbol | Un objet ou une fonction de date précédemment défini(e) dans ce module est en cours de redéfinition. |
| 32 | Bad field size | La longueur d'un champ était donnée comme non positive (0 ou négative). |
| 33 | Illegal constant | Une constante est mal formée, par exemple lorsqu'une constante octale contient l'un des chiffres '8' ou '9'. |
| 34 | Bad initializer | Un initialiseur non constant a été trouvé. |
| 35 | Bad initializer | Un programme d'initialisation avec effets secondaires a été lié. |
| 36 | Redefinition of symbol | La classe d'entreposage d'un objet est en cours de modification. |
| 38 | Redefinition of symbol ... | Un élément d'une structure ou d'une union est en cours de redéfinition. |
| 39 | Redefinition of symbol ... | Une structure ou une union commence à être redéfinie. |
| 40 | Undeclared identifier | Un identifiant a été rencontré dans une expression qui n'avait pas été déclarée auparavant et qui n'était pas suivie d'une parenthèse ouvrante. |
| 41 | Redefinition of symbol ... | Un paramètre d'une fonction ou d'une macro est répété. |
| 42 | Expected a statement | Une instruction était attendue, mais un jeton a été rencontré qui ne pouvait en aucun cas commencer une instruction. |
| 43 | Vacuous type | On a trouvé un type vide, tel qu'un tableau sans limites ou une structure sans membres, dans un contexte qui attendait de la substance. |
| 44 | Need a switch | Une instruction par défaut s'est produite en dehors d'une instruction switch. |
| 45 | Bad use of register | Une variable est déclarée comme un registre, mais son type est inconscient, puisqu'il s'agit d'un registre tel qu'une fonction. |
| 46 | Field type should be unsigned | Les champs de bits d'une structure doivent toujours être de type unsigned int ou unsigned for short. |
| 47 | Bad type | L'opération moins unaire nécessite un opérande arithmétique. |
| 48 | Bad type | L'opérateur unaire * de la main gauche de l'opérateur ptr (->) nécessite un opérande pointeur. |
| 49 | Expected a type | Seuls les types sont autorisés dans un prototype. Un prototype est une déclaration de fonction contenant une séquence de types entre parenthèses. Le processeur a détecté au moins un type entre parenthèses et attend donc d'autres types ou une parenthèse fermante. |
| 50 | Expected an lvalue | L'opérateur unaire & nécessite une lvalue (une valeur appropriée pour être placée à gauche d'un opérateur d'affectation). |
| 51 | Expected integral type | L'opérateur unaire ~ attend un type entier (char signé ou non signé, int ou long). |
| 52 | Expected an lvalue | Les opérateurs de décrémentation automatique (--) et d'incrémentation automatique (++) nécessitent une lvalue (une valeur adaptée pour être placée à gauche d'un opérateur d'affectation). |
| 53 | Expected a scalar | Les opérateurs de décrémentation automatique (--) et d'incrémentation automatique (++) ne peuvent être appliqués qu'aux scalaires (arithmétique et pointeurs). |
| 54 | Division by 0 | La constante 0 a été utilisée à droite de l'opérateur de division (/) ou de l'opérateur de reste (%). |
| 55 | Bad type | Le contexte requiert un scalaire, une fonction ou un tableau. |
| 56 | Bad type | L'opérateur d'addition/soustraction requiert des types scalaires et les pointeurs ne peuvent pas être additionnés à des pointeurs. |
| 57 | Bad type | Les opérateurs binaires (&, | et ~) nécessitent des arguments entiers. |
| 58 | Bad type | Des arguments incorrects ont été fournis à un opérateur relationnel ; ceux-ci nécessitent toujours deux scalaires et les pointeurs ne peuvent pas être comparés à des entiers (sauf la constante 0). |
| 59 | Bad type | La valeur de déplacement d'un objet doit être entière. |
| 60 | Bad type | La valeur à décaler doit être entière. |
| 61 | Bad type | Le contexte requiert un booléen. Les booléens doivent être de type arithmétique ou pointeur. |
| 62 | Bad type | Les 2e et 3e arguments de ? : doivent être des types scalaires compatibles. |
| 63 | Expected an lvalue | L'affectation attend que son premier opérande soit une lvalue. |
| 64 | Type mismatch in assignment | Dans un exercice, le type de la valeur à affecter ne correspondait pas au type de la variable. |
| 65 | Expected a member name | Après un opérateur point (.) ou pointeur (->), un nom de membre doit apparaître. |
| 66 | Bad type | Un type void a été utilisé alors que cela n'est pas autorisé. Si un type void est placé dans un prototype, il doit être le seul type présent dans ce prototype. (Voir l'erreur n° 49.) |
| 67 | Unable to convert | Tentative de conversion d'une grandeur non scalaire en une intégrale. |
| 68 | Unable to convert | Tentative de conversion d'un nombre non arithmétique en un nombre à virgule flottante. |
| 69 | Unable to convert | Mauvaise conversion impliquant des structures incompatibles ou une structure et un autre objet. |
| 70 | Unable to convers | Tentative de conversion vers un pointeur à partir d'un type inhabituel (non entier). |
| 71 | Unable to convert | Tentative de conversion vers un type qui n'autorise pas les conversions. |
| 72 | Bad option | Impossible d'interpréter une option. |
| 73 | Bad left operand | Le curseur est positionné au niveau ou juste après un opérateur « -> » ou « .». Ces opérateurs attendent une expression à leur gauche. Veuillez placer toute expression complexe à cette position entre parenthèses. |
| 74 | Address of Register | On a tenté d'appliquer l'opérateur d'adresse (&) à une variable dont la classe de stockage était définie comme registre. |
| 200-299 | Une incohérence ou une contradiction a été détectée dans le système PC-Lint. Cela peut être dû à une erreur de l'utilisateur ou non. Cette incohérence doit être signalée à Gimpel Software. | |
| 402 | Exceeded Available Memory | La mémoire principale est saturée. Veuillez essayer d'effectuer le prétraitement séparément. |
| 501 | Expected signed type | L'opérateur moins unaire a été appliqué à un type non signé. La valeur résultante est une quantité positive non signée et peut ne pas correspondre au résultat attendu. |
| 502 | Expected insigned type | L'opérateur unaire ! étant un opérateur binaire, il serait plus logique de l'appliquer à des quantités non signées plutôt qu'à des quantités signées. |
| 503 | Boolean argument to relational | Normalement, une relation ne prend pas d'argument booléen. Par exemple, `a < b < c` est techniquement valide, mais ne produit pas le même résultat que l'expression mathématique à laquelle elle ressemble. Par « booléen », nous entendons ici tout résultat d'un opérateur booléen. |
| 504 | Unusual shift value | La valeur du décalage a été calculée de manière inhabituelle, par exemple à l'aide d'un opérateur logique binaire, d'une négation ou d'une expression non entre parenthèses. Si la valeur du décalage est une expression composée non entre parenthèses, veuillez l'ajouter entre parenthèses. |
| 505 | Redundant left arguement to comma | L'argument de gauche de l'opérateur virgule n'avait aucun effet secondaire dans son opérateur principal et est donc redondant. |
| 506 | Constant value Boolean | Une valeur booléenne, c'est-à-dire une quantité trouvée dans un contexte qui requiert une valeur booléenne, comme un argument de && ou || ou une clause if() ou while(), a été identifiée comme une constante et sera donc évaluée de la même manière à chaque fois. |
| 507 | Size incompatibility | Une conversion de type entier a été effectuée à partir d'un pointeur, mais d'après d'autres informations fournies ou sous-entendues, elle ne pouvait pas être effectuée. Par exemple, une conversion vers un entier non signé a été spécifiée, alors que les options indiquent que les pointeurs sont plus grands que 1 nt. |
| 508 | extern used with definition | Une définition de fonction était accompagnée d'une déclaration externe (extern) ; or, il est préférable d'utiliser `extern` avec les déclarations plutôt qu'avec les définitions. Au mieux, `extern` est superflu. Au pire, cela risque de provoquer une erreur de compilation. |
| 509 | extern used with definition | Un objet de données a été défini avec une classe de stockage externe (extern). Il est préférable d'utiliser extern avec les déclarations plutôt qu'avec les définitions. Au mieux, extern est redondant ; au pire, cela peut provoquer une erreur de compilation. |
| 510 | Field type should be unsigned | La spécification de type correcte pour les éléments de champ est un unsigned int (précédant le deux-points). |
| 511 | Size incompatibility | Une conversion de type entier vers un pointeur a été effectuée, et la valeur de la quantité était trop importante pour tenir dans le pointeur. Par exemple, si un entier long est converti en pointeur et que les options de la ligne de commande indiquent que les entiers longs sont plus volumineux que les pointeurs, cet avertissement sera affiché. |
| 512 | Le nom indiqué est celui d'une fonction déclarée statique dans un autre module (l'emplacement de cette déclaration est fourni). L'utilisation d'un nom statique (donc privé) dans un module et externe dans un autre est autorisée, mais suspecte. | |
| 513 | Redefinition | Un élément de type date est redéfini, mais avec le même type qu'auparavant. |
| 514 | Unsual use of a Boolean | L'argument d'un opérateur arithmétique (+ - / * %) ou d'un opérateur logique binaire (| & ~) était un booléen. Cela peut souvent se produire par accident, comme
dans :
où le ==, ayant une priorité plus élevée que le ou, est effectué en premier (au grand étonnement du programmeur). |
| 515 | Argument count conflict | Une incohérence a été constatée entre le nombre d'arguments effectifs fournis lors d'un appel de fonction et soit le nombre de paramètres formels dans sa définition, soit le nombre d'arguments effectifs dans un autre appel de fonction. |
| 516 | Argument type conflict | Une incohérence a été constatée dans le type d'un argument effectif lors d'un appel de fonction, soit avec le type du paramètre formel correspondant dans la définition de la fonction, soit avec le type d'un argument effectif lors d'un autre appel à la même fonction, soit avec le type spécifié pour l'argument dans le prototype de la fonction. |
| 517 | defined not K&R | The defined Une fonction (qui n'est pas une construction K&R) a été utilisée et l'indicateur de préprocesseur K&R (+fkp) a été activé. Soit vous ne définissez pas cet indicateur, soit vous n'utilisez pas la fonction `defined()`. |
| 518 | Expected '(' | La fonction `sizeof` doit être suivie d'une expression entre parenthèses. Sinon, des ambiguïtés peuvent survenir. Prenons l'exemple de `sizeof cast`... |
| 519 | Size incompatibility | Une tentative de conversion d'un pointeur en un pointeur de taille différente a été effectuée. Cela peut se produire, par exemple, dans un modèle P où les pointeurs vers des fonctions nécessitent 4 octets, tandis que les pointeurs vers des dates n'en nécessitent que 2. Ce message d'erreur peut être contourné en convertissant d'abord le pointeur en une quantité entière (int ou long) avant de le convertir en pointeur. |
| 520 | Expected side effects | La première expression d'une boucle «for» doit avoir des effets de bord (sinon à quoi bon ?). En effet, l'opérateur le plus externe doit également avoir des effets de bord. |
| 521 | Expected side effects | La troisième expression d'une clause for doit avoir des effets de bord (sinon à quoi bon ?). En effet, l'opérateur le plus externe doit avoir des effets de bord. |
| 522 | Expected side effects | Si une instruction ne contient qu'une expression, celle-ci doit avoir des effets de bord (sinon à quoi bon ?). En effet, l'opérateur le plus externe doit avoir des effets de bord. |
| 523 | Expected as expression | Une instruction de retour sans expression correspondante a été rencontrée dans une fonction dont le type n'était pas int. |
| 524 | Lose of precision | Une affectation est effectuée impliquant un nombre flottant ou double à une intégrale. |
| 525 | Negative indentation from line ... | La ligne actuelle présente une indentation négative (c'est-à-dire une indentation inférieure) à celle de la ligne indiquée. Cette dernière correspond à une clause introduisant une structure de contrôle ; les instructions `and` et autres clauses de contrôle, ainsi que les accolades incluses dans sa portée, doivent présenter une indentation au moins équivalente. Si votre programme comporte un nombre de tabulations différent de 8 espaces, vous devez utiliser l'option `-t` (voir la LIGNE DE COMMANDE). |
| 526 | ... not defined | La ressource externe nommée a été référencée mais n'a pas été définie. |
| 527 | Unreachable | Une partie du programme est inaccessible. |
| 528 | ... not referenced | La variable statique nommée n'était pas référencée dans le module. |
| 529 | ... not referenced | La variable nommée a été déclarée mais n'a pas été référencée dans une fonction. |
| 530 | ...not initialized | Une variable a été utilisée avant son initialisation. Il s'agit toujours d'une variable automatique, car les variables statiques sont initialisées à 0 par défaut. Aucune analyse de flux complexe n'est effectuée. En revanche, si la première utilisation (dans l'ordre physique) de la variable consiste à y accéder plutôt qu'à lui assigner une valeur, un message d'erreur est affiché. |
| 531 | Bad field size | La taille indiquée pour un champ de bits d'une structure dépasse la taille d'un int. |
| 532 | Inconsistent return mode | La déclaration (ou la définition) d'une fonction implique un mode de retour différent de celui de l'instruction précédente. (Le mode de retour d'une fonction détermine si elle renvoie ou non une valeur.) Ce mode est déterminé à partir d'une déclaration en observant si un type explicite est spécifié. Voir l'option `fdr` pour plus d'explications. Voir également les options `fvr` et `fvo60`. |
| 533 | Inconsistent return mode | Une instruction return à l'intérieur d'une fonction (ou l'absence de return à la fin de la fonction) implique un mode de retour différent de celui d'une instruction précédente (citée dans le message d'erreur). (Le mode de retour d'une fonction détermine si elle renvoie ou non une valeur.) Voir aussi les indicateurs fvr, fvo et fdr. |
| 534 | Inconsistent return mode | L'appel d'une fonction implique un mode de retour différent de celui de l'instruction précédente. (Le mode de retour d'une fonction détermine si elle renvoie ou non une valeur.) Si l'appel est effectué uniquement pour ses effets de bord, par exemple dans une instruction seule ou à gauche de l'opérateur virgule, on suppose que la fonction ne renvoie aucune valeur. Tout autre appel suppose le renvoi d'une valeur. (Voir également les indicateurs `fvr`, `fvo` et `fdr`.) |
| 537 | Repeated include file | Le fichier dont on tente l'inclusion dans un module a déjà été inclus dans la compilation. |
| 538 | Excessive size | La taille du tableau est égale ou supérieure à 64 Ko. |
| 540 | Excessive size | L'initialiseur de chaîne nécessitait plus d'espace que celui alloué. |
| 541 | Excessive size | La taille d'une constante de caractère spécifiée avec \xddd ou \xhhh était égale ou supérieure à 2**b, où b est le nombre de bits dans un octet (défini par l'option -sb). Ce nombre est de 8 par défaut. |
| 542 | Excessive size | Une tentative d'affectation d'une valeur à un champ de bits a été effectuée, mais sa taille semble insuffisante. La valeur à affecter correspond soit à un autre champ de bits plus grand que la cible, soit à une valeur numérique trop grande. Vous pouvez convertir la valeur en type générique non signé pour supprimer l'erreur. |
| 544 | endif not followed by EOL | La directive de préprocesseur #endif doit être suivie d'un saut de ligne. Certains compilateurs autorisent explicitement les commentaires après #endif. Si vous suivez cette convention, désactivez simplement ce message d'erreur. |
| 545 | Suspicious use of & | On a tenté d'obtenir l'adresse d'un nom de tableau. Comme les noms de tableaux sont convertis en adresses, l'utilisation du symbole «&» est redondante et peut induire en erreur. |
| 546 | Suspicious use of & | On a tenté d'obtenir l'adresse d'un nom de fonction. Comme les noms de fonctions sont eux-mêmes promus en adresse, l'utilisation de l'opérateur «&» est redondante et peut induire en erreur. |
| 547 | Redefinition of symbol... | Le symbole indiqué avait auparavant été défini avec une autre valeur. |
| 548 | else expected | Une construction de la forme if(c); a été trouvée sans clause else. Il s'agit très probablement d'un point-virgule superflu, car il empêche la condition if de produire un quelconque effet. |
| 550 | ... not access | Une variable locale à une fonction n'a pas été utilisée, bien qu'elle ait été référencée. Cela peut se produire, par exemple, si une valeur lui a été assignée mais n'a jamais été utilisée. Notez que la valeur d'une variable n'est pas considérée comme accédée par l'auto-incrémentation ou l'auto-décrémentation, sauf si cette opération apparaît dans une expression plus large. Il en va de même pour une construction de la forme : `var += expression`. |
| 551 | ... not access | Une variable (déclarée statique au niveau du module) n'a pas été utilisée, bien qu'une valeur lui ait été assignée. Il est important de noter que l'accès à la valeur d'une variable n'est pas considéré comme un accès par auto-incrémentation ou auto-décrémentation, sauf si cette opération apparaît dans une expression plus large. Il en va de même pour une construction de la forme : `var += expression`. |
| 552 | ... not accessed | Une variable externe n'a pas pu être accédée, bien qu'elle ait été référencée. Cela peut se produire, par exemple, si une valeur lui a été attribuée mais n'a jamais été utilisée. Notez que la valeur d'une variable n'est pas considérée comme accédée par l'auto-incrémentation ou l'auto-décrémentation, sauf si cette dernière figure dans une expression plus large. Il en va de même pour une construction de la forme : var += expression. |
| 553 | Undefined pre-processor variable..., assumed 0 | La variable indiquée n'avait pas été définie au préalable dans une directive `#define` et pourtant elle est utilisée dans une condition de préprocesseur de la forme `#if` ou `#elif`. Par convention, toutes les variables des expressions de préprocesseur doivent être prédéfinies. La valeur de la variable est supposée être 0. |
| 555 | #elif not K&R | La directive #elif a été utilisée et l'indicateur de préprocesseur K&R (+fkp) a été activé. Soit vous ne définissez pas cet indicateur, soit vous n'utilisez pas #elif. |
| 556 | indented # | Une directive de préprocesseur a été utilisée et l'indicateur de préprocesseur K&R (+fkp) a été activé. Soit vous ne définissez pas cet indicateur, soit vous n'indentez pas le #. |
| 701 | Shift of signed value | (décalage d'un entier vers la gauche) Les décalages sont normalement effectués sur des opérandes non signés. |
| 702 | Shift of signed value | (décalage d'un entier vers la droite) Les décalages sont normalement effectués sur des opérandes non signés. |
| 703 | Shift of signed value | (Décalage long à gauche) Les décalages sont normalement effectués sur des opérandes non signés. |
| 704 | Shift of signed value | (décalage à droite d'un long) Les décalages sont normalement effectués sur des opérandes non signés. |
| 711 | Loss of precision | Un moulage est réalisé en impliquant un flotteur ou un double à une intégrale. |
| 712 | Loss of precision | Une affectation est effectuée de long à int (et long est plus long que int). |
| 713 | Loss of precision | Une affectation est effectuée d'un non signé à signé. |
| 714 | ... not referenced | La variable externe nommée a été définie mais n'a pas été référencée. |
| 715 | ... not referenced | Le paramètre formel nommé n'a pas été référencé. |
| 716 | while(1)... | Une construction de la forme while(1)... a été trouvée. Bien que cette représentation d'une constante dans un contexte attend un booléen, elle peut refléter une pratique de programmation consistant à préfixer les boucles infinies par cette construction. Par conséquent, elle se voit attribuer un numéro distinct et a été placée dans la catégorie informative. La forme plus conventionnelle du préfixe de boucle infinie est « for(;;) ». |
| 717 | do ... while(0) | Alors que ceci représente une constante dans un contexte attendant un booléen, cette construction est probablement une tentative délibérée de la part du programmeur de macro-transformer une instruction, et elle reçoit donc un message d'erreur distinct. |
| 718 | ... not declared, assumed function returning int | Une fonction a été référencée avant (ou avant) qu'elle n'ait été déclarée ou définie. On suppose qu'elle renvoie un entier. Ceci n'est pas une erreur. |
| 720 | Boolean test of assignment | Une affectation a été détectée dans un contexte exigeant un booléen (par exemple, dans une clause if() ou while() ou comme opérande de && ou ||). Cette affectation peut être légitime ou résulter d'une erreur de frappe, par exemple en confondant « = » et « == ». |
| 721 | Suspicious use of ; | Un point-virgule a été trouvé immédiatement à droite d'une parenthèse fermante dans une construction de la forme « if(e); ». Il peut donc être confondu avec l'utilisation du point-virgule en fin d'instruction. Le message sera masqué si le point-virgule est séparé de la parenthèse fermante par au moins un espace. Il est préférable de le placer sur une ligne distincte. |
| 722 | Suspicious use of ; | Un point-virgule a été trouvé immédiatement à droite d'une parenthèse fermante dans une construction de la forme «while(e)» ou « for(e;e;e); ». De ce fait, il peut être négligé ou confondu avec l'utilisation du point-virgule pour terminer une instruction. Le message sera masqué si le point-virgule est placé sur une ligne de séparation. |
| 723 | Suspicious use of = | La définition d'un préprocesseur commençait par le signe « 0 ». Par exemple :
Était-ce intentionnel ? Ou le programmeur pensait-il à une tâche à accomplir lorsqu'il a écrit cela ? |
| 725 | Expected positive indentation from line ... | La ligne courante est alignée sur la ligne indiquée, au lieu d'être indentée par rapport à celle-ci. La ligne indiquée correspond à une instruction introduisant une structure de contrôle ; les instructions qu'elle contient doivent être indentées par rapport à cette ligne. Si votre programme comporte un nombre de tabulations différent de 8 espaces, utilisez l'option `-t` (voir la section «Ligne de commande»). |