[llvm-commits] [test-suite] r146415 - in /test-suite/trunk/SingleSource/UnitTests: Makefile ms_struct-bitfield-1.c

jahanian fjahanian at apple.com
Mon Dec 12 14:12:14 PST 2011


On Dec 12, 2011, at 1:48 PM, Eli Friedman wrote:

> On Mon, Dec 12, 2011 at 1:31 PM, Fariborz Jahanian <fjahanian at apple.com> wrote:
>> Author: fjahanian
>> Date: Mon Dec 12 15:31:39 2011
>> New Revision: 146415
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=146415&view=rev
>> Log:
>> Test for r146414 checked in clang.
>> This is for // rdar://10513599
>> 
>> Added:
>>    test-suite/trunk/SingleSource/UnitTests/ms_struct-bitfield-1.c
>> Modified:
>>    test-suite/trunk/SingleSource/UnitTests/Makefile
>> 
>> Modified: test-suite/trunk/SingleSource/UnitTests/Makefile
>> URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/Makefile?rev=146415&r1=146414&r2=146415&view=diff
>> ==============================================================================
>> --- test-suite/trunk/SingleSource/UnitTests/Makefile (original)
>> +++ test-suite/trunk/SingleSource/UnitTests/Makefile Mon Dec 12 15:31:39 2011
>> @@ -29,7 +29,7 @@
>> 
>>  # The ms_struct tests only make sense on x86_64.
>>  ifneq ($(ARCH),x86_64)
>> -PROGRAMS_TO_SKIP += ms_struct-bitfield-init-1 ms_struct-bitfield-init ms_struct-bitfield ms_struct_pack_layout-1 ms_struct_pack_layout
>> +PROGRAMS_TO_SKIP += ms_struct-bitfield-init-1 ms_struct-bitfield-init ms_struct-bitfield ms_struct_pack_layout-1 ms_struct_pack_layout ms_struct-bitfield-1
>>  endif
>> 
>>  PROGRAM_REQUIRED_TO_EXIT_OK := 1
>> 
>> Added: test-suite/trunk/SingleSource/UnitTests/ms_struct-bitfield-1.c
>> URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/ms_struct-bitfield-1.c?rev=146415&view=auto
>> ==============================================================================
>> --- test-suite/trunk/SingleSource/UnitTests/ms_struct-bitfield-1.c (added)
>> +++ test-suite/trunk/SingleSource/UnitTests/ms_struct-bitfield-1.c Mon Dec 12 15:31:39 2011
>> @@ -0,0 +1,36 @@
>> +#include <stddef.h>
>> +extern void abort();
>> +
>> +#pragma ms_struct on
>> +
>> +typedef struct
>> +{
>> +void *pv;
>> +int l;
>> +} Foo;
>> +
>> +typedef struct
>> +{
>> +void *pv1;
>> +Foo foo;
>> +unsigned short fInited : 1;
>> +void *pv2;
>> +} PackOddity;
>> +
>> +#pragma ms_struct off
>> +
>> +int main(int argc, char *argv[])
>> +{
>> +#pragma unused(argc, argv)
>> +       int sizeof_packoddity = sizeof(PackOddity);
>> +       int offsetof_foo = offsetof(PackOddity, foo);
>> +       int offsetof_pv2 = offsetof(PackOddity, pv2);
>> +        if (sizeof_packoddity != 40)
>> +         abort();
>> +        if (offsetof_foo != 8)
>> +          abort();
>> +        if (offsetof_pv2 != 32)
>> +          abort();
>> +       return 0;
>> +}
>> +
> 
> What is this testing that can't be trivially tested in
> test/Sema/pragma-ms_struct.c?

llvm-gcc compatibility. I always add ms_struct tests to llvm-test suite. As these tests are also checked against llvm-gcc.

- Fariborz

> 
> -Eli




More information about the llvm-commits mailing list