In this specific case it is a user variable.  However, we should
     probably clarify the compiler-temporary case as well as VRP really
     does not and should not care if an object is a user variable or
     a compiler generated temporary.

Right.  The only distinction is that if it's a user variable then it's
a "bogus" program while if it's a compiler-generated temporary, it's either
bogus *or* a bug in the definition of that temporary in the compiler.

     So, if we have an object with the range based on its type of [0,
     0x7fffffff] and we add 1 to that object, the resulting range should be
     [1, 0x7fffffff].  ie, 0x80000000 is not a valid value for the type.
     Right?

Correct.

Reply via email to