update
This commit is contained in:
parent
2b64f2f570
commit
a901c5f204
1 changed files with 31 additions and 0 deletions
31
tcctest.c
31
tcctest.c
|
@ -76,6 +76,7 @@ void typeof_test(void);
|
||||||
void local_label_test(void);
|
void local_label_test(void);
|
||||||
void statement_expr_test(void);
|
void statement_expr_test(void);
|
||||||
void asm_test(void);
|
void asm_test(void);
|
||||||
|
void builtin_test(void);
|
||||||
|
|
||||||
int fib(int n);
|
int fib(int n);
|
||||||
void num(int n);
|
void num(int n);
|
||||||
|
@ -498,6 +499,7 @@ int main(int argc, char **argv)
|
||||||
statement_expr_test();
|
statement_expr_test();
|
||||||
local_label_test();
|
local_label_test();
|
||||||
asm_test();
|
asm_test();
|
||||||
|
builtin_test();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1897,3 +1899,32 @@ void asm_test(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define COMPAT_TYPE(type1, type2) \
|
||||||
|
{\
|
||||||
|
printf("__builtin_types_compatible_p(%s, %s) = %d\n", #type1, #type2, \
|
||||||
|
__builtin_types_compatible_p (type1, type2));\
|
||||||
|
}
|
||||||
|
|
||||||
|
int constant_p_var;
|
||||||
|
|
||||||
|
void builtin_test(void)
|
||||||
|
{
|
||||||
|
#if GCC_MAJOR >= 3
|
||||||
|
COMPAT_TYPE(int, int);
|
||||||
|
COMPAT_TYPE(int, unsigned int);
|
||||||
|
COMPAT_TYPE(int, char);
|
||||||
|
COMPAT_TYPE(int, const int);
|
||||||
|
COMPAT_TYPE(int, volatile int);
|
||||||
|
COMPAT_TYPE(int *, int *);
|
||||||
|
COMPAT_TYPE(int *, void *);
|
||||||
|
COMPAT_TYPE(int *, const int *);
|
||||||
|
COMPAT_TYPE(char *, unsigned char *);
|
||||||
|
/* space is needed because tcc preprocessor introduces a space between each token */
|
||||||
|
COMPAT_TYPE(char * *, void *);
|
||||||
|
#endif
|
||||||
|
printf("res = %d\n", __builtin_constant_p(1));
|
||||||
|
printf("res = %d\n", __builtin_constant_p(1 + 2));
|
||||||
|
printf("res = %d\n", __builtin_constant_p(&constant_p_var));
|
||||||
|
printf("res = %d\n", __builtin_constant_p(constant_p_var));
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue