aboutsummaryrefslogtreecommitdiff
path: root/clang/test/Preprocessor/overflow.c
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2009-05-16 21:24:10 +0000
committerEli Friedman <eli.friedman@gmail.com>2009-05-16 21:24:10 +0000
commitb529b01985ae22c2819d4b7a93df7ac336f25a50 (patch)
tree4fd862ab4fcbd4c89297d6606f284f376d14d408 /clang/test/Preprocessor/overflow.c
parent48371650b60b47161046715eabffe88e458d372b (diff)
downloadllvm-b529b01985ae22c2819d4b7a93df7ac336f25a50.zip
llvm-b529b01985ae22c2819d4b7a93df7ac336f25a50.tar.gz
llvm-b529b01985ae22c2819d4b7a93df7ac336f25a50.tar.bz2
PR3942: Don't warn on unsigned overflow in preprocessor expressions.
llvm-svn: 71960
Diffstat (limited to 'clang/test/Preprocessor/overflow.c')
-rw-r--r--clang/test/Preprocessor/overflow.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/clang/test/Preprocessor/overflow.c b/clang/test/Preprocessor/overflow.c
new file mode 100644
index 0000000..297a35e
--- /dev/null
+++ b/clang/test/Preprocessor/overflow.c
@@ -0,0 +1,25 @@
+// RUN: clang-cc -Eonly %s -verify -triple i686-pc-linux-gnu
+
+// Multiply signed overflow
+#if 0x7FFFFFFFFFFFFFFF*2 // expected-warning {{overflow}}
+#endif
+
+// Multiply unsigned overflow
+#if 0xFFFFFFFFFFFFFFFF*2
+#endif
+
+// Add signed overflow
+#if 0x7FFFFFFFFFFFFFFF+1 // expected-warning {{overflow}}
+#endif
+
+// Add unsigned overflow
+#if 0xFFFFFFFFFFFFFFFF+1
+#endif
+
+// Subtract signed overflow
+#if 0x7FFFFFFFFFFFFFFF- -1 // expected-warning {{overflow}}
+#endif
+
+// Subtract unsigned overflow
+#if 0xFFFFFFFFFFFFFFFF- -1 // expected-warning {{converted from negative value}}
+#endif