arm-gen.c:
- is_hgen_float_aggr/gfunc_sret: Fix for zero sized structs
arm64-gen.c:
- arm64_ldrs: Fix for zero sized structs
- arm64_sym: Use R_AARCH64_ABS64 instead of R_AARCH64_MOVW_UABS_G*
This has same speed. See 117_gcc_test.c(tst_adr)
- load: Fix for zero sized structs and add VT_CONST | VT_LVAL support
- store: add VT_CONST | VT_LVAL support
- arm64_gen_bl_or_b: Allow branch. See 117_gcc_test.c(tst_branch)
- gen_bounds_prolog: Use R_AARCH64_ABS64 for bound checking
- gen_bounds_epilog: Use R_AARCH64_ABS64 for bound checking
- gfunc_call: Allow large stack
- arm64_gen_opic: Do not crash on large shift
riscv64-gen.c:
- load: Move type_size call. (move_reg set sv.type.ref NULL for VT_STRUCT)
- gfunc_call: Allow large stack
- gen_opil: Fix word mode calls
x86_64-gen.c:
- load: Fix for zero sized structs
libtcc.c:
- Add some defines for gcc testsuite (only most common)
tccgen.c:
- parse_builtin_params: Add types for builtins
- unary: Add builtins: __builtin_abort __builtin_memcpy __builtin_memcmp
__builtin_memmove __builtin_memset __builtin_strlen
__builtin_strcpy __builtin_strncpy __builtin_strcmp
__builtin_strncmp __builtin_strcat __builtin_strchr
__builtin_strdup __builtin_malloc __builtin_realloc
__builtin_calloc __builtin_free __builtin_alloca
- decl_initializer: Fix crash. See 60_errors_and_warnings(test_var_array)
tccmacho.c:
- Remove 'ret = 0'
tcctok.h:
- Add builtin/bound checking tokens
tests/gcctestsuite.sh:
- Add more counters and run execute tests
tests/bug.c
- Some remaining bugs in tcc (not complete)
tests/tests2/60_errors_and_warnings:
- Add test_var_array test
tests/tests2/117_gcc_test:
- New test
Results of gcctestsuite.sh for all targets:
linux:
x86_64: 3036 test(s) ok. 328 test(s) failed. 24 test(s) exe failed.
i386: 3037 test(s) ok. 327 test(s) failed. 24 test(s) exe failed.
arm: 2986 test(s) ok. 362 test(s) failed. 40 test(s) exe failed.
arm64: 2996 test(s) ok. 367 test(s) failed. 25 test(s) exe failed.
macos: 3031 test(s) ok. 332 test(s) failed. 25 test(s) exe failed.
riscv: 2948 test(s) ok. 401 test(s) failed. 39 test(s) exe failed.
windows:
x86_64: 3027 test(s) ok. 333 test(s) failed. 28 test(s) exe failed.
i386: 3029 test(s) ok. 331 test(s) failed. 28 test(s) exe failed.
linux with bounds checking:
x86_64: 3030 test(s) ok. 328 test(s) failed. 30 test(s) exe failed.
i386: 3028 test(s) ok. 327 test(s) failed. 33 test(s) exe failed.
arm: 2997 test(s) ok. 362 test(s) failed. 29 test(s) exe failed.
arm64: 2986 test(s) ok. 367 test(s) failed. 35 test(s) exe failed.
macos: 3026 test(s) ok. 332 test(s) failed. 30 test(s) exe failed.
riscv: 2936 test(s) ok. 409 test(s) failed. 43 test(s) exe failed.
windows with bounds checking:
x86_64: 3029 test(s) ok. 332 test(s) failed. 27 test(s) exe failed.
i386: 3027 test(s) ok. 331 test(s) failed. 30 test(s) exe failed.
all: fail for complex and vector types, nested functions
and a lot of gcc defines/buitins.
arm/arm64/riscv: fail for asm and alloca.
riscv: fail with 'error: unimp: store(struct)'
164 lines
5.1 KiB
Text
164 lines
5.1 KiB
Text
[test_56_btype_excess_1]
|
|
60_errors_and_warnings.c:2: error: too many basic types
|
|
|
|
[test_57_btype_excess_2]
|
|
60_errors_and_warnings.c:5: error: too many basic types
|
|
|
|
[test_58_function_redefinition]
|
|
60_errors_and_warnings.c:9: error: redefinition of 'f'
|
|
|
|
[test_global_redefinition]
|
|
60_errors_and_warnings.c:14: error: redefinition of 'xxx'
|
|
|
|
[test_59_function_array]
|
|
60_errors_and_warnings.c:17: error: declaration of an array of functions
|
|
|
|
[test_60_enum_redefinition]
|
|
60_errors_and_warnings.c:21: error: struct/union/enum already defined
|
|
|
|
[test_62_enumerator_redefinition]
|
|
60_errors_and_warnings.c:26: error: redefinition of enumerator 'RED'
|
|
|
|
[test_63_local_enumerator_redefinition]
|
|
[returns 1]
|
|
|
|
[test_61_undefined_enum]
|
|
60_errors_and_warnings.c:46: error: unknown type size
|
|
|
|
[test_74_non_const_init]
|
|
60_errors_and_warnings.c:49: error: initializer element is not constant
|
|
|
|
[test_pointer_assignment]
|
|
60_errors_and_warnings.c:79: warning: assignment from incompatible pointer type
|
|
60_errors_and_warnings.c:82: warning: assignment from incompatible pointer type
|
|
60_errors_and_warnings.c:86: warning: assignment from incompatible pointer type
|
|
60_errors_and_warnings.c:88: warning: assignment from incompatible pointer type
|
|
60_errors_and_warnings.c:91: warning: assignment from incompatible pointer type
|
|
60_errors_and_warnings.c:92: warning: assignment from incompatible pointer type
|
|
60_errors_and_warnings.c:94: warning: assignment from incompatible pointer type
|
|
60_errors_and_warnings.c:95: warning: assignment from incompatible pointer type
|
|
60_errors_and_warnings.c:98: warning: assignment discards qualifiers from pointer target type
|
|
60_errors_and_warnings.c:99: warning: assignment discards qualifiers from pointer target type
|
|
60_errors_and_warnings.c:103: warning: assignment discards qualifiers from pointer target type
|
|
60_errors_and_warnings.c:104: warning: assignment discards qualifiers from pointer target type
|
|
60_errors_and_warnings.c:109: warning: assignment of read-only location
|
|
|
|
[test_enum_compat]
|
|
60_errors_and_warnings.c:119: error: incompatible types for redefinition of 'f3'
|
|
|
|
[test_enum_compat_2]
|
|
60_errors_and_warnings.c:126: error: incompatible types for redefinition of 'f4'
|
|
|
|
[test_ptr_to_str]
|
|
60_errors_and_warnings.c:129: error: type 'const int **' does not match any association
|
|
|
|
[test_fnptr_to_str]
|
|
60_errors_and_warnings.c:131: error: type 'int (*(*)(float, char))(double, int)' does not match any association
|
|
|
|
[test_array_to_str]
|
|
60_errors_and_warnings.c:133: error: type 'int (*)[3]' does not match any association
|
|
|
|
[test_duplicate_def_1]
|
|
60_errors_and_warnings.c:135: error: redefinition of 'L'
|
|
|
|
[test_duplicate_def_2]
|
|
60_errors_and_warnings.c:138: error: redeclaration of 'L'
|
|
|
|
[test_abstract_decls]
|
|
60_errors_and_warnings.c:148: error: identifier expected
|
|
|
|
[test_invalid_1]
|
|
60_errors_and_warnings.c:153: error: identifier expected
|
|
|
|
[test_invalid_2]
|
|
60_errors_and_warnings.c:156: error: ';' expected (got "{")
|
|
|
|
[test_invalid_3]
|
|
60_errors_and_warnings.c:160: error: ',' expected (got "a")
|
|
|
|
[test_invalid_4]
|
|
60_errors_and_warnings.c:164: error: division by zero in constant
|
|
|
|
[test_conflicting_types]
|
|
60_errors_and_warnings.c:170: error: incompatible types for redefinition of 'i'
|
|
|
|
[test_nested_types]
|
|
60_errors_and_warnings.c:177: error: struct/union/enum already defined
|
|
|
|
[test_vla_1]
|
|
60_errors_and_warnings.c:184: error: need explicit inner array size in VLAs
|
|
|
|
[test_invalid_alignas]
|
|
60_errors_and_warnings.c:188: error: identifier expected
|
|
|
|
[test_static_assert]
|
|
60_errors_and_warnings.c:194: error: ONE is not 1
|
|
|
|
[test_static_assert_2]
|
|
60_errors_and_warnings.c:198: error: 0 is 0
|
|
|
|
[test_static_assert_c2x]
|
|
60_errors_and_warnings.c:202: error: _Static_assert fail
|
|
|
|
[test_void_array]
|
|
60_errors_and_warnings.c:205: error: declaration of an array of incomplete type elements
|
|
|
|
[test_incomplete_enum_array]
|
|
60_errors_and_warnings.c:208: error: declaration of an array of incomplete type elements
|
|
|
|
[test_incomplete_struct_array]
|
|
60_errors_and_warnings.c:211: error: declaration of an array of incomplete type elements
|
|
|
|
[test_const_fun_array]
|
|
60_errors_and_warnings.c:215: error: declaration of an array of functions
|
|
|
|
[test_incomplete_array_array]
|
|
|
|
[test_extern_array]
|
|
60_errors_and_warnings.c:231: error: incompatible types for redefinition of 'x'
|
|
|
|
[test_func_1]
|
|
hello: a = 123
|
|
|
|
[test_func_2]
|
|
hello: a = 123
|
|
|
|
[test_func_3]
|
|
60_errors_and_warnings.c:261: warning: static storage ignored for redefinition of 'hello'
|
|
hello: a = 123
|
|
|
|
[test_func_4]
|
|
hello: a = 123
|
|
|
|
[test_func_5]
|
|
60_errors_and_warnings.c:261: error: incompatible types for redefinition of 'hello'
|
|
|
|
[test_func_6]
|
|
60_errors_and_warnings.c:249: error: function without file scope cannot be static
|
|
|
|
[test_var_1]
|
|
main : 1 ; 1
|
|
main : 2 ; 2
|
|
bar : 3 ; 3
|
|
|
|
[test_var_2]
|
|
main : 1 ; 1
|
|
main : 2 ; 2
|
|
bar : 3 ; 3
|
|
|
|
[test_var_3]
|
|
60_errors_and_warnings.c:293: error: incompatible types for redefinition of 'xxx'
|
|
|
|
[test_var_4]
|
|
|
|
[test_long_double_type_for_win32]
|
|
60_errors_and_warnings.c:324: warning: assignment from incompatible pointer type
|
|
|
|
[test_stray_backslash]
|
|
60_errors_and_warnings.c:330: error: stray '\' in program
|
|
|
|
[test_stray_backslash2]
|
|
\n
|
|
|
|
[test_var_array]
|
|
60_errors_and_warnings.c:345: warning: initializer-string for array is too long
|