aboutsummaryrefslogtreecommitdiff
path: root/clang/test/CodeGen/integer-overflow.c
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2011-03-02 01:49:12 +0000
committerEli Friedman <eli.friedman@gmail.com>2011-03-02 01:49:12 +0000
commit846ded2e53c77b43aae86a6ed60772ae46647e63 (patch)
treeb31225bcb8b950b1ac932b6501263ab34c57014f /clang/test/CodeGen/integer-overflow.c
parent68faa2dbbeb141e6db360bcebb4aff2e97a28c73 (diff)
downloadllvm-846ded2e53c77b43aae86a6ed60772ae46647e63.zip
llvm-846ded2e53c77b43aae86a6ed60772ae46647e63.tar.gz
llvm-846ded2e53c77b43aae86a6ed60772ae46647e63.tar.bz2
PR9350: increment/decrement of char (and anything else narrower than int)
can't overflow due to promotion rules; emit a wrapping add for those cases. llvm-svn: 126816
Diffstat (limited to 'clang/test/CodeGen/integer-overflow.c')
-rw-r--r--clang/test/CodeGen/integer-overflow.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/clang/test/CodeGen/integer-overflow.c b/clang/test/CodeGen/integer-overflow.c
index 066ef89..1d46065 100644
--- a/clang/test/CodeGen/integer-overflow.c
+++ b/clang/test/CodeGen/integer-overflow.c
@@ -50,11 +50,17 @@ void test1() {
// TRAPV_HANDLER: foo(
--a;
-
// -fwrapv should turn off inbounds for GEP's, PR9256
extern int* P;
++P;
// DEFAULT: getelementptr inbounds i32*
// WRAPV: getelementptr i32*
// TRAPV: getelementptr inbounds i32*
+
+ // PR9350: char increment never overflows.
+ extern volatile signed char PR9350;
+ // DEFAULT: add i8 {{.*}}, 1
+ // WRAPV: add i8 {{.*}}, 1
+ // TRAPV: add i8 {{.*}}, 1
+ ++PR9350;
}