Dans la 3.0.4 noyau Linux, mm/filemap.c est cette ligne de code:
retval = retval ?: desc.error;
J'ai essayé de compiler un semblable minimal de cas de test avec gcc -Wall et n'obtenez pas de mises en garde; le problème semble identique à:
retval = retval ? retval : desc.error;
En regardant le standard C99, je ne peux pas comprendre ce qui formellement décrit ce comportement. Pourquoi est-ce OK?