News for hackers. Stuff that matters.
Re:Cross-platform Rust rewrite of the GNU coreutils by samth on Tuesday March 22, 2016 @06:16PM (#11340364)
> I don't think that they're eliminated because dynamic testing can't eliminate everything—it only finds bugs given its test inputs.

I can't think of an example of UB-exploit in the compiler that wouldn't result in different branch behavior, and thus, I think, in failure of MC/DC. But I may simply be insufficiently imaginative.

John makes the point about source code in a follow-up comment, and I agree, but I also see Hipps' perspective.

Re:Cross-platform Rust rewrite of the GNU coreutils by lomnakkus on Tuesday March 22, 2016 @08:08PM (#11340996)
> I can't think of an example of UB-exploit in the compiler that wouldn't result in different branch behavior,

What about Implementation-defined Behavior? This is (I think!) technically a subset of Undefined Behavior and it permits such things as setting values[1] to arbitrary (but well-defined!) values on various operations, such as "excessive" left shifts. What I'm saying is that a compiler is permitted to substitute IB for UB and still be conforming. So it could start to do strange things to arithmetic, etc. Does that make sense as an example of what you're thinking of?

EDIT: [1] I obviously meant memory locations... as referred to by "variables" which aren't really variables, but are really binders/aliases. But here we are.

Re:Cross-platform Rust rewrite of the GNU coreutils by samth on Wednesday March 23, 2016 @10:16AM (#11344625)
I think you're confused about implementation-defined and undefined behavior. The former is not a subset of the latter, but excessive left shifts are UB.