mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 05:00:16 +03:00
ImportC: allow _Alignof expression
(#21181)
Resolves https://github.com/dlang/dmd/issues/20434 Allowing this gnu/clang extension actually removes lines of code as we can unify the parsing and semantics of `_Alignof` and `sizeof` and have the normal D machinery handle the difference later.
This commit is contained in:
parent
93b0317cc3
commit
a0bf0f368a
5 changed files with 9 additions and 71 deletions
|
@ -3,10 +3,10 @@
|
|||
int printf(const char *, ...);
|
||||
|
||||
_Alignas(4) _Alignas(8) _Alignas(0) int x = 5;
|
||||
//_Static_assert(_Alignof(x) == 8, "in");
|
||||
_Static_assert(_Alignof(x) == 8, "in");
|
||||
|
||||
_Alignas(int) short y = 6;
|
||||
//_Static_assert(_Alignof(y) == 4, "in");
|
||||
_Static_assert(_Alignof(y) == 4, "in");
|
||||
|
||||
struct S
|
||||
{
|
||||
|
|
|
@ -329,6 +329,7 @@ void test4(int i)
|
|||
_Static_assert(sizeof 3 == 4, "ok");
|
||||
_Static_assert(sizeof(3) == 4, "ok");
|
||||
_Static_assert(_Alignof(int) == 4, "ok");
|
||||
_Static_assert(_Alignof 3 == 4, "ok");
|
||||
_Static_assert((int)3 == 3, "ok");
|
||||
_Static_assert(sizeof p[0] == 4, "ok");
|
||||
_Static_assert(1 && 2, "ok");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue