On Jun 3, 2011, at 12:50 AM, Chandler Carruth wrote:

> This patch should catch more integer shift left undefined behavior according 
> to C and C++ standard semantics. Specifically it should catch the case where 
> a signed integer type when shifted is no longer representable in the result 
> type.

Very cool.

> There are some general cleanups that can be made to the existing undefined 
> behavior check here given the this change, but I just wanted to add 
> functionality here. Let me know if I should just commit freely when adding 
> these types of checks (provided proper testing and certainty that the 
> behavior is in fact undefined). Also any guidance on other languages or specs 
> I should be checking prior to enabling such checks (Currently looking at C99, 
> C++98, C++03, and C++0x) would be welcome.

This is John's domain, but LGTM.

> Finally, the testcase is a bit lame. I'd really like to test this by creating 
> sources that exhibit the undefined behavior being checked, compile and run 
> them verifying crash and non-crash inputs. Is that do-able in the current 
> test harness? Seems unlikely, but if folks have ideas I'm all ears.

Clang's test harness can't handle this, but you could add these tests to 
nightlytest.

        - Doug

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to