Mail Archives: cygwin/2006/11/30/13:31:15
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/
- Raw text -