Beaucoup d'entre vous se sont inquiétés de la portabilité du bytecode généré par Clang, et utilisé par LLVM.
Il faut dire que le problème est réel, et la doc de Clang très claire, avec un bon exemple : sizeof(void *) est codé en dur dans le fichier .ll
Enfin, c'est ce qui devrait être fait. En effet, dans ce document[1], il est cité quelque-part un warning très intéressant, vraiment très intéressant :
portability.c:4:11: note : sizeof(wchar_t) varies between targets, source is not 'portable'
La ligne de commande d'appel est également très intéressante :
clang -arch ppc -arch linux -fsyntax-only portability.c
Vous avez bien vu, deux architectures sont données. C'est à approfondir, car ça pourrait permettre de dire à Clang «Génère du code portable pour toutes ces architectures», et il trouvera automatiquement ce qui ne va pas (et donc permettra de hacker le code source, et de soumettre un patch :) ).
Affaire à suivre, mais en tous cas, c'est intéressant.
# De la portabilité de Clang et LLVM
Posté par steckdenis . En réponse au journal LLVM dans un gestionnaire de paquets ?. Évalué à 3.
Beaucoup d'entre vous se sont inquiétés de la portabilité du bytecode généré par Clang, et utilisé par LLVM.
Il faut dire que le problème est réel, et la doc de Clang très claire, avec un bon exemple : sizeof(void *) est codé en dur dans le fichier .ll
Enfin, c'est ce qui devrait être fait. En effet, dans ce document[1], il est cité quelque-part un warning très intéressant, vraiment très intéressant :
portability.c:4:11: note : sizeof(wchar_t) varies between targets, source is not 'portable'
La ligne de commande d'appel est également très intéressante :
clang -arch ppc -arch linux -fsyntax-only portability.c
Vous avez bien vu, deux architectures sont données. C'est à approfondir, car ça pourrait permettre de dire à Clang «Génère du code portable pour toutes ces architectures», et il trouvera automatiquement ce qui ne va pas (et donc permettra de hacker le code source, et de soumettre un patch :) ).
Affaire à suivre, mais en tous cas, c'est intéressant.
[1] : http://llvm.org/devmtg/2007-05/09-Naroff-CFE.pdf