gcc 3 tests activated - new tests for 0.9.17
This commit is contained in:
parent
cb96022ab7
commit
d579dc4dbf
1 changed files with 43 additions and 5 deletions
48
tcctest.c
48
tcctest.c
|
@ -1,17 +1,23 @@
|
|||
/*
|
||||
* TCC auto test program
|
||||
*/
|
||||
#include "config.h"
|
||||
|
||||
#if GCC_MAJOR >= 3
|
||||
|
||||
/* Unfortunately, gcc version < 3 does not handle that! */
|
||||
//#define ALL_ISOC99
|
||||
#define ALL_ISOC99
|
||||
|
||||
/* only gcc 3 handles _Bool correctly */
|
||||
//#define BOOL_ISOC99
|
||||
|
||||
#define C99_MACROS
|
||||
#define BOOL_ISOC99
|
||||
|
||||
/* gcc 2.95.3 does not handle correctly CR in strings or after strays */
|
||||
//#define CORRECT_CR_HANDLING
|
||||
#define CORRECT_CR_HANDLING
|
||||
|
||||
#endif
|
||||
|
||||
/* __VA_ARGS__ and __func__ support */
|
||||
#define C99_MACROS
|
||||
|
||||
/* test various include syntaxes */
|
||||
|
||||
|
@ -228,8 +234,21 @@ void macro_test(void)
|
|||
printf("a=%d\n", a);
|
||||
}
|
||||
|
||||
/* macro function with argument outside the macro string */
|
||||
#define MF_s MF_hello
|
||||
#define MF_hello(msg) printf("%s\n",msg)
|
||||
|
||||
#define MF_t printf("tralala\n"); MF_hello
|
||||
|
||||
MF_s("hi");
|
||||
MF_t("hi");
|
||||
|
||||
/* comment with stray handling *\
|
||||
/
|
||||
/* this is a valid *\/ comment */
|
||||
/* this is a valid comment *\*/
|
||||
// this is a valid\
|
||||
comment
|
||||
}
|
||||
|
||||
int op(a,b)
|
||||
|
@ -258,6 +277,11 @@ void ps(char *s)
|
|||
}
|
||||
}
|
||||
|
||||
const char foo1_string[] = "\
|
||||
bar\n\
|
||||
test\14\
|
||||
1";
|
||||
|
||||
void string_test()
|
||||
{
|
||||
int b;
|
||||
|
@ -266,6 +290,7 @@ void string_test()
|
|||
printf("\x41\x42\x43\x3a\n");
|
||||
printf("c=%c\n", 'r');
|
||||
printf("wc=%C 0x%lx %C\n", L'a', L'\x1234', L'c');
|
||||
printf("foo1_string='%s'\n", foo1_string);
|
||||
#if 0
|
||||
printf("wstring=%S\n", L"abc");
|
||||
printf("wstring=%S\n", L"abc" L"def" "ghi");
|
||||
|
@ -1647,9 +1672,22 @@ void old_style_f(a,b,c)
|
|||
printf("a=%d b=%d b=%f\n", a, b, c);
|
||||
}
|
||||
|
||||
void decl_func1(int cmpfn())
|
||||
{
|
||||
printf("cmpfn=%lx\n", (long)cmpfn);
|
||||
}
|
||||
|
||||
void decl_func2(cmpfn)
|
||||
int cmpfn();
|
||||
{
|
||||
printf("cmpfn=%lx\n", (long)cmpfn);
|
||||
}
|
||||
|
||||
void old_style_function(void)
|
||||
{
|
||||
old_style_f((void *)1, 2, 3.0);
|
||||
decl_func1(NULL);
|
||||
decl_func2(NULL);
|
||||
}
|
||||
|
||||
void sizeof_test(void)
|
||||
|
|
Loading…
Reference in a new issue