On 11/30/06, Eric Lilja wrote:
If compiled with: $ g++ -Wall -Wextra -std=c++98 -pedantic -g isnantest.cpp -o run (those are the flags we have been using in this course). But it doesn't stackdump if compiled simply with: $ make isnantest g++ isnantest.cpp -o isnantest
I was able to reproduce this behaviour. There seems to be a difference in the generated assembler. The -std=c++98 seems to be the only switch that matters. Here is a diff. File isnantest2.s is the stackdumping one (ie the one with -std=c++98) --- isnantest.s 2006-11-30 13:14:12.718750000 -0500 +++ isnantest2.s 2006-11-30 13:26:55.984375000 -0500 @@ -1,4 +1,4 @@ - .file "isnantest.cpp" + .file "isnantest2.cpp" .def ___main; .scl 2; .type 32; .endef .text .align 2 @@ -47,12 +47,9 @@ movl %esp, %ebp subl $8, %esp movl 8(%ebp), %eax - movl %eax, -4(%ebp) - fildl -4(%ebp) - fstps (%esp) - call ___isnanf + movl %eax, (%esp) + call __ZN9__gnu_cxx5isnanIiEEiT_ leave ret - .def ___isnanf; .scl 3; .type 32; .endef .def __ZN9__gnu_cxx15__capture_isnanIiEEiT_; .scl 3; .type 32; .endef .def __ZN9__gnu_cxx5isnanIiEEiT_; .scl 3; .type 32; .endef Lev -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/