Section courante

A propos

Section administrative du site

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 :

  1. if( flags & 4 == 0 )


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 :

  1. #define LIMIT = 50


É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»).


Dernière mise à jour : Samedi, le 4 avril 2026