debug_print && error

debug_print && error

by Jonas Blanc -
Number of replies: 1

Bonjour,

Lorsque qu'on fait un make check en activant le mode debug nous avons les erreurs ci-dessous quand nous utilisons des macros d'error.h. De ce que nous avons compris ces erreurs surviennent lorsque nous avons un message d'erreur qui ne comprend aucun arguments supplémentaires. Comment devons-nous régler ce problème ? Rajouter artificiellement des arguments me semble pas être la solution adéquate, mais ré-écrire error.h sans argument supplémentaire pour debug_print non plus.

Merci

Jonas Blanc

"memory.c: In function ‘mem_create’:
memory.c:17:82: warning: ISO C99 requires at least one argument for the "..." in a variadic macro
 _REQUIRE(size != 0, ERR_BAD_PARAMETER, "Cannot instantiate memory of size 0");
                                                            

In file included from memory.c:3:0:
error.h:50:39: error: expected expression before ‘)’ token
        __LINE__, __func__, __VA_ARGS__)"

In reply to Jonas Blanc

Re: debug_print && error

by Jean-Cédric Chappelier -

oui c'est parce que (comme indiqué par le message) vous ne donnez pas d'argument (au fprintf qui est activé par -DDEBUG), il faut en donner un. Le « dirty trick » c'est d'écrire votre utilisation à la macro comme suit :

..._REQUIRE(size != 0, ERR_BAD_PARAMETER, "Cannot instantiate memory of size %d", 0);

ou encore :
..._REQUIRE(size != 0, ERR_BAD_PARAMETER, "Cannot instantiate memory of %s", "size 0");

Ca devrait supprimer le warning.