Mon fichier de base prétend qu'un SIGFPE a été jeté deNoyau complet de non-sens ou ce code aurait-il vraiment jeté un SIGFPE?
gcc-4.3.4/include/C++/4.3.4/bits/stl_iterator_base_funcs.h
sur la ligne 176. C'est ici:
template<typename _InputIterator, typename _Distance>
inline void
advance(_InputIterator& __i, _Distance __n)
{
// concept requirements -- taken care of in __advance
176----> typename iterator_traits<_InputIterator>::difference_type __d = __n;
std::__advance(__i, __d, std::__iterator_category(__i));
}
C'est dans une autre fonction que j'ai qui appelle l'avance entourant le code qui ne fait aucune arithmétique en virgule flottante. Le code est compilé avec des optimisations (mais a des symboles de débogage), donc les choses peuvent être un peu obscurcies.
Est-ce que mon fichier de base me dit simplement un non-sens complet ou y a-t-il un moyen de le faire?
SIGFPE ne correspond pas nécessairement à l'arithmétique en virgule flottante: http://en.wikipedia.org/wiki/SIGFPE. –
Pourriez-vous afficher la sortie 'bt full'? –
@Oli Merci de me montrer à regarder les bugs mathématiques générales, et pas seulement les bogues en virgule flottante. Il se trouve que '% 0' peut aussi augmenter SIGFPE. –