aboutsummaryrefslogtreecommitdiff
path: root/tests/conformance/known.txt
diff options
context:
space:
mode:
authorGravatar zinc <zinc@downsta.ir> 2026-10-14 15:49:27 +0330
committerGravatar zinc <zinc@downsta.ir> 2026-10-14 15:49:27 +0330
commit0ff8e8ee280e46f9f0ff06bf0958e91ff29da52e (patch)
treef0d8b760771ca31c9e15796c06ead330299ab8e6 /tests/conformance/known.txt
parentagent/spec-conformance: unmerged work from previous session (diff)
conformance: port the previous agent's suite, fix six expectations, add sections 5 to 8 and appendix b, known.txt, zc0 skips, wire into test.sh
Diffstat (limited to 'tests/conformance/known.txt')
-rw-r--r--tests/conformance/known.txt71
1 files changed, 71 insertions, 0 deletions
diff --git a/tests/conformance/known.txt b/tests/conformance/known.txt
new file mode 100644
index 0000000..c26b50e
--- /dev/null
+++ b/tests/conformance/known.txt
@@ -0,0 +1,71 @@
+# understood conformance failures: PATH IMPL CLASS reason
+# class a: self-hosted compiler bug; b: zc0 deviation (appendix a/b); c: spec issue to settle
+1-source/ident_tags_as_variables_glued_star.zc zy a u*d with visible variables u and d is taken as a recast, not a multiplication (spec 1.6.3)
+1-source/lit_bstr_cast_to_int_pointer.zc zy a the bstr flag leaks into an int* local, so p[0] reads a byte
+1-source/lit_char_non_ascii.zc zy a bad character literal in the first statement of a body is swallowed by lookahead
+1-source/lit_char_two_bytes.zc zy a bad character literal in the first statement of a body is swallowed by lookahead
+1-source/lit_char_two_bytes_local_init.zc zy a bad character literal in the first statement of a body is swallowed by lookahead
+1-source/lit_float_bad_exponent.zc zy a bad float literal in the first statement of a body is swallowed by lookahead
+1-source/lit_float_bad_exponent_first_stmt_local.zc zy a bad float literal in the first statement of a body is swallowed by lookahead
+1-source/lit_float_bad_exponent_first_stmt_paren.zc zy a bad float literal in the first statement of a body is swallowed by lookahead
+1-source/lit_float_bad_exponent_in_helper.zc zy a bad float literal in the first statement of a body is swallowed by lookahead
+1-source/lit_float_bad_exponent_sign.zc zy a bad float literal in the first statement of a body is swallowed by lookahead
+2-types/typecheck_off_void_return_value_ok.zc zy a void f() { return 3; } yields 3, not 0 (spec 4.8.3)
+3-expressions/call_24_parameters.zc zy a the parameter limit is 23, not 24 (decl.zc; closures 19)
+3-expressions/call_24_parameters_prototype.zc zy a the parameter limit is 23, not 24 (decl.zc; closures 19)
+4-statements/memdebug_scrub_accepted.zc zy a memdebug scrub; is rejected (appendix b.1.1, b.2.1)
+4-statements/memdebug_scrub_fills.zc zy a memdebug scrub; is rejected (appendix b.1.1, b.2.1)
+4-statements/o3_outside_function_ordinary_block.zc zy c top-level o3 { } is rejected; spec 4.10.2 says it is an ordinary block
+4-statements/switch_tagged_match_by_tag.zc zy a case member(): on a member with fields is rejected (a case binds every field); spec 4.7.3 says it matches by tag
+5-declarations/enum_member_names_earlier_b2.zc zy a appendix b.2.2 confirmed: enum members can't name earlier members
+5-declarations/fn_prototype_after_definition_b4.zc zy a appendix b.2.4 confirmed: a prototype after the definition hides it
+5-declarations/fn_prototype_unnamed_params_b13.zc zy a appendix b.2.13 confirmed (message now: doesn't match its earlier declaration)
+5-declarations/fn_redefined_b3.zc zy a appendix b.2.3 confirmed: a plain redefinition silently shadows the first
+5-declarations/global_float_init_b7.zc zy a appendix b.2.7 confirmed: float global initializer rejected
+5-declarations/include_in_function_b9.zc zy a appendix b.2.9 confirmed: include in a body gives "return outside a function"
+9-appendix-b/b2_05_ternary_int_float.zc zy a appendix b.2.5 confirmed
+9-appendix-b/b2_06_bool_normalises.zc zy a appendix b.2.6 confirmed
+9-appendix-b/b2_10_recovery_hides_errors.zc zy c appendix b.2.10 confirmed; by design per 8.2
+9-appendix-b/b2_11_unterminated_comment.zc zy a appendix b.2.11 confirmed
+9-appendix-b/b2_12_as_int_star.zc zy a appendix b.2.12 confirmed
+9-appendix-b/b2_14_len_char_ptr_typecheck_off.zc zy a appendix b.2.14 confirmed
+9-appendix-b/b2_15_duplicate_case.zc zy c appendix b.2.15 confirmed; 4.7.2 says duplicates are allowed
+9-appendix-b/b2_16_local_const_in_const_expr.zc zy c appendix b.2.16 confirmed; 3.14.2 documents it
+1-source/ident_tags_as_variables_glued_star.zc zc0 b recast u*d emits no code (same misparse as zy)
+1-source/lit_hex.zc zc0 b literals read with strtoll base 0: octal and saturation (appendix b.1.11)
+1-source/lit_hex_wide.zc zc0 b literals read with strtoll base 0: octal and saturation (appendix b.1.11)
+1-source/lit_hex_wraps.zc zc0 b literals read with strtoll base 0: octal and saturation (appendix b.1.11)
+1-source/lit_int_max.zc zc0 b literals read with strtoll base 0: octal and saturation (appendix b.1.11)
+1-source/lit_int_wraps.zc zc0 b literals read with strtoll base 0: octal and saturation (appendix b.1.11)
+1-source/lit_int_zero_and_leading_zeros.zc zc0 b literals read with strtoll base 0: octal and saturation (appendix b.1.11)
+1-source/lit_minus_folded.zc zc0 b literals read with strtoll base 0: octal and saturation (appendix b.1.11)
+2-types/conv_argument_and_return.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+2-types/conv_assignment_to_float.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+2-types/conv_f32_rounds.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+2-types/conv_float_to_int_truncates.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+2-types/conv_int_to_float_initializer.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+2-types/conv_word_keeps_bits.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+2-types/f32_rounds_on_store.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+2-types/float_truthy.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+2-types/int_sized_cut_more.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+2-types/int_sized_cut_store.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+2-types/int_sized_param_return.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+2-types/typecheck_float_to_int_number.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+2-types/typecheck_number_kinds_convert.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+2-types/typecheck_off_void_return_value_ok.zc zc0 b void f() { return 3; } yields 3 (same as zy)
+3-expressions/call_params_converted_to_float.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+3-expressions/call_params_sized_cut.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+3-expressions/cast_as_char_unchanged.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+3-expressions/float_basic_arith.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+3-expressions/float_division_int_stored.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+3-expressions/float_int_ops_on_bits.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+3-expressions/incr_on_float_changes_bits.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+3-expressions/int_min_div_minus1.zc zc0 b INT_MIN / -1 gives 0 and % gives INT_MIN in zc0
+3-expressions/int_min_mod_minus1.zc zc0 b INT_MIN / -1 gives 0 and % gives INT_MIN in zc0
+3-expressions/prec_as_binds_tight.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+4-statements/return_value_converted_float.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+4-statements/return_value_converted_int.zc zc0 b types are read and dropped: no conversion, no sized cut (appendix a)
+9-appendix-b/b1_11_zc0_octal.zc zc0 b literals read with strtoll base 0: octal and saturation (appendix b.1.11)
+9-appendix-b/b1_11_zc0_saturation.zc zc0 b literals read with strtoll base 0: octal and saturation (appendix b.1.11)
+1-source/lit_hex_no_digits_is_zero.zc zc0 b 0x with no digits is rejected (strtoll)
+1-source/lit_int_octal_is_decimal.zc zc0 b 08 is rejected (strtoll base 0 octal)