Implement support for -fwrapv, rdar://7221421

As part of this, pull together trapv handling into the same enum.

This also add support for NSW multiplies.

This also makes PCH disagreement on overflow behavior silent, since it
really doesn't matter except for warnings and codegen (no macros get 
defined etc).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106956 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CodeGen/exprs.c b/test/CodeGen/exprs.c
index a90ae58..d182ce8 100644
--- a/test/CodeGen/exprs.c
+++ b/test/CodeGen/exprs.c
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s
+// RUN: %clang_cc1 %s -emit-llvm -o - 
 
 // PR1895
 // sizeof function
@@ -119,16 +119,3 @@
 void f10() {
   __builtin_sin(0);
 }
-
-// Tests for signed integer overflow stuff.
-// rdar://7432000
-void f11() {
-  // CHECK: define void @f11
-  extern volatile int f11G, a, b;
-  // CHECK: add nsw i32
-  f11G = a + b;
-  // CHECK: sub nsw i32
-  f11G = a - b;
-  // CHECK: sub nsw i32 0, 
-  f11G = -a;
-}