mirror of
https://github.com/dlang/dmd.git
synced 2025-04-27 21:51:03 +03:00
add __traits getBitfieldOffset and getBitfieldWidth (#17043)
This commit is contained in:
parent
e17cc3a28f
commit
b70e66033c
5 changed files with 82 additions and 0 deletions
25
compiler/test/fail_compilation/biterrors5.d
Normal file
25
compiler/test/fail_compilation/biterrors5.d
Normal file
|
@ -0,0 +1,25 @@
|
|||
/* REQUIRED_ARGS: -preview=bitfields
|
||||
* TEST_OUTPUT:
|
||||
---
|
||||
fail_compilation/biterrors5.d(23): Error: bitfield symbol expected not struct `biterrors5.S`
|
||||
fail_compilation/biterrors5.d(24): Error: bitfield symbol expected not variable `biterrors5.test0.i`
|
||||
---
|
||||
*/
|
||||
|
||||
struct S
|
||||
{
|
||||
int a,b;
|
||||
int :2, c:3;
|
||||
}
|
||||
|
||||
static assert(__traits(getBitfieldOffset, S.b) == 0);
|
||||
static assert(__traits(getBitfieldWidth, S.b) == 32);
|
||||
static assert(__traits(getBitfieldOffset, S.c) == 2);
|
||||
static assert(__traits(getBitfieldWidth, S.c) == 3);
|
||||
|
||||
void test0()
|
||||
{
|
||||
int i;
|
||||
i = __traits(getBitfieldOffset, S);
|
||||
i = __traits(getBitfieldOffset, i);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue