summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2013-07-17 20:46:03 +0000
committerReid Kleckner <reid@kleckner.net>2013-07-17 20:46:03 +0000
commit736bc98f9c9ee6b8465e3b0dd288292c5b1546a3 (patch)
tree0f047d4c44b6513d40d3e4b1914d9434eed29d78 /clang/test
parentee6d650f91c06df9f5a4a7be2898317044b3c4c1 (diff)
downloadbcm5719-llvm-736bc98f9c9ee6b8465e3b0dd288292c5b1546a3.tar.gz
bcm5719-llvm-736bc98f9c9ee6b8465e3b0dd288292c5b1546a3.zip
MS wide bitfield error check in Sema
cl.exe treats wide bitfields as an error. This patch causes them to be an error if IsMsStruct is true, as it is in straight C. Patch by Warren Hunt! Reviewers: eli.friedman Differential Revision: http://llvm-reviews.chandlerc.com/D1125 llvm-svn: 186536
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/SemaCXX/ms_wide_bitfield.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/ms_wide_bitfield.cpp b/clang/test/SemaCXX/ms_wide_bitfield.cpp
new file mode 100644
index 00000000000..d917390ef14
--- /dev/null
+++ b/clang/test/SemaCXX/ms_wide_bitfield.cpp
@@ -0,0 +1,9 @@
+// RUN: %clang_cc1 -fno-rtti -emit-llvm-only -triple i686-pc-win32 -fdump-record-layouts -fsyntax-only -mms-bitfields -verify %s 2>&1
+
+struct A {
+ char a : 9; // expected-error{{size of bit-field 'a' (9 bits) exceeds size of its type (8 bits)}}
+ int b : 33; // expected-error{{size of bit-field 'b' (33 bits) exceeds size of its type (32 bits)}}
+ bool c : 9; // expected-error{{size of bit-field 'c' (9 bits) exceeds size of its type (8 bits)}}
+};
+
+int a[sizeof(A) == 1 ? 1 : -1];
OpenPOWER on IntegriCloud