diff options
author | Reid Kleckner <reid@kleckner.net> | 2013-07-17 20:46:03 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2013-07-17 20:46:03 +0000 |
commit | 736bc98f9c9ee6b8465e3b0dd288292c5b1546a3 (patch) | |
tree | 0f047d4c44b6513d40d3e4b1914d9434eed29d78 /clang/test | |
parent | ee6d650f91c06df9f5a4a7be2898317044b3c4c1 (diff) | |
download | bcm5719-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.cpp | 9 |
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]; |