Skip to content

Commit 9edd063

Browse files
committed
Merge pull request #412 from ibuclaw/purelibc2
Mark libc ctype functions as pure where applicable.
2 parents 778d918 + 5fc4592 commit 9edd063

File tree

3 files changed

+32
-28
lines changed

3 files changed

+32
-28
lines changed

src/core/stdc/ctype.d

+14-14
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,17 @@ extern (C):
1818
@trusted: // All of these operate on integers only.
1919
nothrow:
2020

21-
int isalnum(int c);
22-
int isalpha(int c);
23-
int isblank(int c);
24-
int iscntrl(int c);
25-
int isdigit(int c);
26-
int isgraph(int c);
27-
int islower(int c);
28-
int isprint(int c);
29-
int ispunct(int c);
30-
int isspace(int c);
31-
int isupper(int c);
32-
int isxdigit(int c);
33-
int tolower(int c);
34-
int toupper(int c);
21+
pure int isalnum(int c);
22+
pure int isalpha(int c);
23+
pure int isblank(int c);
24+
pure int iscntrl(int c);
25+
pure int isdigit(int c);
26+
pure int isgraph(int c);
27+
pure int islower(int c);
28+
pure int isprint(int c);
29+
pure int ispunct(int c);
30+
pure int isspace(int c);
31+
pure int isupper(int c);
32+
pure int isxdigit(int c);
33+
pure int tolower(int c);
34+
pure int toupper(int c);

src/core/stdc/stdlib.d

+4
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,10 @@ version( DigitalMars )
122122
// See malloc comment about @trusted.
123123
void* alloca(size_t size); // non-standard
124124
}
125+
else version( GNU )
126+
{
127+
void* alloca(size_t size); // compiler intrinsic
128+
}
125129

126130
version (Win64)
127131
{

src/core/stdc/wctype.d

+14-14
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,22 @@ nothrow:
2323
alias wchar_t wctrans_t;
2424
alias wchar_t wctype_t;
2525

26-
int iswalnum(wint_t wc);
27-
int iswalpha(wint_t wc);
28-
int iswblank(wint_t wc);
29-
int iswcntrl(wint_t wc);
30-
int iswdigit(wint_t wc);
31-
int iswgraph(wint_t wc);
32-
int iswlower(wint_t wc);
33-
int iswprint(wint_t wc);
34-
int iswpunct(wint_t wc);
35-
int iswspace(wint_t wc);
36-
int iswupper(wint_t wc);
37-
int iswxdigit(wint_t wc);
26+
pure int iswalnum(wint_t wc);
27+
pure int iswalpha(wint_t wc);
28+
pure int iswblank(wint_t wc);
29+
pure int iswcntrl(wint_t wc);
30+
pure int iswdigit(wint_t wc);
31+
pure int iswgraph(wint_t wc);
32+
pure int iswlower(wint_t wc);
33+
pure int iswprint(wint_t wc);
34+
pure int iswpunct(wint_t wc);
35+
pure int iswspace(wint_t wc);
36+
pure int iswupper(wint_t wc);
37+
pure int iswxdigit(wint_t wc);
3838

3939
int iswctype(wint_t wc, wctype_t desc);
4040
@system wctype_t wctype(in char* property);
41-
wint_t towlower(wint_t wc);
42-
wint_t towupper(wint_t wc);
41+
pure wint_t towlower(wint_t wc);
42+
pure wint_t towupper(wint_t wc);
4343
wint_t towctrans(wint_t wc, wctrans_t desc);
4444
@system wctrans_t wctrans(in char* property);

0 commit comments

Comments
 (0)