Skip to content
This repository was archived by the owner on Oct 12, 2022. It is now read-only.

Commit 278bc80

Browse files
authored
Merge pull request #2187 from kinke/__c_longlong
core.stdc.config: Add cpp_(u)longlong aliases merged-on-behalf-of: Jacob Carlborg <jacob-carlborg@users.noreply.github.com>
2 parents 510d95a + f18f6d5 commit 278bc80

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

src/core/stdc/config.d

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,18 @@ version (StdDdoc)
5757
*/
5858
alias cpp_ulong = c_ulong;
5959

60+
/***
61+
* Used for a signed integer type that corresponds in size and mangling to the associated
62+
* C++ compiler's `long long` type.
63+
*/
64+
alias cpp_longlong = long;
65+
66+
/***
67+
* Used for an unsigned integer type that corresponds in size and mangling to the associated
68+
* C++ compiler's `unsigned long long` type.
69+
*/
70+
alias cpp_ulonglong = ulong;
71+
6072
/***
6173
* Used for a floating point type that corresponds in size and mangling to the associated
6274
* C++ compiler's `long double` type.
@@ -97,6 +109,9 @@ version( Windows )
97109

98110
alias int c_long;
99111
alias uint c_ulong;
112+
113+
alias long cpp_longlong;
114+
alias ulong cpp_ulonglong;
100115
}
101116
else version( Posix )
102117
{
@@ -105,11 +120,17 @@ else version( Posix )
105120
enum __c_long : long;
106121
enum __c_ulong : ulong;
107122

123+
enum __c_longlong : long;
124+
enum __c_ulonglong : ulong;
125+
108126
alias __c_long cpp_long;
109127
alias __c_ulong cpp_ulong;
110128

111129
alias long c_long;
112130
alias ulong c_ulong;
131+
132+
alias __c_longlong cpp_longlong;
133+
alias __c_ulonglong cpp_ulonglong;
113134
}
114135
else
115136
{
@@ -121,6 +142,9 @@ else version( Posix )
121142

122143
alias int c_long;
123144
alias uint c_ulong;
145+
146+
alias long cpp_longlong;
147+
alias ulong cpp_ulonglong;
124148
}
125149
}
126150

@@ -177,7 +201,10 @@ static assert(is(c_long_double), "c_long_double needs to be declared for this pl
177201
version (Darwin)
178202
{
179203
alias cpp_size_t = cpp_ulong;
180-
alias cpp_ptrdiff_t = cpp_long;
204+
version (D_LP64)
205+
alias cpp_ptrdiff_t = cpp_long;
206+
else
207+
alias cpp_ptrdiff_t = ptrdiff_t;
181208
}
182209
else
183210
{

0 commit comments

Comments
 (0)