The vsscanf function in mingwex/stdio/vsscanf.c
clobbers the %edi register with inline assembler, but
doesn't list edi in the clobber list.
This creates elusive bugs that are optimizer (register
allocation) dependent, and is very annoying. I spent
two days tracking this one.
It is an easy fix, just add "edi" to the clobber list:
- : "ebx");
+ : "ebx", "edi");
I don't have time to check the other inline assembler
functions but I recommend it. It isn't too hard to
check for this. (It sure beats finding them at runtime!)
Log in to post a comment.