AttributeNonNull
Remonter à Audits C++
Description
Recherche les pointeurs null passés en arguments à une fonction dont les arguments sont marqués par l'attribut nonnull.
Pour supporter l'audit AttributeNonNull, vous pouvez utiliser l'attribut nonnull dans les déclarations des fonctions :
__attribute__((nonnull(arg_number, ...)))
Ici arg_number, ... indique les numéros des arguments qui ne doivent pas passer des pointeurs null. Si aucun arg_number n'est spécifié, tous les arguments pointeur sont traités en tant que nonnull.
Par exemple, la déclaration :
void * my_copy (void *destination, const void *source, int length)
__attribute__((nonnull (1, 2)));
définit que, dans les appels à my_copy, les arguments destination et source doivent être non-NULL. Si l'audit AttributeNonNull détermine qu'un pointeur null est passé dans les arguments destination ou source, l'audit AttributeNonNull génère alors cette violation dans my_copy.
Remarque : L'attribut nonnull est supporté seulement dans les audits C++ et est ignoré par le compilateur C++Builder.