I believe this problem is fixed in commit cc2104.
I am sorry that I can't confirm that yet, but the reason why I can't
is one you will like: previously, my test script would fill
its working directory of problematic programs in a few seconds,
now it fills its working directory of programs that I believe to
be non-problematic. That is, it finds precision bugs in Frama-C.
Just to be clear, we all agree that the following line is ok, right?
x = f(x=2);
Because Csmith generates them and the development version
of Frama-C warns (I believe wrongly) on them.
A meta-remark for the philosophers: are we all spending a
lot of time for not much here? One of the discussions at
the SCAM conference that I like for its discussions was
whether we shouldn't all be working on Java rather than
previous generation, difficult languages that will be obsolete
before we produce satisfactory analyses for them.
I do not fully agree with that point of view: first, Java has
its own, different, difficulties. Second, many static analysis
techniques are more mature than the statement implies,
and can be made to work now in some contexts, so
it's a good idea to work on whatever languages are used now.
Still, the existing C code whose correctness matters
does not do "x = f (x=2);". Perhaps that part of the
C language should be considered like the obsolete,
difficult language unworthy of working on.
Anyway, everyone has to have a hobby. This one is
as good as many.
Congratulations on the quick fix, we'll try to match
it with a precise analyzer as soon as we can.