On 8/30/13 6:25 AM, Kees Bakker wrote:
Hi,
Which pass in creduce is responsible for removing initializers? More
specifically array and struct initializers.
No. Quite a few passes would touch initializers during the reduction.
I'm using gcc, valgrind, clang (with sanitize=address) and my own
compiler,
but none of them is able to detect this problem. Maybe frama-c can do it
but I don't know how. So I was simply looking for an option in creduce
to not
through away the initializers.
Frama-C is one of the best tools that can detect this kind of undefined
behavior. You may try the commands below:
frama-c -cpp-command "gcc -C -Dvolatile= -E -I/csmith/runtime"
-val-signed-overflow-alarms -val -stop-at-first-alarm
-no-val-show-progress -machdep x86_64 -obviously-terminates
-precise-unions foo.c > out_framac.txt 2>&1
egrep -i '(user error|assert)' out_framac.txt
- Yang