tinycc/tests/tests2
Michael Matz 605538f46d Fix sym_scope of typedefs
Sym.sym_scope and Sym.f (FuncAttr) share space, so blindly setting
one clobbers the other.  Right now this only leads to missing errors
on incompatible typedefs (see testcase), which this commit fixes.

But it points to a larger problem:
Generally we can only manipulate Sym.f for anonymous and field symbols,
not for anything that has a top-level name (basically any proper decl),
because the latter use sym_scope.  Luckily the functions type always
contains an anonymous symbol (in sym->type.ref), so we can use that.
But some of the functions attributes actually _do_ apply to the decl,
not the type (e.g. always_inline), so we still have a problem possibly,
when we update an pre-existing type that may already be shared with
another decl.

Would need untangling and perhaps using accessor functions that check
that Sym.f and Sym.sym_scope aren't used for the same symbol.
2023-02-22 17:59:31 +01:00
..
00_assignment.c tests2: move into tests 2013-02-05 13:22:36 +01:00
00_assignment.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
01_comment.c tests2: move into tests 2013-02-05 13:22:36 +01:00
01_comment.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
02_printf.c tests2: move into tests 2013-02-05 13:22:36 +01:00
02_printf.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
03_struct.c extend test 03_struct for attr. __cleanup__ 2020-02-09 18:31:19 +01:00
03_struct.expect extend test 03_struct for attr. __cleanup__ 2020-02-09 18:31:19 +01:00
04_for.c tests2: move into tests 2013-02-05 13:22:36 +01:00
04_for.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
05_array.c tests2: move into tests 2013-02-05 13:22:36 +01:00
05_array.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
06_case.c tests2: move into tests 2013-02-05 13:22:36 +01:00
06_case.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
07_function.c zfunc works again on ARM after Pursuer fix 2018-12-22 19:14:22 +01:00
07_function.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
08_while.c tests2: move into tests 2013-02-05 13:22:36 +01:00
08_while.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
09_do_while.c tests2: move into tests 2013-02-05 13:22:36 +01:00
09_do_while.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
10_pointer.c tests2: move into tests 2013-02-05 13:22:36 +01:00
10_pointer.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
11_precedence.c Rework expr_landor 2020-01-20 05:48:48 +01:00
11_precedence.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
12_hashdefine.c tests2: move into tests 2013-02-05 13:22:36 +01:00
12_hashdefine.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
13_integer_literals.c tests2: move into tests 2013-02-05 13:22:36 +01:00
13_integer_literals.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
14_if.c tests2: move into tests 2013-02-05 13:22:36 +01:00
14_if.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
15_recursion.c tests2: move into tests 2013-02-05 13:22:36 +01:00
15_recursion.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
16_nesting.c tests2: move into tests 2013-02-05 13:22:36 +01:00
16_nesting.expect tests: cleanup 2013-02-05 14:27:38 +01:00
17_enum.c enums: Accept GNU extension 2017-07-10 22:20:34 +02:00
17_enum.expect enums: Accept GNU extension 2017-07-10 22:20:34 +02:00
18_include.c Fix last __has_include update 2022-09-12 11:37:47 +02:00
18_include.expect Add testcase __has_include and __has_include_next 2022-08-16 20:53:57 +02:00
18_include.h Fix last __has_include update 2022-09-12 11:37:47 +02:00
19_pointer_arithmetic.c tests2: move into tests 2013-02-05 13:22:36 +01:00
19_pointer_arithmetic.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
20_pointer_comparison.c tests2: move into tests 2013-02-05 13:22:36 +01:00
20_pointer_comparison.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
21_char_array.c tests2: move into tests 2013-02-05 13:22:36 +01:00
21_char_array.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
22_floating_point.c Revert "add tests for float conversions to u64" 2020-09-17 07:12:49 +00:00
22_floating_point.expect Revert "add tests for float conversions to u64" 2020-09-17 07:12:49 +00:00
23_type_coercion.c tests2: move into tests 2013-02-05 13:22:36 +01:00
23_type_coercion.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
24_math_library.c round() in test (24_math_library) fail because there are no defs included. 2015-01-05 18:23:32 +03:00
24_math_library.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
25_quicksort.c tests2: move into tests 2013-02-05 13:22:36 +01:00
25_quicksort.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
26_character_constants.c tests2: move into tests 2013-02-05 13:22:36 +01:00
26_character_constants.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
27_sizeof.c tccgen.c: Try to make sizeof(!x) work. 2015-11-22 00:00:36 +00:00
27_sizeof.expect tccgen.c: Try to make sizeof(!x) work. 2015-11-22 00:00:36 +00:00
28_strings.c Use ISO C string functions instead of obsolete BSD ones that used to be in strings.h. It allows more systems -- i.e. Windows -- to use those tests 2016-10-12 06:18:38 +02:00
28_strings.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
29_array_address.c tests2: move into tests 2013-02-05 13:22:36 +01:00
29_array_address.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
30_hanoi.c tests2: fix 30_hanoi test and enable it. 2014-04-12 13:37:37 -04:00
30_hanoi.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
31_args.c tests2: cleanup 2014-04-07 11:20:45 +02:00
31_args.expect tests2: cleanup 2014-04-07 11:20:45 +02:00
32_led.c tests2: move into tests 2013-02-05 13:22:36 +01:00
32_led.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
33_ternary_op.c rework type coercion in ternary expr (a bit) and uncomment previously failing test. Be more explicit in diagnostic messages. 2020-02-17 18:25:43 +01:00
33_ternary_op.expect Factor out common type combination 2020-04-15 02:44:12 +02:00
34_array_assignment.c tests2: move into tests 2013-02-05 13:22:36 +01:00
34_array_assignment.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
35_sizeof.c tests2: move into tests 2013-02-05 13:22:36 +01:00
35_sizeof.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
36_array_initialisers.c Allow declared arrays to be initialized without an explicit size 2021-02-13 19:18:08 -08:00
36_array_initialisers.expect Allow declared arrays to be initialized without an explicit size 2021-02-13 19:18:08 -08:00
37_sprintf.c tests2: move into tests 2013-02-05 13:22:36 +01:00
37_sprintf.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
38_multiple_array_index.c tests2: move into tests 2013-02-05 13:22:36 +01:00
38_multiple_array_index.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
39_typedef.c Fix function types 2017-07-14 17:42:48 +02:00
39_typedef.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
40_stdio.c tests2: move into tests 2013-02-05 13:22:36 +01:00
40_stdio.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
41_hashif.c tests2: move into tests 2013-02-05 13:22:36 +01:00
41_hashif.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
42_function_pointer.c Revert "function pointer compare" 2020-10-03 17:40:22 +02:00
42_function_pointer.expect Revert "function pointer compare" 2020-10-03 17:40:22 +02:00
43_void_param.c tests2: move into tests 2013-02-05 13:22:36 +01:00
43_void_param.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
44_scoped_declarations.c tests: cleanup 2013-02-05 14:27:38 +01:00
44_scoped_declarations.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
45_empty_for.c tests: cleanup 2013-02-05 14:27:38 +01:00
45_empty_for.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
46_grep.c Update bounds checking. 2019-12-12 12:56:06 +01:00
46_grep.expect tests2: fix and enable 46_grep test. 2014-04-12 14:04:10 -04:00
47_switch_return.c tests2: move into tests 2013-02-05 13:22:36 +01:00
47_switch_return.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
48_nested_break.c tests2: move into tests 2013-02-05 13:22:36 +01:00
48_nested_break.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
49_bracket_evaluation.c tests2: move into tests 2013-02-05 13:22:36 +01:00
49_bracket_evaluation.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
50_logical_second_arg.c tests: cleanup 2013-02-05 14:27:38 +01:00
50_logical_second_arg.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
51_static.c tests2: move into tests 2013-02-05 13:22:36 +01:00
51_static.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
52_unnamed_enum.c tests2: move into tests 2013-02-05 13:22:36 +01:00
52_unnamed_enum.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
54_goto.c tests: cleanup 2013-02-05 14:27:38 +01:00
54_goto.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
55_lshift_type.c tests2: move into tests 2013-02-05 13:22:36 +01:00
55_lshift_type.expect tests2: move into tests 2013-02-05 13:22:36 +01:00
60_errors_and_warnings.c Fix sym_scope of typedefs 2023-02-22 17:59:31 +01:00
60_errors_and_warnings.expect Fix sym_scope of typedefs 2023-02-22 17:59:31 +01:00
61_integers.c __builtin_/__bound_: A 'stay tiny' approach to the matter 2020-07-06 13:42:02 +02:00
61_integers.expect __builtin_/__bound_: A 'stay tiny' approach to the matter 2020-07-06 13:42:02 +02:00
64_macro_nesting.c Turn on a implicit-function-declaration warning by default. 2015-03-03 16:32:25 +03:00
64_macro_nesting.expect Add new tests for macro nesting 2014-04-07 23:30:57 +08:00
67_macro_concat.c Fix preprocessor concat with empty arg 2014-04-12 16:11:42 +08:00
67_macro_concat.expect Fix preprocessor concat with empty arg 2014-04-12 16:11:42 +08:00
70_floating_point_literals.c Fix parsing of binary floating point number 2014-12-15 16:32:08 +08:00
70_floating_point_literals.expect Fix parsing of binary floating point number 2014-12-15 16:32:08 +08:00
71_macro_empty_arg.c Fix macro expansion of empty args. 2015-01-18 22:00:10 +01:00
71_macro_empty_arg.expect Fix macro expansion of empty args. 2015-01-18 22:00:10 +01:00
72_long_long_constant.c tccpp: fix issues, add tests 2015-05-09 14:29:39 +02:00
72_long_long_constant.expect tccpp: fix issues, add tests 2015-05-09 14:29:39 +02:00
73_arm64.c Fix arm64-gen.c when passing a struct ptr to va_arg. 2020-03-22 08:26:03 +01:00
73_arm64.expect arm64: Optimise some integer operations with a constant operand. 2015-03-07 17:42:08 +00:00
75_array_in_struct_init.c A right fix for the array in struct initialization w/o '{' 2015-03-23 08:27:16 +03:00
75_array_in_struct_init.expect A right fix for the array in struct initialization w/o '{' 2015-03-23 08:27:16 +03:00
76_dollars_in_identifiers.c add missing test from -fdollar-in-identifiers commit 2015-04-20 12:03:45 +01:00
76_dollars_in_identifiers.expect add missing test from -fdollar-in-identifiers commit 2015-04-20 12:03:45 +01:00
77_push_pop_macro.c a test for the #pragma push/pop_macro 2015-04-25 15:03:50 +03:00
77_push_pop_macro.expect a test for the #pragma push/pop_macro 2015-04-25 15:03:50 +03:00
78_vla_label.c tccgen.c: Bug fix for 992cbda and 3ff77a1: set nocode_wanted. 2015-11-21 23:58:58 +00:00
78_vla_label.expect tccgen.c: Bug fix for 992cbda and 3ff77a1: set nocode_wanted. 2015-11-21 23:58:58 +00:00
79_vla_continue.c Fix a VLA problem 2021-02-03 04:30:11 +01:00
79_vla_continue.expect VLA fix: save stack pointer right after modification 2015-04-28 09:23:29 +00:00
80_flexarray.c flexarray: Accept empty ones 2022-07-01 15:37:23 +02:00
80_flexarray.expect tccgen.c: Fix flex array members some more 2016-03-11 22:35:44 +01:00
81_types.c Some types testcases 2019-04-09 04:39:38 +02:00
81_types.expect Fix type parsing 2016-03-24 15:44:01 +01:00
82_attribs_position.c Accept attributes after labels 2022-08-16 15:59:41 +02:00
82_attribs_position.expect Fix misparsed type in presence of attributes 2018-07-28 18:55:54 +02:00
83_utf8_in_identifiers.c utf8 in identifiers 2016-04-05 13:05:09 +03:00
83_utf8_in_identifiers.expect utf8 in identifiers 2016-04-05 13:05:09 +03:00
84_hex-float.c updates & cleanups (tcc-doc/Changelog/TODO ...) 2017-02-13 19:03:29 +01:00
84_hex-float.expect updates & cleanups (tcc-doc/Changelog/TODO ...) 2017-02-13 19:03:29 +01:00
85_asm-outside-function.c rework leading underscores 2020-07-06 13:00:47 +02:00
85_asm-outside-function.expect updates & cleanups (tcc-doc/Changelog/TODO ...) 2017-02-13 19:03:29 +01:00
86_memory-model.c updates & cleanups (tcc-doc/Changelog/TODO ...) 2017-02-13 19:03:29 +01:00
86_memory-model.expect updates & cleanups (tcc-doc/Changelog/TODO ...) 2017-02-13 19:03:29 +01:00
87_dead_code.c Fix fallthrough of non-entered stmt expressions 2022-07-01 17:20:37 +02:00
87_dead_code.expect Fix fallthrough of non-entered stmt expressions 2022-07-01 17:20:37 +02:00
88_codeopt.c update gen_cast 2019-12-16 21:37:44 +01:00
88_codeopt.expect Fix some code suppression fallout 2016-12-20 04:58:34 +01:00
89_nocode_wanted.c updates & cleanups (tcc-doc/Changelog/TODO ...) 2017-02-13 19:03:29 +01:00
89_nocode_wanted.expect updates & cleanups (tcc-doc/Changelog/TODO ...) 2017-02-13 19:03:29 +01:00
90_struct-init.c tccgen: Allow struct init from struct 2022-03-16 19:18:16 +01:00
90_struct-init.expect tccgen: Allow struct init from struct 2022-03-16 19:18:16 +01:00
91_ptr_longlong_arith32.c updates & cleanups (tcc-doc/Changelog/TODO ...) 2017-02-13 19:03:29 +01:00
91_ptr_longlong_arith32.expect updates & cleanups (tcc-doc/Changelog/TODO ...) 2017-02-13 19:03:29 +01:00
92_enum_bitfield.c nocode, noreturn 2019-06-24 11:40:01 +02:00
92_enum_bitfield.expect Fix unsigned enum bit-fields 2017-05-05 23:16:43 +02:00
93_integer_promotion.c bitfields: promote to signed int 2017-05-09 18:36:24 +02:00
93_integer_promotion.expect bitfields: promote to signed int 2017-05-09 18:36:24 +02:00
94_generic.c Fix null pointer constants 2022-08-16 16:58:00 +02:00
94_generic.expect Treat func pointers with different return types as not compatible 2020-11-22 16:30:34 -06:00
95_bitfields_ms.c #pragma comment(option,"-..."), bitfields test, etc... 2017-07-14 19:26:01 +02:00
95_bitfields_ms.expect Fix long bitfield 2020-08-09 07:50:34 +02:00
95_bitfields.c Fix testcase 95 for windows 2020-08-09 08:28:45 +02:00
95_bitfields.expect Fix long bitfield 2020-08-09 07:50:34 +02:00
96_nodata_wanted.c tccelf: use rodata_section, use more rodata in tcc itself 2021-02-18 14:43:34 +01:00
96_nodata_wanted.expect update gen_cast 2019-12-16 21:37:44 +01:00
97_utf8_string_literal.c re-add accidentally deleted printf("\n"); to tests2/97*.c 2021-01-18 08:32:50 +01:00
97_utf8_string_literal.expect Add test case for wide char handling in wide string literal 2017-09-10 16:50:19 +08:00
98_al_ax_extend.c rework leading underscores 2020-07-06 13:00:47 +02:00
98_al_ax_extend.expect Add test case for AL/AX extending problem 2017-09-10 17:03:34 +08:00
99_fastcall.c more bsd updates 2020-12-22 07:02:47 +01:00
99_fastcall.expect Add test case for fastcall calling convention 2017-09-10 18:22:48 +08:00
100_c99array-decls.c Don't fail on const/restrict/static/* inside [] 2018-04-01 00:48:09 +02:00
100_c99array-decls.expect Don't fail on const/restrict/static/* inside [] 2018-04-01 00:48:09 +02:00
101_cleanup.c add tests for cleanup loop 2019-05-03 12:32:55 +02:00
101_cleanup.expect add tests for cleanup loop 2019-05-03 12:32:55 +02:00
102_alignas.c Make 102_alignas independend of architecture 2019-04-11 00:37:07 +02:00
102_alignas.expect three small fixes & three reverts 2020-11-02 18:08:56 +01:00
103_implicit_memmove.c Add attribute bound_no_checking 2020-08-13 11:19:11 +02:00
103_implicit_memmove.expect Add 103_implicit_memmove testcase 2019-04-18 03:42:23 +02:00
104_inline.c test 104: adjust to (unwritten) tests2 suite conventions 2019-06-22 00:26:31 +02:00
104_inline.expect test 104: adjust to (unwritten) tests2 suite conventions 2019-06-22 00:26:31 +02:00
104+_inline.c win64: hi-mem adjustments 2022-10-13 20:32:47 +02:00
105_local_extern.c Add testcase for 69a46b0 2019-06-17 19:08:08 +02:00
105_local_extern.expect Add testcase for 69a46b0 2019-06-17 19:08:08 +02:00
106_versym.c rename testcase 106 2020-12-19 21:02:44 +01:00
106_versym.expect rename testcase 106 2020-12-19 21:02:44 +01:00
107_stack_safe.c Fix bug in gen_cvt_ftoi1. Add test 107_stack_safe for this fix. 2019-10-24 00:57:59 +08:00
107_stack_safe.expect Fix bug in gen_cvt_ftoi1. Add test 107_stack_safe for this fix. 2019-10-24 00:57:59 +08:00
108_constructor.c Add constructor/destructor support 2019-10-29 07:02:58 +01:00
108_constructor.expect Add constructor/destructor support 2019-10-29 07:02:58 +01:00
109_float_struct_calling.c rename testcase 2019-10-29 12:02:58 +01:00
109_float_struct_calling.expect rename testcase 2019-10-29 12:02:58 +01:00
110_average.c Fix bounds checking for linux/windows 2019-12-10 08:07:25 +01:00
110_average.expect Fix bounds checking for linux/windows 2019-12-10 08:07:25 +01:00
111_conversion.c Fix bounds checking for linux/windows 2019-12-10 08:07:25 +01:00
111_conversion.expect Fix bounds checking for linux/windows 2019-12-10 08:07:25 +01:00
112_backtrace.c Add strncat and strrchr to bounds checking 2022-11-25 00:31:32 -06:00
112_backtrace.expect Add strncat and strrchr to bounds checking 2022-11-25 00:31:32 -06:00
113_btdll.c backtrace: test with DLLs 2020-01-19 11:46:07 +01:00
113_btdll.expect backtrace: test with DLLs 2020-01-19 11:46:07 +01:00
114_bound_signal.c Fix fork problem 114_bound_signal 2020-11-10 10:08:30 +01:00
114_bound_signal.expect Allow signal handlers when bound checking 2020-05-05 08:31:57 +02:00
115_bound_setjmp.c NetBSD: longjmp(jmp_buf, 0) is not supported. 2020-12-24 09:29:25 +01:00
115_bound_setjmp.expect Add setjmp/longjmp bound checking support 2020-05-23 20:02:41 +02:00
116_bound_setjmp2.c Add setjmp/longjmp bound checking support 2020-05-23 20:02:41 +02:00
116_bound_setjmp2.expect Add setjmp/longjmp bound checking support 2020-05-23 20:02:41 +02:00
117_builtins.c Add strncat and strrchr to bounds checking 2022-11-25 00:31:32 -06:00
117_builtins.expect Add strncat and strrchr to bounds checking 2022-11-25 00:31:32 -06:00
118_switch.c tests2: rework 117..119 to follow our conventions 2020-08-21 21:44:11 +02:00
118_switch.expect tests2: rework 117..119 to follow our conventions 2020-08-21 21:44:11 +02:00
119_random_stuff.c New update tccmacho.c 2022-11-28 11:19:33 -06:00
119_random_stuff.expect New update tccmacho.c 2022-11-28 11:19:33 -06:00
120_alias.c Fix tests2/120_alias.c on macos 2020-10-01 18:03:56 +02:00
120_alias.expect Reinstate attribute alias handling 2020-09-30 17:46:01 +02:00
120+_alias.c Reinstate attribute alias handling 2020-09-30 17:46:01 +02:00
121_struct_return.c Bound checking fixes 2020-10-01 17:09:09 +02:00
121_struct_return.expect Bound checking fixes 2020-10-01 17:09:09 +02:00
122_vla_reuse.c Bound checking fixes 2020-10-01 17:09:09 +02:00
122_vla_reuse.expect Bound checking fixes 2020-10-01 17:09:09 +02:00
123_vla_bug.c Fix a VLA problem 2021-02-03 04:30:11 +01:00
123_vla_bug.expect Fix a VLA problem 2021-02-03 04:30:11 +01:00
124_atomic_counter.c Fix atomic test_and_set and clear 2022-11-17 05:57:21 -06:00
124_atomic_counter.expect Add atomic functions for arm/arm64/riscv 2022-10-16 18:51:56 +02:00
125_atomic_misc.c Add atomic functions for arm/arm64/riscv 2022-10-16 18:51:56 +02:00
125_atomic_misc.expect Add atomic functions for arm/arm64/riscv 2022-10-16 18:51:56 +02:00
126_bound_global.c Add dwarf support 2022-05-05 09:10:37 +02:00
126_bound_global.expect Add dwarf support 2022-05-05 09:10:37 +02:00
127_asm_goto.c Support asm goto 2022-08-16 15:59:41 +02:00
127_asm_goto.expect Support asm goto 2022-08-16 15:59:41 +02:00
128_run_atexit.c Allow on_exit to be used with -run 2022-12-02 07:11:55 +01:00
128_run_atexit.expect Allow on_exit to be used with -run 2022-12-02 07:11:55 +01:00
LICENSE tests2: move into tests 2013-02-05 13:22:36 +01:00
Makefile Allow parallel build testsuite 2022-12-27 14:11:18 +01:00