Skip to content

Commit

Permalink
add builtin types for size_t*, intmax_t* & ptrdiff_t*
Browse files Browse the repository at this point in the history
This is needed for printf format checking of "%zn", "%jn" & "%tn".

Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
  • Loading branch information
lucvoo committed Oct 4, 2020
1 parent a6d459c commit b9453d0
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 0 deletions.
8 changes: 8 additions & 0 deletions symbol.c
Original file line number Diff line number Diff line change
Expand Up @@ -786,6 +786,7 @@ struct symbol schar_ptr_ctype, short_ptr_ctype;
struct symbol int_ptr_ctype, uint_ptr_ctype;
struct symbol long_ptr_ctype, ulong_ptr_ctype;
struct symbol llong_ptr_ctype, ullong_ptr_ctype;
struct symbol size_t_ptr_ctype, intmax_ptr_ctype, ptrdiff_ptr_ctype;
struct symbol float32_ctype, float32x_ctype;
struct symbol float64_ctype, float64x_ctype;
struct symbol float128_ctype;
Expand Down Expand Up @@ -886,6 +887,9 @@ static const struct ctype_declare {
{ &ulong_ptr_ctype, T_PTR(&ulong_ctype) },
{ &llong_ptr_ctype, T_PTR(&llong_ctype) },
{ &ullong_ptr_ctype, T_PTR(&ullong_ctype) },
{ &size_t_ptr_ctype, T_PTR(&void_ctype) }, // will be adjusted
{ &intmax_ptr_ctype, T_PTR(&void_ctype) }, // will be adjusted
{ &ptrdiff_ptr_ctype, T_PTR(&void_ctype) }, // will be adjusted
{ &const_ptr_ctype, T_PTR(&const_void_ctype) },
{ &const_string_ctype, T_PTR(&const_char_ctype) },
{ &const_wstring_ctype,T_PTR(&const_wchar_ctype) },
Expand Down Expand Up @@ -938,6 +942,10 @@ void init_ctype(void)
if (!uintptr_ctype)
uintptr_ctype = size_t_ctype;

size_t_ptr_ctype.ctype.base_type = size_t_ctype;
intmax_ptr_ctype.ctype.base_type = intmax_ctype;
ptrdiff_ptr_ctype.ctype.base_type = ptrdiff_ctype;

const_wchar_ctype.ctype.base_type = wchar_ctype;
const_wchar_ctype.rank = wchar_ctype->rank;
const_wchar_ctype.ctype.alignment = wchar_ctype->ctype.alignment;
Expand Down
1 change: 1 addition & 0 deletions symbol.h
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,7 @@ extern struct symbol schar_ptr_ctype, short_ptr_ctype;
extern struct symbol int_ptr_ctype, uint_ptr_ctype;
extern struct symbol long_ptr_ctype, ulong_ptr_ctype;
extern struct symbol llong_ptr_ctype, ullong_ptr_ctype;
extern struct symbol size_t_ptr_ctype, intmax_ptr_ctype, ptrdiff_ptr_ctype;
extern struct symbol float32_ctype, float32x_ctype;
extern struct symbol float64_ctype, float64x_ctype;
extern struct symbol float128_ctype;
Expand Down

0 comments on commit b9453d0

Please sign in to comment.