From 263915832993dd12beee10e204f9ebcc6c786ed2 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Sat, 30 Dec 2023 23:39:37 +0100 Subject: Meta: initial commit of WestCo optimized toolchain. Signed-off-by: Amlal El Mahrouss --- CompilerDriver/.gitignore | 18 + CompilerDriver/bin/.gitkeep | 0 CompilerDriver/bin/SourceUnitTest/.gitkeep | 0 CompilerDriver/cc.cxx | 1871 + CompilerDriver/cc2/LICENSE | 11 + CompilerDriver/cc2/include/cpp2util.h | 1999 + CompilerDriver/cc2/passthrough-tests/all-std.cxx | 126 + .../cc2/passthrough-tests/clang-12-libstdc++-e.cpp | 149788 ++++++++++++++ .../passthrough-tests/clang-12-libstdc++-e.cpp2 | 149788 ++++++++++++++ .../cc2/passthrough-tests/gcc-10-libstdc++-e.cpp | 150933 ++++++++++++++ .../cc2/passthrough-tests/gcc-10-libstdc++-e.cpp2 | 150933 ++++++++++++++ .../cc2/passthrough-tests/msvc-msstl-e.cpp | 191001 ++++++++++++++++++ .../cc2/passthrough-tests/msvc-msstl-e.cpp2 | 191001 ++++++++++++++++++ CompilerDriver/cc2/passthrough-tests/readme.md | 32 + CompilerDriver/cc2/passthrough-tests/run-diffs.sh | 8 + .../cc2/regression-tests/mixed-allcpp1-hello.cpp2 | 15 + .../mixed-as-for-variant-20-types.cpp2 | 75 + .../cc2/regression-tests/mixed-bounds-check.cpp2 | 10 + .../mixed-bounds-safety-with-assert-2.cpp2 | 26 + .../mixed-bounds-safety-with-assert.cpp2 | 24 + ...ixed-bugfix-for-cpp2-comment-cpp1-sequence.cpp2 | 2 + .../mixed-bugfix-for-literal-as-nttp.cpp2 | 7 + .../mixed-bugfix-for-ufcs-non-local.cpp2 | 49 + ...captures-in-expressions-and-postconditions.cpp2 | 24 + .../regression-tests/mixed-fixed-type-aliases.cpp2 | 30 + .../cc2/regression-tests/mixed-float-literals.cpp2 | 117 + .../cc2/regression-tests/mixed-forwarding.cpp2 | 35 + ...mixed-function-expression-and-std-for-each.cpp2 | 27 + ...ssion-and-std-ranges-for-each-with-capture.cpp2 | 21 + ...unction-expression-and-std-ranges-for-each.cpp2 | 20 + ...d-function-expression-with-pointer-capture.cpp2 | 22 + ...-function-expression-with-repeated-capture.cpp2 | 21 + .../cc2/regression-tests/mixed-hello.cpp2 | 18 + .../mixed-increment-decrement.cpp2 | 55 + .../mixed-initialization-safety-1-error.cpp2 | 45 + .../mixed-initialization-safety-2-error.cpp2 | 45 + ...initialization-safety-3-contract-violation.cpp2 | 35 + .../mixed-initialization-safety-3.cpp2 | 30 + .../regression-tests/mixed-inspect-templates.cpp2 | 41 + .../regression-tests/mixed-inspect-values-2.cpp2 | 45 + .../cc2/regression-tests/mixed-inspect-values.cpp2 | 42 + ...d-inspect-with-typeof-of-template-arg-list.cpp2 | 16 + .../mixed-intro-example-three-loops.cpp2 | 37 + .../mixed-intro-for-with-counter-include-last.cpp2 | 13 + .../mixed-lifetime-safety-and-null-contracts.cpp2 | 26 + ...mixed-lifetime-safety-pointer-init-1-error.cpp2 | 23 + ...mixed-lifetime-safety-pointer-init-2-error.cpp2 | 23 + ...mixed-lifetime-safety-pointer-init-3-error.cpp2 | 23 + .../mixed-lifetime-safety-pointer-init-4.cpp2 | 28 + .../mixed-multiple-return-values.cpp2 | 35 + .../regression-tests/mixed-out-destruction.cpp2 | 38 + .../mixed-parameter-passing-generic-out.cpp2 | 23 + .../mixed-parameter-passing-with-forward.cpp2 | 42 + .../regression-tests/mixed-parameter-passing.cpp2 | 40 + .../mixed-postexpression-with-capture.cpp2 | 38 + ...mixed-postfix-expression-custom-formatting.cpp2 | 15 + .../mixed-string-interpolation.cpp2 | 53 + .../cc2/regression-tests/mixed-test-parens.cpp2 | 13 + .../cc2/regression-tests/mixed-type-safety-1.cpp2 | 36 + .../mixed-ufcs-multiple-template-arguments.cpp2 | 24 + ...re2-bounds-safety-pointer-arithmetic-error.cpp2 | 21 + .../regression-tests/pure2-bounds-safety-span.cpp2 | 17 + .../cc2/regression-tests/pure2-break-continue.cpp2 | 226 + .../pure2-bugfix-for-assign-expression-list.cpp2 | 10 + .../pure2-bugfix-for-declaration-equal-error.cpp2 | 1 + .../pure2-bugfix-for-discard-precedence.cpp2 | 11 + .../pure2-bugfix-for-max-munch.cpp2 | 2 + ...ure2-bugfix-for-memberwise-base-assignment.cpp2 | 18 + ...ugfix-for-name-lookup-and-value-decoration.cpp2 | 9 + ...2-bugfix-for-non-local-function-expression.cpp2 | 13 + .../pure2-bugfix-for-non-local-initialization.cpp2 | 8 + ...bugfix-for-optional-template-argument-list.cpp2 | 2 + ...pure2-bugfix-for-parameter-decl-list-error.cpp2 | 1 + ...for-requires-clause-in-forward-declaration.cpp2 | 5 + ...uires-clause-unbraced-function-initializer.cpp2 | 2 + .../pure2-bugfix-for-template-argument.cpp2 | 2 + .../pure2-bugfix-for-ufcs-arguments.cpp2 | 71 + .../pure2-bugfix-for-ufcs-name-lookup.cpp2 | 111 + .../pure2-bugfix-for-ufcs-noexcept.cpp2 | 6 + .../pure2-bugfix-for-ufcs-sfinae.cpp2 | 8 + ...e2-bugfix-for-unbraced-function-expression.cpp2 | 15 + .../pure2-bugfix-for-variable-template.cpp2 | 2 + .../pure2-chained-comparisons.cpp2 | 15 + .../regression-tests/pure2-concept-definition.cpp2 | 5 + .../cc2/regression-tests/pure2-contracts.cpp2 | 29 + ...e2-cpp1-multitoken-fundamental-types-error.cpp2 | 9 + .../pure2-cpp1-prefix-expression-error.cpp2 | 5 + .../pure2-deducing-pointers-error.cpp2 | 47 + ...ure2-defaulted-comparisons-and-final-types.cpp2 | 22 + .../cc2/regression-tests/pure2-enum.cpp2 | 120 + .../pure2-for-loop-range-with-lambda.cpp2 | 30 + .../pure2-forward-return-diagnostics-error.cpp2 | 53 + .../cc2/regression-tests/pure2-forward-return.cpp2 | 15 + .../pure2-function-multiple-forward-arguments.cpp2 | 10 + .../cc2/regression-tests/pure2-hello.cpp2 | 14 + .../pure2-initialization-safety-with-else-if.cpp2 | 25 + ...ression-in-generic-function-multiple-types.cpp2 | 30 + ...ect-expression-with-as-in-generic-function.cpp2 | 16 + ...inspect-fallback-with-variant-any-optional.cpp2 | 25 + ...neric-void-empty-with-variant-any-optional.cpp2 | 26 + .../cc2/regression-tests/pure2-interpolation.cpp2 | 31 + .../pure2-intro-example-hello-2022.cpp2 | 20 + .../pure2-intro-example-three-loops.cpp2 | 30 + ...pure2-lifetime-safety-pointer-init-1-error.cpp2 | 20 + .../pure2-lifetime-safety-reject-null-error.cpp2 | 19 + ...-look-up-parameter-across-unnamed-function.cpp2 | 19 + .../cc2/regression-tests/pure2-main-args.cpp2 | 5 + .../cc2/regression-tests/pure2-more-wildcards.cpp2 | 18 + .../cc2/regression-tests/pure2-print.cpp2 | 106 + ...pure2-raw-string-literal-and-interpolation.cpp2 | 34 + .../cc2/regression-tests/pure2-repeated-call.cpp2 | 5 + .../regression-tests/pure2-requires-clauses.cpp2 | 23 + .../pure2-return-tuple-no-identifier-error.cpp2 | 3 + .../pure2-return-tuple-no-type-error.cpp2 | 3 + .../pure2-statement-parse-error.cpp2 | 5 + .../pure2-statement-scope-parameters.cpp2 | 15 + .../regression-tests/pure2-stdio-with-raii.cpp2 | 8 + .../cc2/regression-tests/pure2-stdio.cpp2 | 10 + ...re2-synthesize-rightshift-and-rightshifteq.cpp2 | 9 + .../pure2-template-parameter-lists.cpp2 | 12 + .../pure2-type-and-namespace-aliases.cpp2 | 35 + .../cc2/regression-tests/pure2-type-safety-1.cpp2 | 35 + ...ure2-type-safety-2-with-inspect-expression.cpp2 | 29 + .../cc2/regression-tests/pure2-types-basics.cpp2 | 85 + .../regression-tests/pure2-types-down-upcast.cpp2 | 85 + .../regression-tests/pure2-types-inheritance.cpp2 | 53 + ...pure2-types-order-independence-and-nesting.cpp2 | 80 + .../pure2-types-ordering-via-meta-functions.cpp2 | 50 + ...e2-types-smf-and-that-1-provide-everything.cpp2 | 63 + ...nd-that-2-provide-mvconstruct-and-cpassign.cpp2 | 63 + ...nd-that-3-provide-mvconstruct-and-mvassign.cpp2 | 63 + ...f-and-that-4-provide-cpassign-and-mvassign.cpp2 | 63 + ...nd-that-5-provide-nothing-but-general-case.cpp2 | 63 + .../pure2-types-that-parameters.cpp2 | 38 + ...pure2-types-value-types-via-meta-functions.cpp2 | 35 + .../pure2-ufcs-member-access-and-chaining.cpp2 | 43 + .../cc2/regression-tests/pure2-union.cpp2 | 43 + .../cc2/regression-tests/pure2-variadics.cpp2 | 32 + .../pure2-various-string-literals.cpp2 | 20 + .../apple-clang-14/clang-version.output | 4 + .../mixed-allcpp1-hello.cpp.execution | 1 + .../apple-clang-14/mixed-allcpp1-hello.cpp.output | 0 .../mixed-as-for-variant-20-types.cpp.execution | 60 + .../mixed-as-for-variant-20-types.cpp.output | 0 .../mixed-bounds-check.cpp.execution | 1 + .../apple-clang-14/mixed-bounds-check.cpp.output | 0 ...mixed-bounds-safety-with-assert-2.cpp.execution | 5 + .../mixed-bounds-safety-with-assert-2.cpp.output | 0 .../mixed-bounds-safety-with-assert.cpp.execution | 1 + .../mixed-bounds-safety-with-assert.cpp.output | 0 ...ix-for-cpp2-comment-cpp1-sequence.cpp.execution | 0 ...ugfix-for-cpp2-comment-cpp1-sequence.cpp.output | 0 .../mixed-bugfix-for-literal-as-nttp.cpp.execution | 0 .../mixed-bugfix-for-literal-as-nttp.cpp.output | 0 .../mixed-bugfix-for-ufcs-non-local.cpp.execution | 0 .../mixed-bugfix-for-ufcs-non-local.cpp.output | 0 ...in-expressions-and-postconditions.cpp.execution | 4 + ...es-in-expressions-and-postconditions.cpp.output | 7 + .../mixed-fixed-type-aliases.cpp.execution | 4 + .../mixed-fixed-type-aliases.cpp.output | 0 .../mixed-float-literals.cpp.execution | 72 + .../apple-clang-14/mixed-float-literals.cpp.output | 0 .../apple-clang-14/mixed-forwarding.cpp.execution | 12 + .../apple-clang-14/mixed-forwarding.cpp.output | 0 ...ction-expression-and-std-for-each.cpp.execution | 2 + ...function-expression-and-std-for-each.cpp.output | 7 + ...-std-ranges-for-each-with-capture.cpp.execution | 4 + ...and-std-ranges-for-each-with-capture.cpp.output | 7 + ...xpression-and-std-ranges-for-each.cpp.execution | 4 + ...n-expression-and-std-ranges-for-each.cpp.output | 7 + ...n-expression-with-pointer-capture.cpp.execution | 6 + ...tion-expression-with-pointer-capture.cpp.output | 7 + ...-expression-with-repeated-capture.cpp.execution | 6 + ...ion-expression-with-repeated-capture.cpp.output | 7 + .../apple-clang-14/mixed-hello.cpp.execution | 1 + .../apple-clang-14/mixed-hello.cpp.output | 0 .../mixed-increment-decrement.cpp.execution | 2 + .../mixed-increment-decrement.cpp.output | 0 ...ation-safety-3-contract-violation.cpp.execution | 1 + ...lization-safety-3-contract-violation.cpp.output | 0 .../mixed-initialization-safety-3.cpp.execution | 1 + .../mixed-initialization-safety-3.cpp.output | 0 .../mixed-inspect-templates.cpp.execution | 8 + .../mixed-inspect-templates.cpp.output | 0 .../mixed-inspect-values-2.cpp.execution | 5 + .../mixed-inspect-values-2.cpp.output | 0 .../mixed-inspect-values.cpp.execution | 12 + .../apple-clang-14/mixed-inspect-values.cpp.output | 0 ...-with-typeof-of-template-arg-list.cpp.execution | 0 ...ect-with-typeof-of-template-arg-list.cpp.output | 0 .../mixed-intro-example-three-loops.cpp.execution | 7 + .../mixed-intro-example-three-loops.cpp.output | 0 ...tro-for-with-counter-include-last.cpp.execution | 5 + ...-intro-for-with-counter-include-last.cpp.output | 0 ...ifetime-safety-and-null-contracts.cpp.execution | 1 + ...d-lifetime-safety-and-null-contracts.cpp.output | 0 ...ed-lifetime-safety-pointer-init-4.cpp.execution | 1 + ...mixed-lifetime-safety-pointer-init-4.cpp.output | 0 .../mixed-multiple-return-values.cpp.execution | 2 + .../mixed-multiple-return-values.cpp.output | 0 .../mixed-out-destruction.cpp.execution | 21 + .../mixed-out-destruction.cpp.output | 0 ...xed-parameter-passing-generic-out.cpp.execution | 2 + .../mixed-parameter-passing-generic-out.cpp.output | 0 ...ed-parameter-passing-with-forward.cpp.execution | 0 ...mixed-parameter-passing-with-forward.cpp.output | 0 .../mixed-parameter-passing.cpp.execution | 0 .../mixed-parameter-passing.cpp.output | 0 ...mixed-postexpression-with-capture.cpp.execution | 2 + .../mixed-postexpression-with-capture.cpp.output | 0 ...tfix-expression-custom-formatting.cpp.execution | 0 ...postfix-expression-custom-formatting.cpp.output | 0 .../mixed-string-interpolation.cpp.execution | 17 + .../mixed-string-interpolation.cpp.output | 0 .../apple-clang-14/mixed-test-parens.cpp.execution | 1 + .../apple-clang-14/mixed-test-parens.cpp.output | 0 .../mixed-type-safety-1.cpp.execution | 6 + .../apple-clang-14/mixed-type-safety-1.cpp.output | 0 ...-ufcs-multiple-template-arguments.cpp.execution | 2 + ...xed-ufcs-multiple-template-arguments.cpp.output | 0 .../pure2-bounds-safety-span.cpp.execution | 3 + .../pure2-bounds-safety-span.cpp.output | 0 .../pure2-break-continue.cpp.execution | 26 + .../apple-clang-14/pure2-break-continue.cpp.output | 0 ...bugfix-for-assign-expression-list.cpp.execution | 0 ...e2-bugfix-for-assign-expression-list.cpp.output | 0 ...re2-bugfix-for-discard-precedence.cpp.execution | 0 .../pure2-bugfix-for-discard-precedence.cpp.output | 0 .../pure2-bugfix-for-max-munch.cpp.execution | 0 .../pure2-bugfix-for-max-munch.cpp.output | 0 ...ix-for-memberwise-base-assignment.cpp.execution | 2 + ...ugfix-for-memberwise-base-assignment.cpp.output | 0 ...-name-lookup-and-value-decoration.cpp.execution | 0 ...for-name-lookup-and-value-decoration.cpp.output | 0 ...for-non-local-function-expression.cpp.execution | 0 ...ix-for-non-local-function-expression.cpp.output | 0 ...gfix-for-non-local-initialization.cpp.execution | 0 ...-bugfix-for-non-local-initialization.cpp.output | 0 ...r-optional-template-argument-list.cpp.execution | 0 ...-for-optional-template-argument-list.cpp.output | 0 ...res-clause-in-forward-declaration.cpp.execution | 0 ...quires-clause-in-forward-declaration.cpp.output | 0 ...use-unbraced-function-initializer.cpp.execution | 0 ...clause-unbraced-function-initializer.cpp.output | 0 ...ure2-bugfix-for-template-argument.cpp.execution | 1 + .../pure2-bugfix-for-template-argument.cpp.output | 0 .../pure2-bugfix-for-ufcs-arguments.cpp.execution | 4 + .../pure2-bugfix-for-ufcs-arguments.cpp.output | 0 ...pure2-bugfix-for-ufcs-name-lookup.cpp.execution | 0 .../pure2-bugfix-for-ufcs-name-lookup.cpp.output | 0 .../pure2-bugfix-for-ufcs-noexcept.cpp.execution | 0 .../pure2-bugfix-for-ufcs-noexcept.cpp.output | 0 .../pure2-bugfix-for-ufcs-sfinae.cpp.execution | 0 .../pure2-bugfix-for-ufcs-sfinae.cpp.output | 0 ...-for-unbraced-function-expression.cpp.execution | 0 ...fix-for-unbraced-function-expression.cpp.output | 0 ...ure2-bugfix-for-variable-template.cpp.execution | 0 .../pure2-bugfix-for-variable-template.cpp.output | 0 .../pure2-chained-comparisons.cpp.execution | 27 + .../pure2-chained-comparisons.cpp.output | 0 .../pure2-concept-definition.cpp.execution | 0 .../pure2-concept-definition.cpp.output | 0 .../apple-clang-14/pure2-contracts.cpp.execution | 3 + .../apple-clang-14/pure2-contracts.cpp.output | 0 ...ulted-comparisons-and-final-types.cpp.execution | 1 + ...efaulted-comparisons-and-final-types.cpp.output | 0 .../apple-clang-14/pure2-enum.cpp.execution | 29 + .../apple-clang-14/pure2-enum.cpp.output | 0 .../pure2-for-loop-range-with-lambda.cpp.execution | 1 + .../pure2-for-loop-range-with-lambda.cpp.output | 0 .../pure2-forward-return.cpp.execution | 2 + .../apple-clang-14/pure2-forward-return.cpp.output | 0 ...nction-multiple-forward-arguments.cpp.execution | 1 + ...-function-multiple-forward-arguments.cpp.output | 0 .../apple-clang-14/pure2-hello.cpp.execution | 1 + .../apple-clang-14/pure2-hello.cpp.output | 0 ...nitialization-safety-with-else-if.cpp.execution | 1 + ...2-initialization-safety-with-else-if.cpp.output | 0 ...n-generic-function-multiple-types.cpp.execution | 8 + ...n-in-generic-function-multiple-types.cpp.output | 0 ...ssion-with-as-in-generic-function.cpp.execution | 3 + ...pression-with-as-in-generic-function.cpp.output | 0 ...allback-with-variant-any-optional.cpp.execution | 11 + ...t-fallback-with-variant-any-optional.cpp.output | 0 ...d-empty-with-variant-any-optional.cpp.execution | 17 + ...void-empty-with-variant-any-optional.cpp.output | 0 .../pure2-interpolation.cpp.execution | 12 + .../apple-clang-14/pure2-interpolation.cpp.output | 0 .../pure2-intro-example-hello-2022.cpp.execution | 2 + .../pure2-intro-example-hello-2022.cpp.output | 0 .../pure2-intro-example-three-loops.cpp.execution | 8 + .../pure2-intro-example-three-loops.cpp.output | 0 ...parameter-across-unnamed-function.cpp.execution | 1 + ...up-parameter-across-unnamed-function.cpp.output | 0 .../apple-clang-14/pure2-main-args.cpp.execution | 2 + .../apple-clang-14/pure2-main-args.cpp.output | 0 .../pure2-more-wildcards.cpp.execution | 2 + .../apple-clang-14/pure2-more-wildcards.cpp.output | 0 .../apple-clang-14/pure2-print.cpp.execution | 2 + .../apple-clang-14/pure2-print.cpp.output | 0 ...-string-literal-and-interpolation.cpp.execution | 17 + ...raw-string-literal-and-interpolation.cpp.output | 0 .../pure2-repeated-call.cpp.execution | 1 + .../apple-clang-14/pure2-repeated-call.cpp.output | 0 .../pure2-requires-clauses.cpp.execution | 1 + .../pure2-requires-clauses.cpp.output | 0 .../pure2-statement-scope-parameters.cpp.execution | 2 + .../pure2-statement-scope-parameters.cpp.output | 0 .../pure2-stdio-with-raii.cpp.execution | 0 .../pure2-stdio-with-raii.cpp.output | 0 .../apple-clang-14/pure2-stdio.cpp.execution | 0 .../apple-clang-14/pure2-stdio.cpp.output | 0 ...esize-rightshift-and-rightshifteq.cpp.execution | 1 + ...nthesize-rightshift-and-rightshifteq.cpp.output | 0 .../pure2-template-parameter-lists.cpp.execution | 4 + .../pure2-template-parameter-lists.cpp.output | 0 .../pure2-type-and-namespace-aliases.cpp.output | 26 + .../pure2-type-safety-1.cpp.execution | 9 + .../apple-clang-14/pure2-type-safety-1.cpp.output | 0 ...-safety-2-with-inspect-expression.cpp.execution | 8 + ...ype-safety-2-with-inspect-expression.cpp.output | 0 .../pure2-types-basics.cpp.execution | 27 + .../apple-clang-14/pure2-types-basics.cpp.output | 0 .../pure2-types-down-upcast.cpp.execution | 24 + .../pure2-types-down-upcast.cpp.output | 0 .../pure2-types-inheritance.cpp.execution | 5 + .../pure2-types-inheritance.cpp.output | 0 ...es-order-independence-and-nesting.cpp.execution | 5 + ...types-order-independence-and-nesting.cpp.output | 0 ...types-ordering-via-meta-functions.cpp.execution | 1 + ...e2-types-ordering-via-meta-functions.cpp.output | 0 ...smf-and-that-1-provide-everything.cpp.execution | 8 + ...es-smf-and-that-1-provide-everything.cpp.output | 0 ...-provide-mvconstruct-and-cpassign.cpp.execution | 8 + ...t-2-provide-mvconstruct-and-cpassign.cpp.output | 0 ...-provide-mvconstruct-and-mvassign.cpp.execution | 8 + ...t-3-provide-mvconstruct-and-mvassign.cpp.output | 0 ...t-4-provide-cpassign-and-mvassign.cpp.execution | 8 + ...that-4-provide-cpassign-and-mvassign.cpp.output | 0 ...-provide-nothing-but-general-case.cpp.execution | 8 + ...t-5-provide-nothing-but-general-case.cpp.output | 0 .../pure2-types-that-parameters.cpp.execution | 7 + .../pure2-types-that-parameters.cpp.output | 0 ...es-value-types-via-meta-functions.cpp.execution | 1 + ...types-value-types-via-meta-functions.cpp.output | 0 ...2-ufcs-member-access-and-chaining.cpp.execution | 0 ...ure2-ufcs-member-access-and-chaining.cpp.output | 0 .../apple-clang-14/pure2-union.cpp.execution | 4 + .../apple-clang-14/pure2-union.cpp.output | 0 .../apple-clang-14/pure2-variadics.cpp.execution | 6 + .../apple-clang-14/pure2-variadics.cpp.output | 0 .../pure2-various-string-literals.cpp.execution | 0 .../pure2-various-string-literals.cpp.output | 0 .../apple-clang-14/run-tests-apple-clang.sh | 24 + .../test-results/apple-clang-14/xyzzy | 1 + .../test-results/clang-12/clang-version.output | 4 + .../clang-12/mixed-allcpp1-hello.cpp.execution | 1 + .../clang-12/mixed-allcpp1-hello.cpp.output | 0 .../mixed-as-for-variant-20-types.cpp.execution | 60 + .../mixed-as-for-variant-20-types.cpp.output | 0 .../clang-12/mixed-bounds-check.cpp.execution | 1 + .../clang-12/mixed-bounds-check.cpp.output | 0 ...mixed-bounds-safety-with-assert-2.cpp.execution | 5 + .../mixed-bounds-safety-with-assert-2.cpp.output | 0 .../mixed-bounds-safety-with-assert.cpp.execution | 1 + .../mixed-bounds-safety-with-assert.cpp.output | 0 ...ix-for-cpp2-comment-cpp1-sequence.cpp.execution | 0 ...ugfix-for-cpp2-comment-cpp1-sequence.cpp.output | 0 .../mixed-bugfix-for-literal-as-nttp.cpp.execution | 0 .../mixed-bugfix-for-literal-as-nttp.cpp.output | 0 .../mixed-bugfix-for-ufcs-non-local.cpp.output | 118 + ...in-expressions-and-postconditions.cpp.execution | 4 + ...es-in-expressions-and-postconditions.cpp.output | 0 .../mixed-fixed-type-aliases.cpp.execution | 4 + .../clang-12/mixed-fixed-type-aliases.cpp.output | 0 .../clang-12/mixed-float-literals.cpp.execution | 72 + .../clang-12/mixed-float-literals.cpp.output | 0 .../clang-12/mixed-forwarding.cpp.execution | 12 + .../clang-12/mixed-forwarding.cpp.output | 0 ...ction-expression-and-std-for-each.cpp.execution | 2 + ...function-expression-and-std-for-each.cpp.output | 0 ...-std-ranges-for-each-with-capture.cpp.execution | 4 + ...and-std-ranges-for-each-with-capture.cpp.output | 0 ...xpression-and-std-ranges-for-each.cpp.execution | 4 + ...n-expression-and-std-ranges-for-each.cpp.output | 0 ...n-expression-with-pointer-capture.cpp.execution | 6 + ...tion-expression-with-pointer-capture.cpp.output | 0 ...-expression-with-repeated-capture.cpp.execution | 6 + ...ion-expression-with-repeated-capture.cpp.output | 0 .../clang-12/mixed-hello.cpp.execution | 1 + .../test-results/clang-12/mixed-hello.cpp.output | 0 .../mixed-increment-decrement.cpp.execution | 2 + .../clang-12/mixed-increment-decrement.cpp.output | 0 ...ation-safety-3-contract-violation.cpp.execution | 1 + ...lization-safety-3-contract-violation.cpp.output | 0 .../mixed-initialization-safety-3.cpp.execution | 1 + .../mixed-initialization-safety-3.cpp.output | 0 .../clang-12/mixed-inspect-templates.cpp.execution | 8 + .../clang-12/mixed-inspect-templates.cpp.output | 0 .../clang-12/mixed-inspect-values-2.cpp.execution | 5 + .../clang-12/mixed-inspect-values-2.cpp.output | 0 .../clang-12/mixed-inspect-values.cpp.execution | 12 + .../clang-12/mixed-inspect-values.cpp.output | 0 ...-with-typeof-of-template-arg-list.cpp.execution | 0 ...ect-with-typeof-of-template-arg-list.cpp.output | 0 .../mixed-intro-example-three-loops.cpp.execution | 7 + .../mixed-intro-example-three-loops.cpp.output | 0 ...tro-for-with-counter-include-last.cpp.execution | 5 + ...-intro-for-with-counter-include-last.cpp.output | 0 ...ifetime-safety-and-null-contracts.cpp.execution | 1 + ...d-lifetime-safety-and-null-contracts.cpp.output | 0 ...ed-lifetime-safety-pointer-init-4.cpp.execution | 1 + ...mixed-lifetime-safety-pointer-init-4.cpp.output | 0 .../mixed-multiple-return-values.cpp.execution | 2 + .../mixed-multiple-return-values.cpp.output | 0 .../clang-12/mixed-out-destruction.cpp.execution | 21 + .../clang-12/mixed-out-destruction.cpp.output | 0 ...xed-parameter-passing-generic-out.cpp.execution | 2 + .../mixed-parameter-passing-generic-out.cpp.output | 0 ...ed-parameter-passing-with-forward.cpp.execution | 0 ...mixed-parameter-passing-with-forward.cpp.output | 0 .../clang-12/mixed-parameter-passing.cpp.execution | 0 .../clang-12/mixed-parameter-passing.cpp.output | 0 ...mixed-postexpression-with-capture.cpp.execution | 2 + .../mixed-postexpression-with-capture.cpp.output | 0 ...tfix-expression-custom-formatting.cpp.execution | 0 ...postfix-expression-custom-formatting.cpp.output | 0 .../mixed-string-interpolation.cpp.execution | 17 + .../clang-12/mixed-string-interpolation.cpp.output | 0 .../clang-12/mixed-test-parens.cpp.execution | 1 + .../clang-12/mixed-test-parens.cpp.output | 0 .../clang-12/mixed-type-safety-1.cpp.execution | 6 + .../clang-12/mixed-type-safety-1.cpp.output | 0 ...-ufcs-multiple-template-arguments.cpp.execution | 2 + ...xed-ufcs-multiple-template-arguments.cpp.output | 0 .../pure2-bounds-safety-span.cpp.execution | 3 + .../clang-12/pure2-bounds-safety-span.cpp.output | 0 .../clang-12/pure2-break-continue.cpp.execution | 26 + .../clang-12/pure2-break-continue.cpp.output | 0 ...bugfix-for-assign-expression-list.cpp.execution | 0 ...e2-bugfix-for-assign-expression-list.cpp.output | 0 ...re2-bugfix-for-discard-precedence.cpp.execution | 0 .../pure2-bugfix-for-discard-precedence.cpp.output | 0 .../pure2-bugfix-for-max-munch.cpp.execution | 0 .../clang-12/pure2-bugfix-for-max-munch.cpp.output | 0 ...ix-for-memberwise-base-assignment.cpp.execution | 2 + ...ugfix-for-memberwise-base-assignment.cpp.output | 0 ...-name-lookup-and-value-decoration.cpp.execution | 0 ...for-name-lookup-and-value-decoration.cpp.output | 0 ...ix-for-non-local-function-expression.cpp.output | 10 + ...gfix-for-non-local-initialization.cpp.execution | 0 ...-bugfix-for-non-local-initialization.cpp.output | 0 ...r-optional-template-argument-list.cpp.execution | 0 ...-for-optional-template-argument-list.cpp.output | 0 ...res-clause-in-forward-declaration.cpp.execution | 0 ...quires-clause-in-forward-declaration.cpp.output | 0 ...use-unbraced-function-initializer.cpp.execution | 0 ...clause-unbraced-function-initializer.cpp.output | 0 ...ure2-bugfix-for-template-argument.cpp.execution | 1 + .../pure2-bugfix-for-template-argument.cpp.output | 0 .../pure2-bugfix-for-ufcs-arguments.cpp.execution | 4 + .../pure2-bugfix-for-ufcs-arguments.cpp.output | 0 ...pure2-bugfix-for-ufcs-name-lookup.cpp.execution | 0 .../pure2-bugfix-for-ufcs-name-lookup.cpp.output | 0 .../pure2-bugfix-for-ufcs-noexcept.cpp.output | 10 + .../pure2-bugfix-for-ufcs-sfinae.cpp.output | 19 + ...-for-unbraced-function-expression.cpp.execution | 0 ...fix-for-unbraced-function-expression.cpp.output | 0 ...ure2-bugfix-for-variable-template.cpp.execution | 0 .../pure2-bugfix-for-variable-template.cpp.output | 0 .../pure2-chained-comparisons.cpp.execution | 27 + .../clang-12/pure2-chained-comparisons.cpp.output | 0 .../pure2-concept-definition.cpp.execution | 0 .../clang-12/pure2-concept-definition.cpp.output | 0 .../clang-12/pure2-contracts.cpp.execution | 3 + .../clang-12/pure2-contracts.cpp.output | 0 ...ulted-comparisons-and-final-types.cpp.execution | 1 + ...efaulted-comparisons-and-final-types.cpp.output | 0 .../test-results/clang-12/pure2-enum.cpp.execution | 29 + .../test-results/clang-12/pure2-enum.cpp.output | 0 .../pure2-for-loop-range-with-lambda.cpp.execution | 1 + .../pure2-for-loop-range-with-lambda.cpp.output | 0 .../clang-12/pure2-forward-return.cpp.execution | 2 + .../clang-12/pure2-forward-return.cpp.output | 0 ...nction-multiple-forward-arguments.cpp.execution | 1 + ...-function-multiple-forward-arguments.cpp.output | 0 .../clang-12/pure2-hello.cpp.execution | 1 + .../test-results/clang-12/pure2-hello.cpp.output | 0 ...nitialization-safety-with-else-if.cpp.execution | 1 + ...2-initialization-safety-with-else-if.cpp.output | 0 ...n-generic-function-multiple-types.cpp.execution | 8 + ...n-in-generic-function-multiple-types.cpp.output | 0 ...ssion-with-as-in-generic-function.cpp.execution | 3 + ...pression-with-as-in-generic-function.cpp.output | 0 ...allback-with-variant-any-optional.cpp.execution | 11 + ...t-fallback-with-variant-any-optional.cpp.output | 0 ...d-empty-with-variant-any-optional.cpp.execution | 17 + ...void-empty-with-variant-any-optional.cpp.output | 0 .../clang-12/pure2-interpolation.cpp.execution | 12 + .../clang-12/pure2-interpolation.cpp.output | 0 .../pure2-intro-example-hello-2022.cpp.execution | 2 + .../pure2-intro-example-hello-2022.cpp.output | 0 .../pure2-intro-example-three-loops.cpp.execution | 8 + .../pure2-intro-example-three-loops.cpp.output | 0 ...parameter-across-unnamed-function.cpp.execution | 1 + ...up-parameter-across-unnamed-function.cpp.output | 0 .../clang-12/pure2-main-args.cpp.execution | 2 + .../clang-12/pure2-main-args.cpp.output | 0 .../clang-12/pure2-more-wildcards.cpp.execution | 2 + .../clang-12/pure2-more-wildcards.cpp.output | 0 .../clang-12/pure2-print.cpp.execution | 2 + .../test-results/clang-12/pure2-print.cpp.output | 0 ...-string-literal-and-interpolation.cpp.execution | 17 + ...raw-string-literal-and-interpolation.cpp.output | 0 .../clang-12/pure2-repeated-call.cpp.execution | 1 + .../clang-12/pure2-repeated-call.cpp.output | 0 .../clang-12/pure2-requires-clauses.cpp.execution | 1 + .../clang-12/pure2-requires-clauses.cpp.output | 0 .../pure2-statement-scope-parameters.cpp.execution | 2 + .../pure2-statement-scope-parameters.cpp.output | 0 .../clang-12/pure2-stdio-with-raii.cpp.execution | 0 .../clang-12/pure2-stdio-with-raii.cpp.output | 0 .../clang-12/pure2-stdio.cpp.execution | 0 .../test-results/clang-12/pure2-stdio.cpp.output | 0 ...esize-rightshift-and-rightshifteq.cpp.execution | 1 + ...nthesize-rightshift-and-rightshifteq.cpp.output | 0 .../pure2-template-parameter-lists.cpp.execution | 4 + .../pure2-template-parameter-lists.cpp.output | 0 .../pure2-type-and-namespace-aliases.cpp.execution | 2 + .../pure2-type-and-namespace-aliases.cpp.output | 0 .../clang-12/pure2-type-safety-1.cpp.execution | 9 + .../clang-12/pure2-type-safety-1.cpp.output | 0 ...-safety-2-with-inspect-expression.cpp.execution | 8 + ...ype-safety-2-with-inspect-expression.cpp.output | 0 .../clang-12/pure2-types-basics.cpp.execution | 27 + .../clang-12/pure2-types-basics.cpp.output | 0 .../clang-12/pure2-types-down-upcast.cpp.execution | 24 + .../clang-12/pure2-types-down-upcast.cpp.output | 0 .../clang-12/pure2-types-inheritance.cpp.execution | 5 + .../clang-12/pure2-types-inheritance.cpp.output | 0 ...es-order-independence-and-nesting.cpp.execution | 5 + ...types-order-independence-and-nesting.cpp.output | 0 ...types-ordering-via-meta-functions.cpp.execution | 1 + ...e2-types-ordering-via-meta-functions.cpp.output | 0 ...smf-and-that-1-provide-everything.cpp.execution | 8 + ...es-smf-and-that-1-provide-everything.cpp.output | 0 ...-provide-mvconstruct-and-cpassign.cpp.execution | 8 + ...t-2-provide-mvconstruct-and-cpassign.cpp.output | 0 ...-provide-mvconstruct-and-mvassign.cpp.execution | 8 + ...t-3-provide-mvconstruct-and-mvassign.cpp.output | 0 ...t-4-provide-cpassign-and-mvassign.cpp.execution | 8 + ...that-4-provide-cpassign-and-mvassign.cpp.output | 0 ...-provide-nothing-but-general-case.cpp.execution | 8 + ...t-5-provide-nothing-but-general-case.cpp.output | 0 .../pure2-types-that-parameters.cpp.execution | 7 + .../pure2-types-that-parameters.cpp.output | 0 ...es-value-types-via-meta-functions.cpp.execution | 1 + ...types-value-types-via-meta-functions.cpp.output | 0 ...2-ufcs-member-access-and-chaining.cpp.execution | 0 ...ure2-ufcs-member-access-and-chaining.cpp.output | 0 .../clang-12/pure2-union.cpp.execution | 4 + .../test-results/clang-12/pure2-union.cpp.output | 0 .../clang-12/pure2-variadics.cpp.execution | 6 + .../clang-12/pure2-variadics.cpp.output | 0 .../pure2-various-string-literals.cpp.execution | 0 .../pure2-various-string-literals.cpp.output | 0 .../test-results/clang-12/run-tests-clang-12.sh | 24 + .../regression-tests/test-results/clang-12/xyzzy | 1 + .../mixed-bugfix-for-ufcs-non-local.cpp.execution | 0 .../mixed-bugfix-for-ufcs-non-local.cpp.output | 0 .../pure2-bugfix-for-ufcs-arguments.cpp.execution | 4 + .../pure2-bugfix-for-ufcs-arguments.cpp.output | 0 ...pure2-bugfix-for-ufcs-name-lookup.cpp.execution | 0 .../pure2-bugfix-for-ufcs-name-lookup.cpp.output | 0 .../pure2-bugfix-for-ufcs-noexcept.cpp.execution | 0 .../pure2-bugfix-for-ufcs-noexcept.cpp.output | 0 .../pure2-bugfix-for-ufcs-sfinae.cpp.execution | 0 .../pure2-bugfix-for-ufcs-sfinae.cpp.output | 0 .../test-results/gcc-10/gcc-version.output | 5 + .../gcc-10/mixed-allcpp1-hello.cpp.execution | 1 + .../gcc-10/mixed-allcpp1-hello.cpp.output | 0 .../mixed-as-for-variant-20-types.cpp.execution | 60 + .../mixed-as-for-variant-20-types.cpp.output | 0 .../gcc-10/mixed-bounds-check.cpp.execution | 1 + .../gcc-10/mixed-bounds-check.cpp.output | 0 ...mixed-bounds-safety-with-assert-2.cpp.execution | 5 + .../mixed-bounds-safety-with-assert-2.cpp.output | 0 .../mixed-bounds-safety-with-assert.cpp.execution | 1 + .../mixed-bounds-safety-with-assert.cpp.output | 0 ...ix-for-cpp2-comment-cpp1-sequence.cpp.execution | 0 ...ugfix-for-cpp2-comment-cpp1-sequence.cpp.output | 0 .../mixed-bugfix-for-literal-as-nttp.cpp.execution | 0 .../mixed-bugfix-for-literal-as-nttp.cpp.output | 0 .../mixed-bugfix-for-ufcs-non-local.cpp.execution | 0 .../mixed-bugfix-for-ufcs-non-local.cpp.output | 0 ...in-expressions-and-postconditions.cpp.execution | 4 + ...es-in-expressions-and-postconditions.cpp.output | 0 .../gcc-10/mixed-fixed-type-aliases.cpp.execution | 4 + .../gcc-10/mixed-fixed-type-aliases.cpp.output | 0 .../gcc-10/mixed-float-literals.cpp.execution | 72 + .../gcc-10/mixed-float-literals.cpp.output | 0 .../gcc-10/mixed-forwarding.cpp.execution | 12 + .../gcc-10/mixed-forwarding.cpp.output | 0 ...ction-expression-and-std-for-each.cpp.execution | 2 + ...function-expression-and-std-for-each.cpp.output | 0 ...-std-ranges-for-each-with-capture.cpp.execution | 4 + ...and-std-ranges-for-each-with-capture.cpp.output | 0 ...xpression-and-std-ranges-for-each.cpp.execution | 4 + ...n-expression-and-std-ranges-for-each.cpp.output | 0 ...n-expression-with-pointer-capture.cpp.execution | 6 + ...tion-expression-with-pointer-capture.cpp.output | 0 ...-expression-with-repeated-capture.cpp.execution | 6 + ...ion-expression-with-repeated-capture.cpp.output | 0 .../test-results/gcc-10/mixed-hello.cpp.execution | 1 + .../test-results/gcc-10/mixed-hello.cpp.output | 0 .../gcc-10/mixed-increment-decrement.cpp.output | 16 + ...ation-safety-3-contract-violation.cpp.execution | 1 + ...lization-safety-3-contract-violation.cpp.output | 0 .../mixed-initialization-safety-3.cpp.execution | 1 + .../mixed-initialization-safety-3.cpp.output | 0 .../gcc-10/mixed-inspect-templates.cpp.execution | 8 + .../gcc-10/mixed-inspect-templates.cpp.output | 0 .../gcc-10/mixed-inspect-values-2.cpp.execution | 5 + .../gcc-10/mixed-inspect-values-2.cpp.output | 0 .../gcc-10/mixed-inspect-values.cpp.execution | 12 + .../gcc-10/mixed-inspect-values.cpp.output | 0 ...-with-typeof-of-template-arg-list.cpp.execution | 0 ...ect-with-typeof-of-template-arg-list.cpp.output | 0 .../mixed-intro-example-three-loops.cpp.execution | 7 + .../mixed-intro-example-three-loops.cpp.output | 0 ...tro-for-with-counter-include-last.cpp.execution | 5 + ...-intro-for-with-counter-include-last.cpp.output | 0 ...ifetime-safety-and-null-contracts.cpp.execution | 1 + ...d-lifetime-safety-and-null-contracts.cpp.output | 0 ...ed-lifetime-safety-pointer-init-4.cpp.execution | 1 + ...mixed-lifetime-safety-pointer-init-4.cpp.output | 0 .../mixed-multiple-return-values.cpp.execution | 2 + .../gcc-10/mixed-multiple-return-values.cpp.output | 0 .../gcc-10/mixed-out-destruction.cpp.execution | 21 + .../gcc-10/mixed-out-destruction.cpp.output | 0 ...xed-parameter-passing-generic-out.cpp.execution | 2 + .../mixed-parameter-passing-generic-out.cpp.output | 0 ...ed-parameter-passing-with-forward.cpp.execution | 0 ...mixed-parameter-passing-with-forward.cpp.output | 0 .../gcc-10/mixed-parameter-passing.cpp.execution | 0 .../gcc-10/mixed-parameter-passing.cpp.output | 0 ...mixed-postexpression-with-capture.cpp.execution | 2 + .../mixed-postexpression-with-capture.cpp.output | 0 ...tfix-expression-custom-formatting.cpp.execution | 0 ...postfix-expression-custom-formatting.cpp.output | 0 .../mixed-string-interpolation.cpp.execution | 17 + .../gcc-10/mixed-string-interpolation.cpp.output | 0 .../gcc-10/mixed-test-parens.cpp.execution | 1 + .../gcc-10/mixed-test-parens.cpp.output | 0 .../gcc-10/mixed-type-safety-1.cpp.execution | 6 + .../gcc-10/mixed-type-safety-1.cpp.output | 0 ...-ufcs-multiple-template-arguments.cpp.execution | 2 + ...xed-ufcs-multiple-template-arguments.cpp.output | 0 .../gcc-10/pure2-bounds-safety-span.cpp.execution | 3 + .../gcc-10/pure2-bounds-safety-span.cpp.output | 0 .../gcc-10/pure2-break-continue.cpp.execution | 26 + .../gcc-10/pure2-break-continue.cpp.output | 0 ...bugfix-for-assign-expression-list.cpp.execution | 0 ...e2-bugfix-for-assign-expression-list.cpp.output | 0 ...re2-bugfix-for-discard-precedence.cpp.execution | 0 .../pure2-bugfix-for-discard-precedence.cpp.output | 0 .../pure2-bugfix-for-max-munch.cpp.execution | 0 .../gcc-10/pure2-bugfix-for-max-munch.cpp.output | 0 ...ix-for-memberwise-base-assignment.cpp.execution | 2 + ...ugfix-for-memberwise-base-assignment.cpp.output | 0 ...-name-lookup-and-value-decoration.cpp.execution | 0 ...for-name-lookup-and-value-decoration.cpp.output | 0 ...for-non-local-function-expression.cpp.execution | 0 ...ix-for-non-local-function-expression.cpp.output | 1 + ...gfix-for-non-local-initialization.cpp.execution | 0 ...-bugfix-for-non-local-initialization.cpp.output | 0 ...r-optional-template-argument-list.cpp.execution | 0 ...-for-optional-template-argument-list.cpp.output | 0 ...quires-clause-in-forward-declaration.cpp.output | 17 + ...use-unbraced-function-initializer.cpp.execution | 0 ...clause-unbraced-function-initializer.cpp.output | 0 ...ure2-bugfix-for-template-argument.cpp.execution | 1 + .../pure2-bugfix-for-template-argument.cpp.output | 0 .../pure2-bugfix-for-ufcs-arguments.cpp.execution | 4 + .../pure2-bugfix-for-ufcs-arguments.cpp.output | 0 ...pure2-bugfix-for-ufcs-name-lookup.cpp.execution | 0 .../pure2-bugfix-for-ufcs-name-lookup.cpp.output | 0 .../pure2-bugfix-for-ufcs-noexcept.cpp.output | 2 + .../pure2-bugfix-for-ufcs-sfinae.cpp.execution | 0 .../gcc-10/pure2-bugfix-for-ufcs-sfinae.cpp.output | 0 ...-for-unbraced-function-expression.cpp.execution | 0 ...fix-for-unbraced-function-expression.cpp.output | 0 ...ure2-bugfix-for-variable-template.cpp.execution | 0 .../pure2-bugfix-for-variable-template.cpp.output | 0 .../gcc-10/pure2-chained-comparisons.cpp.execution | 27 + .../gcc-10/pure2-chained-comparisons.cpp.output | 0 .../gcc-10/pure2-concept-definition.cpp.execution | 0 .../gcc-10/pure2-concept-definition.cpp.output | 0 .../gcc-10/pure2-contracts.cpp.execution | 3 + .../test-results/gcc-10/pure2-contracts.cpp.output | 0 ...ulted-comparisons-and-final-types.cpp.execution | 1 + ...efaulted-comparisons-and-final-types.cpp.output | 0 .../test-results/gcc-10/pure2-enum.cpp.execution | 29 + .../test-results/gcc-10/pure2-enum.cpp.output | 0 .../pure2-for-loop-range-with-lambda.cpp.execution | 1 + .../pure2-for-loop-range-with-lambda.cpp.output | 0 .../gcc-10/pure2-forward-return.cpp.execution | 2 + .../gcc-10/pure2-forward-return.cpp.output | 0 ...nction-multiple-forward-arguments.cpp.execution | 1 + ...-function-multiple-forward-arguments.cpp.output | 0 .../test-results/gcc-10/pure2-hello.cpp.execution | 1 + .../test-results/gcc-10/pure2-hello.cpp.output | 0 ...nitialization-safety-with-else-if.cpp.execution | 1 + ...2-initialization-safety-with-else-if.cpp.output | 0 ...n-generic-function-multiple-types.cpp.execution | 8 + ...n-in-generic-function-multiple-types.cpp.output | 0 ...ssion-with-as-in-generic-function.cpp.execution | 3 + ...pression-with-as-in-generic-function.cpp.output | 0 ...allback-with-variant-any-optional.cpp.execution | 11 + ...t-fallback-with-variant-any-optional.cpp.output | 0 ...d-empty-with-variant-any-optional.cpp.execution | 17 + ...void-empty-with-variant-any-optional.cpp.output | 0 .../gcc-10/pure2-interpolation.cpp.execution | 12 + .../gcc-10/pure2-interpolation.cpp.output | 0 .../pure2-intro-example-hello-2022.cpp.execution | 2 + .../pure2-intro-example-hello-2022.cpp.output | 0 .../pure2-intro-example-three-loops.cpp.execution | 8 + .../pure2-intro-example-three-loops.cpp.output | 0 ...parameter-across-unnamed-function.cpp.execution | 1 + ...up-parameter-across-unnamed-function.cpp.output | 0 .../gcc-10/pure2-main-args.cpp.execution | 2 + .../test-results/gcc-10/pure2-main-args.cpp.output | 0 .../gcc-10/pure2-more-wildcards.cpp.execution | 2 + .../gcc-10/pure2-more-wildcards.cpp.output | 0 .../test-results/gcc-10/pure2-print.cpp.output | 17 + ...-string-literal-and-interpolation.cpp.execution | 17 + ...raw-string-literal-and-interpolation.cpp.output | 0 .../gcc-10/pure2-repeated-call.cpp.execution | 1 + .../gcc-10/pure2-repeated-call.cpp.output | 0 .../gcc-10/pure2-requires-clauses.cpp.execution | 1 + .../gcc-10/pure2-requires-clauses.cpp.output | 3 + .../pure2-statement-scope-parameters.cpp.execution | 2 + .../pure2-statement-scope-parameters.cpp.output | 0 .../gcc-10/pure2-stdio-with-raii.cpp.execution | 0 .../gcc-10/pure2-stdio-with-raii.cpp.output | 0 .../test-results/gcc-10/pure2-stdio.cpp.execution | 0 .../test-results/gcc-10/pure2-stdio.cpp.output | 0 ...esize-rightshift-and-rightshifteq.cpp.execution | 1 + ...nthesize-rightshift-and-rightshifteq.cpp.output | 0 .../pure2-template-parameter-lists.cpp.execution | 4 + .../pure2-template-parameter-lists.cpp.output | 0 .../pure2-type-and-namespace-aliases.cpp.execution | 2 + .../pure2-type-and-namespace-aliases.cpp.output | 0 .../gcc-10/pure2-type-safety-1.cpp.execution | 9 + .../gcc-10/pure2-type-safety-1.cpp.output | 0 ...-safety-2-with-inspect-expression.cpp.execution | 8 + ...ype-safety-2-with-inspect-expression.cpp.output | 0 .../gcc-10/pure2-types-basics.cpp.execution | 27 + .../gcc-10/pure2-types-basics.cpp.output | 0 .../gcc-10/pure2-types-down-upcast.cpp.execution | 24 + .../gcc-10/pure2-types-down-upcast.cpp.output | 0 .../gcc-10/pure2-types-inheritance.cpp.execution | 5 + .../gcc-10/pure2-types-inheritance.cpp.output | 0 ...es-order-independence-and-nesting.cpp.execution | 5 + ...types-order-independence-and-nesting.cpp.output | 0 ...types-ordering-via-meta-functions.cpp.execution | 1 + ...e2-types-ordering-via-meta-functions.cpp.output | 0 ...smf-and-that-1-provide-everything.cpp.execution | 8 + ...es-smf-and-that-1-provide-everything.cpp.output | 0 ...-provide-mvconstruct-and-cpassign.cpp.execution | 8 + ...t-2-provide-mvconstruct-and-cpassign.cpp.output | 0 ...-provide-mvconstruct-and-mvassign.cpp.execution | 8 + ...t-3-provide-mvconstruct-and-mvassign.cpp.output | 0 ...t-4-provide-cpassign-and-mvassign.cpp.execution | 8 + ...that-4-provide-cpassign-and-mvassign.cpp.output | 0 ...-provide-nothing-but-general-case.cpp.execution | 8 + ...t-5-provide-nothing-but-general-case.cpp.output | 0 .../pure2-types-that-parameters.cpp.execution | 7 + .../gcc-10/pure2-types-that-parameters.cpp.output | 0 ...es-value-types-via-meta-functions.cpp.execution | 1 + ...types-value-types-via-meta-functions.cpp.output | 0 ...2-ufcs-member-access-and-chaining.cpp.execution | 0 ...ure2-ufcs-member-access-and-chaining.cpp.output | 0 .../test-results/gcc-10/pure2-union.cpp.execution | 4 + .../test-results/gcc-10/pure2-union.cpp.output | 0 .../gcc-10/pure2-variadics.cpp.execution | 6 + .../test-results/gcc-10/pure2-variadics.cpp.output | 0 .../pure2-various-string-literals.cpp.execution | 0 .../pure2-various-string-literals.cpp.output | 0 .../test-results/gcc-10/run-tests-gcc-10.sh | 24 + .../cc2/regression-tests/test-results/gcc-10/xyzzy | 1 + .../test-results/gcc-13/gcc-version.output | 5 + .../gcc-13/mixed-allcpp1-hello.cpp.execution | 1 + .../gcc-13/mixed-allcpp1-hello.cpp.output | 0 .../mixed-as-for-variant-20-types.cpp.execution | 60 + .../mixed-as-for-variant-20-types.cpp.output | 0 .../gcc-13/mixed-bounds-check.cpp.execution | 1 + .../gcc-13/mixed-bounds-check.cpp.output | 0 ...mixed-bounds-safety-with-assert-2.cpp.execution | 5 + .../mixed-bounds-safety-with-assert-2.cpp.output | 0 .../mixed-bounds-safety-with-assert.cpp.execution | 1 + .../mixed-bounds-safety-with-assert.cpp.output | 0 ...ix-for-cpp2-comment-cpp1-sequence.cpp.execution | 0 ...ugfix-for-cpp2-comment-cpp1-sequence.cpp.output | 0 .../mixed-bugfix-for-literal-as-nttp.cpp.execution | 0 .../mixed-bugfix-for-literal-as-nttp.cpp.output | 0 .../mixed-bugfix-for-ufcs-non-local.cpp.output | 41 + ...in-expressions-and-postconditions.cpp.execution | 4 + ...es-in-expressions-and-postconditions.cpp.output | 0 .../gcc-13/mixed-fixed-type-aliases.cpp.execution | 4 + .../gcc-13/mixed-fixed-type-aliases.cpp.output | 0 .../gcc-13/mixed-float-literals.cpp.execution | 72 + .../gcc-13/mixed-float-literals.cpp.output | 0 .../gcc-13/mixed-forwarding.cpp.execution | 12 + .../gcc-13/mixed-forwarding.cpp.output | 0 ...ction-expression-and-std-for-each.cpp.execution | 2 + ...function-expression-and-std-for-each.cpp.output | 0 ...-std-ranges-for-each-with-capture.cpp.execution | 4 + ...and-std-ranges-for-each-with-capture.cpp.output | 0 ...xpression-and-std-ranges-for-each.cpp.execution | 4 + ...n-expression-and-std-ranges-for-each.cpp.output | 0 ...n-expression-with-pointer-capture.cpp.execution | 6 + ...tion-expression-with-pointer-capture.cpp.output | 0 ...-expression-with-repeated-capture.cpp.execution | 6 + ...ion-expression-with-repeated-capture.cpp.output | 0 .../test-results/gcc-13/mixed-hello.cpp.execution | 1 + .../test-results/gcc-13/mixed-hello.cpp.output | 0 .../gcc-13/mixed-increment-decrement.cpp.execution | 2 + .../gcc-13/mixed-increment-decrement.cpp.output | 0 ...ation-safety-3-contract-violation.cpp.execution | 1 + ...lization-safety-3-contract-violation.cpp.output | 0 .../mixed-initialization-safety-3.cpp.execution | 1 + .../mixed-initialization-safety-3.cpp.output | 0 .../gcc-13/mixed-inspect-templates.cpp.execution | 8 + .../gcc-13/mixed-inspect-templates.cpp.output | 0 .../gcc-13/mixed-inspect-values-2.cpp.execution | 5 + .../gcc-13/mixed-inspect-values-2.cpp.output | 0 .../gcc-13/mixed-inspect-values.cpp.execution | 12 + .../gcc-13/mixed-inspect-values.cpp.output | 0 ...-with-typeof-of-template-arg-list.cpp.execution | 0 ...ect-with-typeof-of-template-arg-list.cpp.output | 0 .../mixed-intro-example-three-loops.cpp.execution | 7 + .../mixed-intro-example-three-loops.cpp.output | 0 ...tro-for-with-counter-include-last.cpp.execution | 5 + ...-intro-for-with-counter-include-last.cpp.output | 0 ...ifetime-safety-and-null-contracts.cpp.execution | 1 + ...d-lifetime-safety-and-null-contracts.cpp.output | 0 ...ed-lifetime-safety-pointer-init-4.cpp.execution | 1 + ...mixed-lifetime-safety-pointer-init-4.cpp.output | 0 .../mixed-multiple-return-values.cpp.execution | 2 + .../gcc-13/mixed-multiple-return-values.cpp.output | 0 .../gcc-13/mixed-out-destruction.cpp.execution | 21 + .../gcc-13/mixed-out-destruction.cpp.output | 0 ...xed-parameter-passing-generic-out.cpp.execution | 2 + .../mixed-parameter-passing-generic-out.cpp.output | 0 ...ed-parameter-passing-with-forward.cpp.execution | 0 ...mixed-parameter-passing-with-forward.cpp.output | 0 .../gcc-13/mixed-parameter-passing.cpp.execution | 0 .../gcc-13/mixed-parameter-passing.cpp.output | 0 ...mixed-postexpression-with-capture.cpp.execution | 2 + .../mixed-postexpression-with-capture.cpp.output | 0 ...tfix-expression-custom-formatting.cpp.execution | 0 ...postfix-expression-custom-formatting.cpp.output | 0 .../mixed-string-interpolation.cpp.execution | 17 + .../gcc-13/mixed-string-interpolation.cpp.output | 0 .../gcc-13/mixed-test-parens.cpp.execution | 1 + .../gcc-13/mixed-test-parens.cpp.output | 0 .../gcc-13/mixed-type-safety-1.cpp.execution | 6 + .../gcc-13/mixed-type-safety-1.cpp.output | 0 ...-ufcs-multiple-template-arguments.cpp.execution | 2 + ...xed-ufcs-multiple-template-arguments.cpp.output | 0 .../gcc-13/pure2-bounds-safety-span.cpp.execution | 3 + .../gcc-13/pure2-bounds-safety-span.cpp.output | 0 .../gcc-13/pure2-break-continue.cpp.execution | 26 + .../gcc-13/pure2-break-continue.cpp.output | 0 ...bugfix-for-assign-expression-list.cpp.execution | 0 ...e2-bugfix-for-assign-expression-list.cpp.output | 0 ...re2-bugfix-for-discard-precedence.cpp.execution | 0 .../pure2-bugfix-for-discard-precedence.cpp.output | 0 .../pure2-bugfix-for-empty-index.cpp.execution | 0 .../pure2-bugfix-for-max-munch.cpp.execution | 0 .../gcc-13/pure2-bugfix-for-max-munch.cpp.output | 0 ...ix-for-memberwise-base-assignment.cpp.execution | 2 + ...ugfix-for-memberwise-base-assignment.cpp.output | 0 ...-name-lookup-and-value-decoration.cpp.execution | 0 ...for-name-lookup-and-value-decoration.cpp.output | 0 ...for-non-local-function-expression.cpp.execution | 0 ...ix-for-non-local-function-expression.cpp.output | 1 + ...gfix-for-non-local-initialization.cpp.execution | 0 ...-bugfix-for-non-local-initialization.cpp.output | 0 ...r-optional-template-argument-list.cpp.execution | 0 ...-for-optional-template-argument-list.cpp.output | 0 ...res-clause-in-forward-declaration.cpp.execution | 0 ...quires-clause-in-forward-declaration.cpp.output | 0 ...use-unbraced-function-initializer.cpp.execution | 0 ...clause-unbraced-function-initializer.cpp.output | 0 ...ure2-bugfix-for-template-argument.cpp.execution | 1 + .../pure2-bugfix-for-template-argument.cpp.output | 0 .../pure2-bugfix-for-ufcs-arguments.cpp.execution | 4 + .../pure2-bugfix-for-ufcs-arguments.cpp.output | 0 ...pure2-bugfix-for-ufcs-name-lookup.cpp.execution | 0 .../pure2-bugfix-for-ufcs-name-lookup.cpp.output | 0 .../pure2-bugfix-for-ufcs-noexcept.cpp.execution | 0 .../pure2-bugfix-for-ufcs-noexcept.cpp.output | 0 .../pure2-bugfix-for-ufcs-sfinae.cpp.execution | 0 .../gcc-13/pure2-bugfix-for-ufcs-sfinae.cpp.output | 0 ...-for-unbraced-function-expression.cpp.execution | 0 ...fix-for-unbraced-function-expression.cpp.output | 0 ...ure2-bugfix-for-variable-template.cpp.execution | 0 .../pure2-bugfix-for-variable-template.cpp.output | 0 .../gcc-13/pure2-chained-comparisons.cpp.execution | 27 + .../gcc-13/pure2-chained-comparisons.cpp.output | 0 .../gcc-13/pure2-concept-definition.cpp.execution | 0 .../gcc-13/pure2-concept-definition.cpp.output | 0 .../gcc-13/pure2-contracts.cpp.execution | 3 + .../test-results/gcc-13/pure2-contracts.cpp.output | 0 ...ulted-comparisons-and-final-types.cpp.execution | 1 + ...efaulted-comparisons-and-final-types.cpp.output | 0 .../test-results/gcc-13/pure2-enum.cpp.execution | 29 + .../test-results/gcc-13/pure2-enum.cpp.output | 0 .../pure2-for-loop-range-with-lambda.cpp.execution | 1 + .../pure2-for-loop-range-with-lambda.cpp.output | 0 .../gcc-13/pure2-forward-return.cpp.execution | 2 + .../gcc-13/pure2-forward-return.cpp.output | 0 ...nction-multiple-forward-arguments.cpp.execution | 1 + ...-function-multiple-forward-arguments.cpp.output | 0 .../test-results/gcc-13/pure2-hello.cpp.execution | 1 + .../test-results/gcc-13/pure2-hello.cpp.output | 0 ...nitialization-safety-with-else-if.cpp.execution | 1 + ...2-initialization-safety-with-else-if.cpp.output | 0 ...n-generic-function-multiple-types.cpp.execution | 8 + ...n-in-generic-function-multiple-types.cpp.output | 0 ...ssion-with-as-in-generic-function.cpp.execution | 3 + ...pression-with-as-in-generic-function.cpp.output | 0 ...allback-with-variant-any-optional.cpp.execution | 11 + ...t-fallback-with-variant-any-optional.cpp.output | 0 ...d-empty-with-variant-any-optional.cpp.execution | 17 + ...void-empty-with-variant-any-optional.cpp.output | 0 .../gcc-13/pure2-interpolation.cpp.execution | 12 + .../gcc-13/pure2-interpolation.cpp.output | 0 .../pure2-intro-example-hello-2022.cpp.execution | 2 + .../pure2-intro-example-hello-2022.cpp.output | 0 .../pure2-intro-example-three-loops.cpp.execution | 8 + .../pure2-intro-example-three-loops.cpp.output | 0 ...parameter-across-unnamed-function.cpp.execution | 1 + ...up-parameter-across-unnamed-function.cpp.output | 0 .../gcc-13/pure2-main-args.cpp.execution | 2 + .../test-results/gcc-13/pure2-main-args.cpp.output | 0 .../gcc-13/pure2-more-wildcards.cpp.execution | 2 + .../gcc-13/pure2-more-wildcards.cpp.output | 0 .../test-results/gcc-13/pure2-print.cpp.execution | 2 + .../test-results/gcc-13/pure2-print.cpp.output | 0 ...-string-literal-and-interpolation.cpp.execution | 17 + ...raw-string-literal-and-interpolation.cpp.output | 0 .../gcc-13/pure2-repeated-call.cpp.execution | 1 + .../gcc-13/pure2-repeated-call.cpp.output | 0 .../gcc-13/pure2-requires-clauses.cpp.execution | 1 + .../gcc-13/pure2-requires-clauses.cpp.output | 0 .../pure2-statement-scope-parameters.cpp.execution | 2 + .../pure2-statement-scope-parameters.cpp.output | 0 .../gcc-13/pure2-stdio-with-raii.cpp.execution | 0 .../gcc-13/pure2-stdio-with-raii.cpp.output | 0 .../test-results/gcc-13/pure2-stdio.cpp.execution | 0 .../test-results/gcc-13/pure2-stdio.cpp.output | 0 ...esize-rightshift-and-rightshifteq.cpp.execution | 1 + ...nthesize-rightshift-and-rightshifteq.cpp.output | 0 .../pure2-template-parameter-lists.cpp.execution | 4 + .../pure2-template-parameter-lists.cpp.output | 0 .../pure2-type-and-namespace-aliases.cpp.execution | 2 + .../pure2-type-and-namespace-aliases.cpp.output | 0 .../gcc-13/pure2-type-safety-1.cpp.execution | 9 + .../gcc-13/pure2-type-safety-1.cpp.output | 0 ...-safety-2-with-inspect-expression.cpp.execution | 8 + ...ype-safety-2-with-inspect-expression.cpp.output | 0 .../gcc-13/pure2-types-basics.cpp.execution | 27 + .../gcc-13/pure2-types-basics.cpp.output | 0 .../gcc-13/pure2-types-down-upcast.cpp.execution | 24 + .../gcc-13/pure2-types-down-upcast.cpp.output | 0 .../gcc-13/pure2-types-inheritance.cpp.execution | 5 + .../gcc-13/pure2-types-inheritance.cpp.output | 0 ...es-order-independence-and-nesting.cpp.execution | 5 + ...types-order-independence-and-nesting.cpp.output | 0 ...types-ordering-via-meta-functions.cpp.execution | 1 + ...e2-types-ordering-via-meta-functions.cpp.output | 0 ...smf-and-that-1-provide-everything.cpp.execution | 8 + ...es-smf-and-that-1-provide-everything.cpp.output | 0 ...-provide-mvconstruct-and-cpassign.cpp.execution | 8 + ...t-2-provide-mvconstruct-and-cpassign.cpp.output | 0 ...-provide-mvconstruct-and-mvassign.cpp.execution | 8 + ...t-3-provide-mvconstruct-and-mvassign.cpp.output | 0 ...t-4-provide-cpassign-and-mvassign.cpp.execution | 8 + ...that-4-provide-cpassign-and-mvassign.cpp.output | 0 ...-provide-nothing-but-general-case.cpp.execution | 8 + ...t-5-provide-nothing-but-general-case.cpp.output | 0 .../pure2-types-that-parameters.cpp.execution | 7 + .../gcc-13/pure2-types-that-parameters.cpp.output | 0 ...es-value-types-via-meta-functions.cpp.execution | 1 + ...types-value-types-via-meta-functions.cpp.output | 0 ...2-ufcs-member-access-and-chaining.cpp.execution | 0 ...ure2-ufcs-member-access-and-chaining.cpp.output | 0 .../test-results/gcc-13/pure2-union.cpp.execution | 4 + .../test-results/gcc-13/pure2-union.cpp.output | 0 .../gcc-13/pure2-variadics.cpp.execution | 6 + .../test-results/gcc-13/pure2-variadics.cpp.output | 0 .../pure2-various-string-literals.cpp.execution | 0 .../pure2-various-string-literals.cpp.output | 0 .../test-results/gcc-13/run-tests-gcc-13.sh | 24 + .../cc2/regression-tests/test-results/gcc-13/xyzzy | 1 + .../test-results/mixed-allcpp1-hello.cpp | 15 + .../test-results/mixed-allcpp1-hello.cpp2.output | 2 + .../test-results/mixed-as-for-variant-20-types.cpp | 97 + .../mixed-as-for-variant-20-types.cpp2.output | 2 + .../test-results/mixed-bounds-check.cpp | 32 + .../test-results/mixed-bounds-check.cpp2.output | 2 + .../mixed-bounds-safety-with-assert-2.cpp | 53 + .../mixed-bounds-safety-with-assert-2.cpp2.output | 2 + .../mixed-bounds-safety-with-assert.cpp | 51 + .../mixed-bounds-safety-with-assert.cpp2.output | 2 + ...mixed-bugfix-for-cpp2-comment-cpp1-sequence.cpp | 22 + ...gfix-for-cpp2-comment-cpp1-sequence.cpp2.output | 2 + .../mixed-bugfix-for-literal-as-nttp.cpp | 28 + .../mixed-bugfix-for-literal-as-nttp.cpp2.output | 2 + .../mixed-bugfix-for-ufcs-non-local.cpp | 104 + .../mixed-bugfix-for-ufcs-non-local.cpp2.output | 2 + ...-captures-in-expressions-and-postconditions.cpp | 55 + ...s-in-expressions-and-postconditions.cpp2.output | 2 + .../test-results/mixed-fixed-type-aliases.cpp | 64 + .../mixed-fixed-type-aliases.cpp2.output | 2 + .../test-results/mixed-float-literals.cpp | 142 + .../test-results/mixed-float-literals.cpp2.output | 2 + .../test-results/mixed-forwarding.cpp | 74 + .../test-results/mixed-forwarding.cpp2.output | 2 + .../mixed-function-expression-and-std-for-each.cpp | 49 + ...unction-expression-and-std-for-each.cpp2.output | 2 + ...ession-and-std-ranges-for-each-with-capture.cpp | 43 + ...nd-std-ranges-for-each-with-capture.cpp2.output | 2 + ...function-expression-and-std-ranges-for-each.cpp | 42 + ...-expression-and-std-ranges-for-each.cpp2.output | 2 + ...ed-function-expression-with-pointer-capture.cpp | 44 + ...ion-expression-with-pointer-capture.cpp2.output | 2 + ...d-function-expression-with-repeated-capture.cpp | 43 + ...on-expression-with-repeated-capture.cpp2.output | 2 + .../regression-tests/test-results/mixed-hello.cpp | 45 + .../test-results/mixed-hello.cpp2.output | 2 + .../test-results/mixed-increment-decrement.cpp | 201 + .../mixed-increment-decrement.cpp2.output | 2 + ...mixed-initialization-safety-1-error.cpp2.output | 4 + ...mixed-initialization-safety-2-error.cpp2.output | 8 + ...-initialization-safety-3-contract-violation.cpp | 70 + ...ization-safety-3-contract-violation.cpp2.output | 2 + .../test-results/mixed-initialization-safety-3.cpp | 67 + .../mixed-initialization-safety-3.cpp2.output | 2 + .../test-results/mixed-inspect-templates.cpp | 69 + .../mixed-inspect-templates.cpp2.output | 2 + .../test-results/mixed-inspect-values-2.cpp | 67 + .../mixed-inspect-values-2.cpp2.output | 2 + .../test-results/mixed-inspect-values.cpp | 69 + .../test-results/mixed-inspect-values.cpp2.output | 2 + ...ed-inspect-with-typeof-of-template-arg-list.cpp | 41 + ...ct-with-typeof-of-template-arg-list.cpp2.output | 2 + .../mixed-intro-example-three-loops.cpp | 37 + .../mixed-intro-example-three-loops.cpp2.output | 2 + .../mixed-intro-for-with-counter-include-last.cpp | 37 + ...intro-for-with-counter-include-last.cpp2.output | 2 + .../mixed-lifetime-safety-and-null-contracts.cpp | 55 + ...-lifetime-safety-and-null-contracts.cpp2.output | 2 + ...ifetime-safety-pointer-init-1-error.cpp2.output | 4 + ...ifetime-safety-pointer-init-2-error.cpp2.output | 8 + ...ifetime-safety-pointer-init-3-error.cpp2.output | 4 + .../mixed-lifetime-safety-pointer-init-4.cpp | 55 + ...ixed-lifetime-safety-pointer-init-4.cpp2.output | 2 + .../test-results/mixed-multiple-return-values.cpp | 67 + .../mixed-multiple-return-values.cpp2.output | 2 + .../test-results/mixed-out-destruction.cpp | 69 + .../test-results/mixed-out-destruction.cpp2.output | 2 + .../mixed-parameter-passing-generic-out.cpp | 50 + ...mixed-parameter-passing-generic-out.cpp2.output | 2 + .../mixed-parameter-passing-with-forward.cpp | 80 + ...ixed-parameter-passing-with-forward.cpp2.output | 2 + .../test-results/mixed-parameter-passing.cpp | 72 + .../mixed-parameter-passing.cpp2.output | 2 + .../mixed-postexpression-with-capture.cpp | 91 + .../mixed-postexpression-with-capture.cpp2.output | 2 + .../mixed-postfix-expression-custom-formatting.cpp | 42 + ...ostfix-expression-custom-formatting.cpp2.output | 2 + .../test-results/mixed-string-interpolation.cpp | 75 + .../mixed-string-interpolation.cpp2.output | 2 + .../test-results/mixed-test-parens.cpp | 35 + .../test-results/mixed-test-parens.cpp2.output | 2 + .../test-results/mixed-type-safety-1.cpp | 65 + .../test-results/mixed-type-safety-1.cpp2.output | 2 + .../mixed-ufcs-multiple-template-arguments.cpp | 46 + ...ed-ufcs-multiple-template-arguments.cpp2.output | 2 + .../test-results/msvc-2022/MSVC-version.output | 3 + .../msvc-2022/mixed-allcpp1-hello.cpp.execution | 1 + .../msvc-2022/mixed-allcpp1-hello.cpp.output | 1 + .../mixed-as-for-variant-20-types.cpp.execution | 60 + .../mixed-as-for-variant-20-types.cpp.output | 1 + .../msvc-2022/mixed-bounds-check.cpp.execution | 1 + .../msvc-2022/mixed-bounds-check.cpp.output | 1 + ...mixed-bounds-safety-with-assert-2.cpp.execution | 5 + .../mixed-bounds-safety-with-assert-2.cpp.output | 1 + .../mixed-bounds-safety-with-assert.cpp.execution | 1 + .../mixed-bounds-safety-with-assert.cpp.output | 1 + ...ix-for-cpp2-comment-cpp1-sequence.cpp.execution | 0 ...ugfix-for-cpp2-comment-cpp1-sequence.cpp.output | 1 + .../mixed-bugfix-for-literal-as-nttp.cpp.execution | 0 .../mixed-bugfix-for-literal-as-nttp.cpp.output | 1 + .../mixed-bugfix-for-ufcs-non-local.cpp.execution | 0 .../mixed-bugfix-for-ufcs-non-local.cpp.output | 1 + ...in-expressions-and-postconditions.cpp.execution | 4 + ...es-in-expressions-and-postconditions.cpp.output | 1 + .../mixed-fixed-type-aliases.cpp.execution | 4 + .../msvc-2022/mixed-fixed-type-aliases.cpp.output | 1 + .../msvc-2022/mixed-float-literals.cpp.execution | 72 + .../msvc-2022/mixed-float-literals.cpp.output | 1 + .../msvc-2022/mixed-forwarding.cpp.execution | 12 + .../msvc-2022/mixed-forwarding.cpp.output | 1 + ...ction-expression-and-std-for-each.cpp.execution | 2 + ...function-expression-and-std-for-each.cpp.output | 1 + ...-std-ranges-for-each-with-capture.cpp.execution | 4 + ...and-std-ranges-for-each-with-capture.cpp.output | 1 + ...xpression-and-std-ranges-for-each.cpp.execution | 4 + ...n-expression-and-std-ranges-for-each.cpp.output | 1 + ...n-expression-with-pointer-capture.cpp.execution | 6 + ...tion-expression-with-pointer-capture.cpp.output | 1 + ...-expression-with-repeated-capture.cpp.execution | 6 + ...ion-expression-with-repeated-capture.cpp.output | 1 + .../msvc-2022/mixed-hello.cpp.execution | 1 + .../test-results/msvc-2022/mixed-hello.cpp.output | 1 + .../mixed-increment-decrement.cpp.execution | 2 + .../msvc-2022/mixed-increment-decrement.cpp.output | 1 + ...ation-safety-3-contract-violation.cpp.execution | 1 + ...lization-safety-3-contract-violation.cpp.output | 1 + .../mixed-initialization-safety-3.cpp.execution | 1 + .../mixed-initialization-safety-3.cpp.output | 1 + .../mixed-inspect-templates.cpp.execution | 8 + .../msvc-2022/mixed-inspect-templates.cpp.output | 1 + .../msvc-2022/mixed-inspect-values-2.cpp.execution | 5 + .../msvc-2022/mixed-inspect-values-2.cpp.output | 1 + .../msvc-2022/mixed-inspect-values.cpp.execution | 12 + .../msvc-2022/mixed-inspect-values.cpp.output | 1 + ...-with-typeof-of-template-arg-list.cpp.execution | 0 ...ect-with-typeof-of-template-arg-list.cpp.output | 1 + .../mixed-intro-example-three-loops.cpp.execution | 7 + .../mixed-intro-example-three-loops.cpp.output | 1 + ...tro-for-with-counter-include-last.cpp.execution | 5 + ...-intro-for-with-counter-include-last.cpp.output | 1 + ...ifetime-safety-and-null-contracts.cpp.execution | 1 + ...d-lifetime-safety-and-null-contracts.cpp.output | 1 + ...ed-lifetime-safety-pointer-init-4.cpp.execution | 1 + ...mixed-lifetime-safety-pointer-init-4.cpp.output | 1 + .../mixed-multiple-return-values.cpp.execution | 2 + .../mixed-multiple-return-values.cpp.output | 1 + .../msvc-2022/mixed-out-destruction.cpp.execution | 21 + .../msvc-2022/mixed-out-destruction.cpp.output | 1 + ...xed-parameter-passing-generic-out.cpp.execution | 2 + .../mixed-parameter-passing-generic-out.cpp.output | 1 + ...ed-parameter-passing-with-forward.cpp.execution | 0 ...mixed-parameter-passing-with-forward.cpp.output | 1 + .../mixed-parameter-passing.cpp.execution | 0 .../msvc-2022/mixed-parameter-passing.cpp.output | 1 + ...mixed-postexpression-with-capture.cpp.execution | 2 + .../mixed-postexpression-with-capture.cpp.output | 1 + ...tfix-expression-custom-formatting.cpp.execution | 0 ...postfix-expression-custom-formatting.cpp.output | 1 + .../mixed-string-interpolation.cpp.execution | 17 + .../mixed-string-interpolation.cpp.output | 1 + .../msvc-2022/mixed-test-parens.cpp.execution | 1 + .../msvc-2022/mixed-test-parens.cpp.output | 1 + .../msvc-2022/mixed-type-safety-1.cpp.execution | 6 + .../msvc-2022/mixed-type-safety-1.cpp.output | 1 + ...-ufcs-multiple-template-arguments.cpp.execution | 2 + ...xed-ufcs-multiple-template-arguments.cpp.output | 1 + .../pure2-bounds-safety-span.cpp.execution | 3 + .../msvc-2022/pure2-bounds-safety-span.cpp.output | 1 + .../msvc-2022/pure2-break-continue.cpp.execution | 26 + .../msvc-2022/pure2-break-continue.cpp.output | 1 + ...bugfix-for-assign-expression-list.cpp.execution | 0 ...e2-bugfix-for-assign-expression-list.cpp.output | 1 + ...re2-bugfix-for-discard-precedence.cpp.execution | 0 .../pure2-bugfix-for-discard-precedence.cpp.output | 1 + .../pure2-bugfix-for-max-munch.cpp.execution | 0 .../pure2-bugfix-for-max-munch.cpp.output | 1 + ...ix-for-memberwise-base-assignment.cpp.execution | 2 + ...ugfix-for-memberwise-base-assignment.cpp.output | 1 + ...-name-lookup-and-value-decoration.cpp.execution | 0 ...for-name-lookup-and-value-decoration.cpp.output | 1 + ...for-non-local-function-expression.cpp.execution | 0 ...ix-for-non-local-function-expression.cpp.output | 1 + ...gfix-for-non-local-initialization.cpp.execution | 0 ...-bugfix-for-non-local-initialization.cpp.output | 1 + ...r-optional-template-argument-list.cpp.execution | 0 ...-for-optional-template-argument-list.cpp.output | 1 + ...res-clause-in-forward-declaration.cpp.execution | 0 ...quires-clause-in-forward-declaration.cpp.output | 1 + ...use-unbraced-function-initializer.cpp.execution | 0 ...clause-unbraced-function-initializer.cpp.output | 1 + ...ure2-bugfix-for-template-argument.cpp.execution | 1 + .../pure2-bugfix-for-template-argument.cpp.output | 1 + .../pure2-bugfix-for-ufcs-arguments.cpp.execution | 4 + .../pure2-bugfix-for-ufcs-arguments.cpp.output | 1 + ...pure2-bugfix-for-ufcs-name-lookup.cpp.execution | 0 .../pure2-bugfix-for-ufcs-name-lookup.cpp.output | 1 + .../pure2-bugfix-for-ufcs-noexcept.cpp.execution | 0 .../pure2-bugfix-for-ufcs-noexcept.cpp.output | 1 + .../pure2-bugfix-for-ufcs-sfinae.cpp.execution | 0 .../pure2-bugfix-for-ufcs-sfinae.cpp.output | 1 + ...-for-unbraced-function-expression.cpp.execution | 0 ...fix-for-unbraced-function-expression.cpp.output | 1 + ...ure2-bugfix-for-variable-template.cpp.execution | 0 .../pure2-bugfix-for-variable-template.cpp.output | 1 + .../pure2-chained-comparisons.cpp.execution | 27 + .../msvc-2022/pure2-chained-comparisons.cpp.output | 1 + .../pure2-concept-definition.cpp.execution | 0 .../msvc-2022/pure2-concept-definition.cpp.output | 1 + .../msvc-2022/pure2-contracts.cpp.execution | 3 + .../msvc-2022/pure2-contracts.cpp.output | 1 + ...ulted-comparisons-and-final-types.cpp.execution | 1 + ...efaulted-comparisons-and-final-types.cpp.output | 1 + .../msvc-2022/pure2-enum.cpp.execution | 29 + .../test-results/msvc-2022/pure2-enum.cpp.output | 1 + .../pure2-for-loop-range-with-lambda.cpp.execution | 1 + .../pure2-for-loop-range-with-lambda.cpp.output | 1 + .../msvc-2022/pure2-forward-return.cpp.execution | 2 + .../msvc-2022/pure2-forward-return.cpp.output | 1 + ...nction-multiple-forward-arguments.cpp.execution | 1 + ...-function-multiple-forward-arguments.cpp.output | 1 + .../msvc-2022/pure2-hello.cpp.execution | 1 + .../test-results/msvc-2022/pure2-hello.cpp.output | 1 + ...nitialization-safety-with-else-if.cpp.execution | 1 + ...2-initialization-safety-with-else-if.cpp.output | 1 + ...n-generic-function-multiple-types.cpp.execution | 8 + ...n-in-generic-function-multiple-types.cpp.output | 1 + ...ssion-with-as-in-generic-function.cpp.execution | 3 + ...pression-with-as-in-generic-function.cpp.output | 1 + ...allback-with-variant-any-optional.cpp.execution | 11 + ...t-fallback-with-variant-any-optional.cpp.output | 1 + ...d-empty-with-variant-any-optional.cpp.execution | 17 + ...void-empty-with-variant-any-optional.cpp.output | 1 + .../msvc-2022/pure2-interpolation.cpp.execution | 12 + .../msvc-2022/pure2-interpolation.cpp.output | 1 + .../pure2-intro-example-hello-2022.cpp.execution | 2 + .../pure2-intro-example-hello-2022.cpp.output | 1 + .../pure2-intro-example-three-loops.cpp.execution | 8 + .../pure2-intro-example-three-loops.cpp.output | 1 + ...parameter-across-unnamed-function.cpp.execution | 1 + ...up-parameter-across-unnamed-function.cpp.output | 1 + .../msvc-2022/pure2-main-args.cpp.execution | 2 + .../msvc-2022/pure2-main-args.cpp.output | 1 + .../msvc-2022/pure2-more-wildcards.cpp.execution | 2 + .../msvc-2022/pure2-more-wildcards.cpp.output | 1 + .../msvc-2022/pure2-print.cpp.execution | 2 + .../test-results/msvc-2022/pure2-print.cpp.output | 1 + ...-string-literal-and-interpolation.cpp.execution | 17 + ...raw-string-literal-and-interpolation.cpp.output | 1 + .../msvc-2022/pure2-repeated-call.cpp.execution | 1 + .../msvc-2022/pure2-repeated-call.cpp.output | 1 + .../msvc-2022/pure2-requires-clauses.cpp.execution | 1 + .../msvc-2022/pure2-requires-clauses.cpp.output | 1 + .../pure2-statement-scope-parameters.cpp.execution | 2 + .../pure2-statement-scope-parameters.cpp.output | 1 + .../msvc-2022/pure2-stdio-with-raii.cpp.execution | 0 .../msvc-2022/pure2-stdio-with-raii.cpp.output | 1 + .../msvc-2022/pure2-stdio.cpp.execution | 0 .../test-results/msvc-2022/pure2-stdio.cpp.output | 1 + ...esize-rightshift-and-rightshifteq.cpp.execution | 1 + ...nthesize-rightshift-and-rightshifteq.cpp.output | 1 + .../pure2-template-parameter-lists.cpp.execution | 4 + .../pure2-template-parameter-lists.cpp.output | 1 + .../pure2-type-and-namespace-aliases.cpp.execution | 2 + .../pure2-type-and-namespace-aliases.cpp.output | 1 + .../msvc-2022/pure2-type-safety-1.cpp.execution | 9 + .../msvc-2022/pure2-type-safety-1.cpp.output | 1 + ...-safety-2-with-inspect-expression.cpp.execution | 8 + ...ype-safety-2-with-inspect-expression.cpp.output | 1 + .../msvc-2022/pure2-types-basics.cpp.execution | 27 + .../msvc-2022/pure2-types-basics.cpp.output | 1 + .../pure2-types-down-upcast.cpp.execution | 24 + .../msvc-2022/pure2-types-down-upcast.cpp.output | 1 + .../pure2-types-inheritance.cpp.execution | 5 + .../msvc-2022/pure2-types-inheritance.cpp.output | 1 + ...es-order-independence-and-nesting.cpp.execution | 5 + ...types-order-independence-and-nesting.cpp.output | 1 + ...types-ordering-via-meta-functions.cpp.execution | 1 + ...e2-types-ordering-via-meta-functions.cpp.output | 1 + ...smf-and-that-1-provide-everything.cpp.execution | 8 + ...es-smf-and-that-1-provide-everything.cpp.output | 1 + ...-provide-mvconstruct-and-cpassign.cpp.execution | 8 + ...t-2-provide-mvconstruct-and-cpassign.cpp.output | 1 + ...-provide-mvconstruct-and-mvassign.cpp.execution | 8 + ...t-3-provide-mvconstruct-and-mvassign.cpp.output | 1 + ...t-4-provide-cpassign-and-mvassign.cpp.execution | 8 + ...that-4-provide-cpassign-and-mvassign.cpp.output | 1 + ...-provide-nothing-but-general-case.cpp.execution | 8 + ...t-5-provide-nothing-but-general-case.cpp.output | 1 + .../pure2-types-that-parameters.cpp.execution | 7 + .../pure2-types-that-parameters.cpp.output | 1 + ...es-value-types-via-meta-functions.cpp.execution | 1 + ...types-value-types-via-meta-functions.cpp.output | 1 + ...2-ufcs-member-access-and-chaining.cpp.execution | 0 ...ure2-ufcs-member-access-and-chaining.cpp.output | 1 + .../msvc-2022/pure2-union.cpp.execution | 4 + .../test-results/msvc-2022/pure2-union.cpp.output | 1 + .../msvc-2022/pure2-variadics.cpp.execution | 6 + .../msvc-2022/pure2-variadics.cpp.output | 1 + .../pure2-various-string-literals.cpp.execution | 0 .../pure2-various-string-literals.cpp.output | 1 + .../test-results/msvc-2022/run-tests-msvc-2022.bat | 27 + .../regression-tests/test-results/msvc-2022/xyzzy | 1 + ...nds-safety-pointer-arithmetic-error.cpp2.output | 3 + .../test-results/pure2-bounds-safety-span.cpp | 45 + .../pure2-bounds-safety-span.cpp2.output | 2 + .../test-results/pure2-break-continue.cpp | 321 + .../test-results/pure2-break-continue.cpp2.output | 2 + .../pure2-bugfix-for-assign-expression-list.cpp | 31 + ...2-bugfix-for-assign-expression-list.cpp2.output | 2 + ...-bugfix-for-declaration-equal-error.cpp2.output | 5 + .../pure2-bugfix-for-discard-precedence.cpp | 54 + ...pure2-bugfix-for-discard-precedence.cpp2.output | 2 + .../test-results/pure2-bugfix-for-max-munch.cpp | 25 + .../pure2-bugfix-for-max-munch.cpp2.output | 2 + ...pure2-bugfix-for-memberwise-base-assignment.cpp | 83 + ...gfix-for-memberwise-base-assignment.cpp2.output | 2 + ...bugfix-for-name-lookup-and-value-decoration.cpp | 36 + ...or-name-lookup-and-value-decoration.cpp2.output | 2 + ...e2-bugfix-for-non-local-function-expression.cpp | 39 + ...x-for-non-local-function-expression.cpp2.output | 2 + .../pure2-bugfix-for-non-local-initialization.cpp | 34 + ...bugfix-for-non-local-initialization.cpp2.output | 2 + ...-bugfix-for-optional-template-argument-list.cpp | 25 + ...for-optional-template-argument-list.cpp2.output | 2 + ...ugfix-for-parameter-decl-list-error.cpp2.output | 3 + ...-for-requires-clause-in-forward-declaration.cpp | 48 + ...uires-clause-in-forward-declaration.cpp2.output | 2 + ...quires-clause-unbraced-function-initializer.cpp | 27 + ...lause-unbraced-function-initializer.cpp2.output | 2 + .../pure2-bugfix-for-template-argument.cpp | 23 + .../pure2-bugfix-for-template-argument.cpp2.output | 2 + .../pure2-bugfix-for-ufcs-arguments.cpp | 159 + .../pure2-bugfix-for-ufcs-arguments.cpp2.output | 2 + .../pure2-bugfix-for-ufcs-name-lookup.cpp | 177 + .../pure2-bugfix-for-ufcs-name-lookup.cpp2.output | 2 + .../pure2-bugfix-for-ufcs-noexcept.cpp | 38 + .../pure2-bugfix-for-ufcs-noexcept.cpp2.output | 2 + .../test-results/pure2-bugfix-for-ufcs-sfinae.cpp | 40 + .../pure2-bugfix-for-ufcs-sfinae.cpp2.output | 2 + ...re2-bugfix-for-unbraced-function-expression.cpp | 61 + ...ix-for-unbraced-function-expression.cpp2.output | 2 + .../pure2-bugfix-for-variable-template.cpp | 25 + .../pure2-bugfix-for-variable-template.cpp2.output | 2 + .../test-results/pure2-chained-comparisons.cpp | 36 + .../pure2-chained-comparisons.cpp2.output | 2 + .../test-results/pure2-concept-definition.cpp | 28 + .../pure2-concept-definition.cpp2.output | 2 + .../test-results/pure2-contracts.cpp | 55 + .../test-results/pure2-contracts.cpp2.output | 2 + ...-multitoken-fundamental-types-error.cpp2.output | 32 + .../pure2-cpp1-prefix-expression-error.cpp2.output | 3 + .../pure2-deducing-pointers-error.cpp2.output | 9 + ...pure2-defaulted-comparisons-and-final-types.cpp | 62 + ...faulted-comparisons-and-final-types.cpp2.output | 2 + .../regression-tests/test-results/pure2-enum.cpp | 337 + .../test-results/pure2-enum.cpp2.output | 2 + .../pure2-for-loop-range-with-lambda.cpp | 56 + .../pure2-for-loop-range-with-lambda.cpp2.output | 2 + ...e2-forward-return-diagnostics-error.cpp2.output | 24 + .../test-results/pure2-forward-return.cpp | 45 + .../test-results/pure2-forward-return.cpp2.output | 2 + .../pure2-function-multiple-forward-arguments.cpp | 36 + ...function-multiple-forward-arguments.cpp2.output | 2 + .../regression-tests/test-results/pure2-hello.cpp | 43 + .../test-results/pure2-hello.cpp2.output | 2 + .../pure2-initialization-safety-with-else-if.cpp | 47 + ...-initialization-safety-with-else-if.cpp2.output | 2 + ...pression-in-generic-function-multiple-types.cpp | 54 + ...-in-generic-function-multiple-types.cpp2.output | 2 + ...pect-expression-with-as-in-generic-function.cpp | 40 + ...ression-with-as-in-generic-function.cpp2.output | 2 + ...-inspect-fallback-with-variant-any-optional.cpp | 51 + ...-fallback-with-variant-any-optional.cpp2.output | 2 + ...eneric-void-empty-with-variant-any-optional.cpp | 52 + ...oid-empty-with-variant-any-optional.cpp2.output | 2 + .../test-results/pure2-interpolation.cpp | 72 + .../test-results/pure2-interpolation.cpp2.output | 2 + .../pure2-intro-example-hello-2022.cpp | 47 + .../pure2-intro-example-hello-2022.cpp2.output | 2 + .../pure2-intro-example-three-loops.cpp | 61 + .../pure2-intro-example-three-loops.cpp2.output | 2 + ...ifetime-safety-pointer-init-1-error.cpp2.output | 4 + ...2-lifetime-safety-reject-null-error.cpp2.output | 5 + ...2-look-up-parameter-across-unnamed-function.cpp | 55 + ...p-parameter-across-unnamed-function.cpp2.output | 2 + .../test-results/pure2-main-args.cpp | 26 + .../test-results/pure2-main-args.cpp2.output | 2 + .../test-results/pure2-more-wildcards.cpp | 43 + .../test-results/pure2-more-wildcards.cpp2.output | 2 + .../regression-tests/test-results/pure2-print.cpp | 197 + .../test-results/pure2-print.cpp2.output | 150 + .../pure2-raw-string-literal-and-interpolation.cpp | 55 + ...aw-string-literal-and-interpolation.cpp2.output | 2 + .../test-results/pure2-repeated-call.cpp | 28 + .../test-results/pure2-repeated-call.cpp2.output | 2 + .../test-results/pure2-requires-clauses.cpp | 72 + .../pure2-requires-clauses.cpp2.output | 2 + ...e2-return-tuple-no-identifier-error.cpp2.output | 4 + .../pure2-return-tuple-no-type-error.cpp2.output | 4 + .../pure2-statement-parse-error.cpp2.output | 3 + .../pure2-statement-scope-parameters.cpp | 49 + .../pure2-statement-scope-parameters.cpp2.output | 2 + .../test-results/pure2-stdio-with-raii.cpp | 31 + .../test-results/pure2-stdio-with-raii.cpp2.output | 2 + .../regression-tests/test-results/pure2-stdio.cpp | 35 + .../test-results/pure2-stdio.cpp2.output | 2 + ...ure2-synthesize-rightshift-and-rightshifteq.cpp | 33 + ...thesize-rightshift-and-rightshifteq.cpp2.output | 2 + .../pure2-template-parameter-lists.cpp | 40 + .../pure2-template-parameter-lists.cpp2.output | 2 + .../pure2-type-and-namespace-aliases.cpp | 96 + .../pure2-type-and-namespace-aliases.cpp2.output | 2 + .../test-results/pure2-type-safety-1.cpp | 66 + .../test-results/pure2-type-safety-1.cpp2.output | 2 + ...pure2-type-safety-2-with-inspect-expression.cpp | 53 + ...pe-safety-2-with-inspect-expression.cpp2.output | 2 + .../test-results/pure2-types-basics.cpp | 198 + .../test-results/pure2-types-basics.cpp2.output | 2 + .../test-results/pure2-types-down-upcast.cpp | 145 + .../pure2-types-down-upcast.cpp2.output | 2 + .../test-results/pure2-types-inheritance.cpp | 145 + .../pure2-types-inheritance.cpp2.output | 2 + .../pure2-types-order-independence-and-nesting.cpp | 194 + ...ypes-order-independence-and-nesting.cpp2.output | 2 + .../pure2-types-ordering-via-meta-functions.cpp | 139 + ...2-types-ordering-via-meta-functions.cpp2.output | 2 + ...re2-types-smf-and-that-1-provide-everything.cpp | 143 + ...s-smf-and-that-1-provide-everything.cpp2.output | 2 + ...and-that-2-provide-mvconstruct-and-cpassign.cpp | 148 + ...-2-provide-mvconstruct-and-cpassign.cpp2.output | 2 + ...and-that-3-provide-mvconstruct-and-mvassign.cpp | 147 + ...-3-provide-mvconstruct-and-mvassign.cpp2.output | 2 + ...mf-and-that-4-provide-cpassign-and-mvassign.cpp | 147 + ...hat-4-provide-cpassign-and-mvassign.cpp2.output | 2 + ...and-that-5-provide-nothing-but-general-case.cpp | 153 + ...-5-provide-nothing-but-general-case.cpp2.output | 2 + .../test-results/pure2-types-that-parameters.cpp | 100 + .../pure2-types-that-parameters.cpp2.output | 2 + .../pure2-types-value-types-via-meta-functions.cpp | 168 + ...ypes-value-types-via-meta-functions.cpp2.output | 2 + .../pure2-ufcs-member-access-and-chaining.cpp | 84 + ...re2-ufcs-member-access-and-chaining.cpp2.output | 2 + .../regression-tests/test-results/pure2-union.cpp | 215 + .../test-results/pure2-union.cpp2.output | 2 + .../test-results/pure2-variadics.cpp | 73 + .../test-results/pure2-variadics.cpp2.output | 2 + .../test-results/pure2-various-string-literals.cpp | 41 + .../pure2-various-string-literals.cpp2.output | 2 + .../regression-tests/test-results/run-tests.bat | 31 + .../cc2/regression-tests/test-results/version | 11 + CompilerDriver/cc2/source/build.info | 1 + CompilerDriver/cc2/source/common.h | 968 + CompilerDriver/cc2/source/cpp2util.h | 1 + CompilerDriver/cc2/source/cppfront.cpp | 115 + CompilerDriver/cc2/source/io.h | 1079 + CompilerDriver/cc2/source/lex.h | 1989 + CompilerDriver/cc2/source/parse.h | 9263 + CompilerDriver/cc2/source/reflect.h | 1965 + CompilerDriver/cc2/source/reflect.h2 | 1447 + CompilerDriver/cc2/source/sema.h | 1892 + CompilerDriver/cc2/source/to_cpp1.h | 6750 + CompilerDriver/cc2/source/version.info | 1 + CompilerDriver/ccplus.cxx | 1742 + CompilerDriver/cpp.cxx | 1052 + CompilerDriver/ld.cxx | 519 + CompilerDriver/makefile | 59 + CompilerDriver/masm.cxx | 784 + 1475 files changed, 1033166 insertions(+) create mode 100644 CompilerDriver/.gitignore create mode 100644 CompilerDriver/bin/.gitkeep create mode 100644 CompilerDriver/bin/SourceUnitTest/.gitkeep create mode 100644 CompilerDriver/cc.cxx create mode 100644 CompilerDriver/cc2/LICENSE create mode 100644 CompilerDriver/cc2/include/cpp2util.h create mode 100644 CompilerDriver/cc2/passthrough-tests/all-std.cxx create mode 100644 CompilerDriver/cc2/passthrough-tests/clang-12-libstdc++-e.cpp create mode 100644 CompilerDriver/cc2/passthrough-tests/clang-12-libstdc++-e.cpp2 create mode 100644 CompilerDriver/cc2/passthrough-tests/gcc-10-libstdc++-e.cpp create mode 100644 CompilerDriver/cc2/passthrough-tests/gcc-10-libstdc++-e.cpp2 create mode 100644 CompilerDriver/cc2/passthrough-tests/msvc-msstl-e.cpp create mode 100644 CompilerDriver/cc2/passthrough-tests/msvc-msstl-e.cpp2 create mode 100644 CompilerDriver/cc2/passthrough-tests/readme.md create mode 100644 CompilerDriver/cc2/passthrough-tests/run-diffs.sh create mode 100644 CompilerDriver/cc2/regression-tests/mixed-allcpp1-hello.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-as-for-variant-20-types.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-bounds-check.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-bounds-safety-with-assert-2.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-bounds-safety-with-assert.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-bugfix-for-cpp2-comment-cpp1-sequence.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-bugfix-for-literal-as-nttp.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-bugfix-for-ufcs-non-local.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-captures-in-expressions-and-postconditions.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-fixed-type-aliases.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-float-literals.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-forwarding.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-function-expression-and-std-for-each.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-function-expression-and-std-ranges-for-each-with-capture.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-function-expression-and-std-ranges-for-each.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-function-expression-with-pointer-capture.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-function-expression-with-repeated-capture.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-hello.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-increment-decrement.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-initialization-safety-1-error.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-initialization-safety-2-error.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-initialization-safety-3-contract-violation.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-initialization-safety-3.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-inspect-templates.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-inspect-values-2.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-inspect-values.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-inspect-with-typeof-of-template-arg-list.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-intro-example-three-loops.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-intro-for-with-counter-include-last.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-lifetime-safety-and-null-contracts.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-lifetime-safety-pointer-init-1-error.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-lifetime-safety-pointer-init-2-error.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-lifetime-safety-pointer-init-3-error.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-lifetime-safety-pointer-init-4.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-multiple-return-values.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-out-destruction.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-parameter-passing-generic-out.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-parameter-passing-with-forward.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-parameter-passing.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-postexpression-with-capture.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-postfix-expression-custom-formatting.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-string-interpolation.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-test-parens.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-type-safety-1.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/mixed-ufcs-multiple-template-arguments.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bounds-safety-pointer-arithmetic-error.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bounds-safety-span.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-break-continue.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-assign-expression-list.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-declaration-equal-error.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-discard-precedence.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-max-munch.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-memberwise-base-assignment.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-name-lookup-and-value-decoration.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-non-local-function-expression.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-non-local-initialization.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-optional-template-argument-list.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-parameter-decl-list-error.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-requires-clause-in-forward-declaration.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-requires-clause-unbraced-function-initializer.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-template-argument.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-ufcs-arguments.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-ufcs-name-lookup.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-ufcs-noexcept.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-ufcs-sfinae.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-unbraced-function-expression.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-bugfix-for-variable-template.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-chained-comparisons.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-concept-definition.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-contracts.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-cpp1-multitoken-fundamental-types-error.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-cpp1-prefix-expression-error.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-deducing-pointers-error.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-defaulted-comparisons-and-final-types.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-enum.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-for-loop-range-with-lambda.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-forward-return-diagnostics-error.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-forward-return.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-function-multiple-forward-arguments.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-hello.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-initialization-safety-with-else-if.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-inspect-expression-in-generic-function-multiple-types.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-inspect-expression-with-as-in-generic-function.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-inspect-fallback-with-variant-any-optional.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-inspect-generic-void-empty-with-variant-any-optional.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-interpolation.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-intro-example-hello-2022.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-intro-example-three-loops.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-lifetime-safety-pointer-init-1-error.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-lifetime-safety-reject-null-error.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-look-up-parameter-across-unnamed-function.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-main-args.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-more-wildcards.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-print.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-raw-string-literal-and-interpolation.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-repeated-call.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-requires-clauses.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-return-tuple-no-identifier-error.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-return-tuple-no-type-error.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-statement-parse-error.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-statement-scope-parameters.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-stdio-with-raii.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-stdio.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-synthesize-rightshift-and-rightshifteq.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-template-parameter-lists.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-type-and-namespace-aliases.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-type-safety-1.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-type-safety-2-with-inspect-expression.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-types-basics.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-types-down-upcast.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-types-inheritance.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-types-order-independence-and-nesting.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-types-ordering-via-meta-functions.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-types-smf-and-that-1-provide-everything.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-types-smf-and-that-2-provide-mvconstruct-and-cpassign.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-types-smf-and-that-3-provide-mvconstruct-and-mvassign.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-types-smf-and-that-4-provide-cpassign-and-mvassign.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-types-smf-and-that-5-provide-nothing-but-general-case.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-types-that-parameters.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-types-value-types-via-meta-functions.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-ufcs-member-access-and-chaining.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-union.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-variadics.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/pure2-various-string-literals.cpp2 create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/clang-version.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-allcpp1-hello.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-allcpp1-hello.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-as-for-variant-20-types.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-as-for-variant-20-types.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-bounds-check.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-bounds-check.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-bounds-safety-with-assert-2.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-bounds-safety-with-assert-2.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-bounds-safety-with-assert.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-bounds-safety-with-assert.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-bugfix-for-cpp2-comment-cpp1-sequence.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-bugfix-for-cpp2-comment-cpp1-sequence.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-bugfix-for-literal-as-nttp.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-bugfix-for-literal-as-nttp.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-bugfix-for-ufcs-non-local.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-bugfix-for-ufcs-non-local.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-captures-in-expressions-and-postconditions.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-captures-in-expressions-and-postconditions.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-fixed-type-aliases.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-fixed-type-aliases.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-float-literals.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-float-literals.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-forwarding.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-forwarding.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-function-expression-and-std-for-each.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-function-expression-and-std-for-each.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-function-expression-and-std-ranges-for-each-with-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-function-expression-and-std-ranges-for-each-with-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-function-expression-and-std-ranges-for-each.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-function-expression-and-std-ranges-for-each.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-function-expression-with-pointer-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-function-expression-with-pointer-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-function-expression-with-repeated-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-function-expression-with-repeated-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-hello.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-hello.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-increment-decrement.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-increment-decrement.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-initialization-safety-3-contract-violation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-initialization-safety-3-contract-violation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-initialization-safety-3.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-initialization-safety-3.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-inspect-templates.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-inspect-templates.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-inspect-values-2.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-inspect-values-2.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-inspect-values.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-inspect-values.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-inspect-with-typeof-of-template-arg-list.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-inspect-with-typeof-of-template-arg-list.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-intro-example-three-loops.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-intro-example-three-loops.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-intro-for-with-counter-include-last.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-intro-for-with-counter-include-last.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-lifetime-safety-and-null-contracts.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-lifetime-safety-and-null-contracts.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-lifetime-safety-pointer-init-4.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-lifetime-safety-pointer-init-4.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-multiple-return-values.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-multiple-return-values.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-out-destruction.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-out-destruction.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-parameter-passing-generic-out.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-parameter-passing-generic-out.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-parameter-passing-with-forward.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-parameter-passing-with-forward.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-parameter-passing.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-parameter-passing.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-postexpression-with-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-postexpression-with-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-postfix-expression-custom-formatting.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-postfix-expression-custom-formatting.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-string-interpolation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-string-interpolation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-test-parens.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-test-parens.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-type-safety-1.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-type-safety-1.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-ufcs-multiple-template-arguments.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/mixed-ufcs-multiple-template-arguments.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bounds-safety-span.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bounds-safety-span.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-break-continue.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-break-continue.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-assign-expression-list.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-assign-expression-list.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-discard-precedence.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-discard-precedence.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-max-munch.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-max-munch.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-memberwise-base-assignment.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-memberwise-base-assignment.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-name-lookup-and-value-decoration.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-name-lookup-and-value-decoration.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-non-local-function-expression.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-non-local-function-expression.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-non-local-initialization.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-non-local-initialization.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-optional-template-argument-list.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-optional-template-argument-list.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-requires-clause-in-forward-declaration.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-requires-clause-in-forward-declaration.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-requires-clause-unbraced-function-initializer.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-requires-clause-unbraced-function-initializer.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-template-argument.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-template-argument.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-ufcs-arguments.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-ufcs-arguments.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-ufcs-name-lookup.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-ufcs-name-lookup.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-ufcs-noexcept.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-ufcs-noexcept.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-ufcs-sfinae.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-ufcs-sfinae.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-unbraced-function-expression.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-unbraced-function-expression.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-variable-template.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-bugfix-for-variable-template.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-chained-comparisons.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-chained-comparisons.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-concept-definition.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-concept-definition.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-contracts.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-contracts.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-defaulted-comparisons-and-final-types.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-defaulted-comparisons-and-final-types.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-enum.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-enum.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-for-loop-range-with-lambda.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-for-loop-range-with-lambda.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-forward-return.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-forward-return.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-function-multiple-forward-arguments.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-function-multiple-forward-arguments.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-hello.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-hello.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-initialization-safety-with-else-if.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-initialization-safety-with-else-if.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-inspect-expression-in-generic-function-multiple-types.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-inspect-expression-in-generic-function-multiple-types.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-inspect-expression-with-as-in-generic-function.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-inspect-expression-with-as-in-generic-function.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-inspect-fallback-with-variant-any-optional.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-inspect-fallback-with-variant-any-optional.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-inspect-generic-void-empty-with-variant-any-optional.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-inspect-generic-void-empty-with-variant-any-optional.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-interpolation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-interpolation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-intro-example-hello-2022.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-intro-example-hello-2022.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-intro-example-three-loops.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-intro-example-three-loops.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-look-up-parameter-across-unnamed-function.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-look-up-parameter-across-unnamed-function.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-main-args.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-main-args.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-more-wildcards.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-more-wildcards.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-print.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-print.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-raw-string-literal-and-interpolation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-raw-string-literal-and-interpolation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-repeated-call.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-repeated-call.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-requires-clauses.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-requires-clauses.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-statement-scope-parameters.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-statement-scope-parameters.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-stdio-with-raii.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-stdio-with-raii.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-stdio.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-stdio.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-synthesize-rightshift-and-rightshifteq.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-synthesize-rightshift-and-rightshifteq.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-template-parameter-lists.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-template-parameter-lists.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-type-and-namespace-aliases.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-type-safety-1.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-type-safety-1.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-type-safety-2-with-inspect-expression.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-type-safety-2-with-inspect-expression.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-basics.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-basics.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-down-upcast.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-down-upcast.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-inheritance.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-inheritance.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-order-independence-and-nesting.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-order-independence-and-nesting.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-ordering-via-meta-functions.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-ordering-via-meta-functions.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-smf-and-that-1-provide-everything.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-smf-and-that-1-provide-everything.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-smf-and-that-2-provide-mvconstruct-and-cpassign.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-smf-and-that-2-provide-mvconstruct-and-cpassign.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-smf-and-that-3-provide-mvconstruct-and-mvassign.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-smf-and-that-3-provide-mvconstruct-and-mvassign.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-smf-and-that-4-provide-cpassign-and-mvassign.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-smf-and-that-4-provide-cpassign-and-mvassign.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-smf-and-that-5-provide-nothing-but-general-case.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-smf-and-that-5-provide-nothing-but-general-case.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-that-parameters.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-that-parameters.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-value-types-via-meta-functions.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-types-value-types-via-meta-functions.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-ufcs-member-access-and-chaining.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-ufcs-member-access-and-chaining.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-union.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-union.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-variadics.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-variadics.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-various-string-literals.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/pure2-various-string-literals.cpp.output create mode 100755 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/run-tests-apple-clang.sh create mode 100644 CompilerDriver/cc2/regression-tests/test-results/apple-clang-14/xyzzy create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/clang-version.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-allcpp1-hello.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-allcpp1-hello.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-as-for-variant-20-types.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-as-for-variant-20-types.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-bounds-check.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-bounds-check.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-bounds-safety-with-assert-2.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-bounds-safety-with-assert-2.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-bounds-safety-with-assert.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-bounds-safety-with-assert.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-bugfix-for-cpp2-comment-cpp1-sequence.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-bugfix-for-cpp2-comment-cpp1-sequence.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-bugfix-for-literal-as-nttp.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-bugfix-for-literal-as-nttp.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-bugfix-for-ufcs-non-local.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-captures-in-expressions-and-postconditions.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-captures-in-expressions-and-postconditions.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-fixed-type-aliases.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-fixed-type-aliases.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-float-literals.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-float-literals.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-forwarding.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-forwarding.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-function-expression-and-std-for-each.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-function-expression-and-std-for-each.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-function-expression-and-std-ranges-for-each-with-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-function-expression-and-std-ranges-for-each-with-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-function-expression-and-std-ranges-for-each.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-function-expression-and-std-ranges-for-each.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-function-expression-with-pointer-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-function-expression-with-pointer-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-function-expression-with-repeated-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-function-expression-with-repeated-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-hello.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-hello.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-increment-decrement.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-increment-decrement.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-initialization-safety-3-contract-violation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-initialization-safety-3-contract-violation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-initialization-safety-3.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-initialization-safety-3.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-inspect-templates.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-inspect-templates.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-inspect-values-2.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-inspect-values-2.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-inspect-values.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-inspect-values.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-inspect-with-typeof-of-template-arg-list.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-inspect-with-typeof-of-template-arg-list.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-intro-example-three-loops.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-intro-example-three-loops.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-intro-for-with-counter-include-last.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-intro-for-with-counter-include-last.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-lifetime-safety-and-null-contracts.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-lifetime-safety-and-null-contracts.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-lifetime-safety-pointer-init-4.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-lifetime-safety-pointer-init-4.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-multiple-return-values.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-multiple-return-values.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-out-destruction.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-out-destruction.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-parameter-passing-generic-out.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-parameter-passing-generic-out.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-parameter-passing-with-forward.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-parameter-passing-with-forward.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-parameter-passing.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-parameter-passing.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-postexpression-with-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-postexpression-with-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-postfix-expression-custom-formatting.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-postfix-expression-custom-formatting.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-string-interpolation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-string-interpolation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-test-parens.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-test-parens.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-type-safety-1.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-type-safety-1.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-ufcs-multiple-template-arguments.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/mixed-ufcs-multiple-template-arguments.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bounds-safety-span.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bounds-safety-span.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-break-continue.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-break-continue.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-assign-expression-list.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-assign-expression-list.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-discard-precedence.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-discard-precedence.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-max-munch.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-max-munch.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-memberwise-base-assignment.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-memberwise-base-assignment.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-name-lookup-and-value-decoration.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-name-lookup-and-value-decoration.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-non-local-function-expression.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-non-local-initialization.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-non-local-initialization.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-optional-template-argument-list.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-optional-template-argument-list.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-requires-clause-in-forward-declaration.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-requires-clause-in-forward-declaration.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-requires-clause-unbraced-function-initializer.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-requires-clause-unbraced-function-initializer.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-template-argument.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-template-argument.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-ufcs-arguments.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-ufcs-arguments.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-ufcs-name-lookup.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-ufcs-name-lookup.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-ufcs-noexcept.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-ufcs-sfinae.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-unbraced-function-expression.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-unbraced-function-expression.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-variable-template.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-bugfix-for-variable-template.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-chained-comparisons.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-chained-comparisons.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-concept-definition.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-concept-definition.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-contracts.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-contracts.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-defaulted-comparisons-and-final-types.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-defaulted-comparisons-and-final-types.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-enum.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-enum.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-for-loop-range-with-lambda.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-for-loop-range-with-lambda.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-forward-return.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-forward-return.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-function-multiple-forward-arguments.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-function-multiple-forward-arguments.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-hello.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-hello.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-initialization-safety-with-else-if.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-initialization-safety-with-else-if.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-inspect-expression-in-generic-function-multiple-types.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-inspect-expression-in-generic-function-multiple-types.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-inspect-expression-with-as-in-generic-function.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-inspect-expression-with-as-in-generic-function.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-inspect-fallback-with-variant-any-optional.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-inspect-fallback-with-variant-any-optional.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-inspect-generic-void-empty-with-variant-any-optional.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-inspect-generic-void-empty-with-variant-any-optional.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-interpolation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-interpolation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-intro-example-hello-2022.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-intro-example-hello-2022.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-intro-example-three-loops.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-intro-example-three-loops.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-look-up-parameter-across-unnamed-function.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-look-up-parameter-across-unnamed-function.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-main-args.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-main-args.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-more-wildcards.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-more-wildcards.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-print.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-print.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-raw-string-literal-and-interpolation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-raw-string-literal-and-interpolation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-repeated-call.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-repeated-call.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-requires-clauses.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-requires-clauses.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-statement-scope-parameters.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-statement-scope-parameters.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-stdio-with-raii.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-stdio-with-raii.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-stdio.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-stdio.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-synthesize-rightshift-and-rightshifteq.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-synthesize-rightshift-and-rightshifteq.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-template-parameter-lists.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-template-parameter-lists.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-type-and-namespace-aliases.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-type-and-namespace-aliases.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-type-safety-1.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-type-safety-1.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-type-safety-2-with-inspect-expression.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-type-safety-2-with-inspect-expression.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-basics.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-basics.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-down-upcast.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-down-upcast.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-inheritance.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-inheritance.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-order-independence-and-nesting.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-order-independence-and-nesting.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-ordering-via-meta-functions.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-ordering-via-meta-functions.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-smf-and-that-1-provide-everything.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-smf-and-that-1-provide-everything.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-smf-and-that-2-provide-mvconstruct-and-cpassign.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-smf-and-that-2-provide-mvconstruct-and-cpassign.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-smf-and-that-3-provide-mvconstruct-and-mvassign.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-smf-and-that-3-provide-mvconstruct-and-mvassign.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-smf-and-that-4-provide-cpassign-and-mvassign.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-smf-and-that-4-provide-cpassign-and-mvassign.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-smf-and-that-5-provide-nothing-but-general-case.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-smf-and-that-5-provide-nothing-but-general-case.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-that-parameters.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-that-parameters.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-value-types-via-meta-functions.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-types-value-types-via-meta-functions.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-ufcs-member-access-and-chaining.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-ufcs-member-access-and-chaining.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-union.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-union.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-variadics.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-variadics.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-various-string-literals.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/pure2-various-string-literals.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/run-tests-clang-12.sh create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-12/xyzzy create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-18/mixed-bugfix-for-ufcs-non-local.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-18/mixed-bugfix-for-ufcs-non-local.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-18/pure2-bugfix-for-ufcs-arguments.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-18/pure2-bugfix-for-ufcs-arguments.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-18/pure2-bugfix-for-ufcs-name-lookup.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-18/pure2-bugfix-for-ufcs-name-lookup.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-18/pure2-bugfix-for-ufcs-noexcept.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-18/pure2-bugfix-for-ufcs-noexcept.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-18/pure2-bugfix-for-ufcs-sfinae.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/clang-18/pure2-bugfix-for-ufcs-sfinae.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/gcc-version.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-allcpp1-hello.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-allcpp1-hello.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-as-for-variant-20-types.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-as-for-variant-20-types.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-bounds-check.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-bounds-check.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-bounds-safety-with-assert-2.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-bounds-safety-with-assert-2.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-bounds-safety-with-assert.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-bounds-safety-with-assert.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-bugfix-for-cpp2-comment-cpp1-sequence.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-bugfix-for-cpp2-comment-cpp1-sequence.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-bugfix-for-literal-as-nttp.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-bugfix-for-literal-as-nttp.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-bugfix-for-ufcs-non-local.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-bugfix-for-ufcs-non-local.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-captures-in-expressions-and-postconditions.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-captures-in-expressions-and-postconditions.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-fixed-type-aliases.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-fixed-type-aliases.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-float-literals.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-float-literals.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-forwarding.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-forwarding.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-function-expression-and-std-for-each.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-function-expression-and-std-for-each.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-function-expression-and-std-ranges-for-each-with-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-function-expression-and-std-ranges-for-each-with-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-function-expression-and-std-ranges-for-each.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-function-expression-and-std-ranges-for-each.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-function-expression-with-pointer-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-function-expression-with-pointer-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-function-expression-with-repeated-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-function-expression-with-repeated-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-hello.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-hello.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-increment-decrement.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-initialization-safety-3-contract-violation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-initialization-safety-3-contract-violation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-initialization-safety-3.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-initialization-safety-3.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-inspect-templates.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-inspect-templates.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-inspect-values-2.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-inspect-values-2.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-inspect-values.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-inspect-values.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-inspect-with-typeof-of-template-arg-list.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-inspect-with-typeof-of-template-arg-list.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-intro-example-three-loops.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-intro-example-three-loops.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-intro-for-with-counter-include-last.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-intro-for-with-counter-include-last.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-lifetime-safety-and-null-contracts.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-lifetime-safety-and-null-contracts.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-lifetime-safety-pointer-init-4.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-lifetime-safety-pointer-init-4.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-multiple-return-values.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-multiple-return-values.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-out-destruction.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-out-destruction.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-parameter-passing-generic-out.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-parameter-passing-generic-out.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-parameter-passing-with-forward.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-parameter-passing-with-forward.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-parameter-passing.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-parameter-passing.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-postexpression-with-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-postexpression-with-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-postfix-expression-custom-formatting.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-postfix-expression-custom-formatting.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-string-interpolation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-string-interpolation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-test-parens.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-test-parens.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-type-safety-1.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-type-safety-1.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-ufcs-multiple-template-arguments.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/mixed-ufcs-multiple-template-arguments.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bounds-safety-span.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bounds-safety-span.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-break-continue.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-break-continue.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-assign-expression-list.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-assign-expression-list.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-discard-precedence.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-discard-precedence.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-max-munch.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-max-munch.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-memberwise-base-assignment.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-memberwise-base-assignment.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-name-lookup-and-value-decoration.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-name-lookup-and-value-decoration.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-non-local-function-expression.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-non-local-function-expression.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-non-local-initialization.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-non-local-initialization.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-optional-template-argument-list.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-optional-template-argument-list.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-requires-clause-in-forward-declaration.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-requires-clause-unbraced-function-initializer.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-requires-clause-unbraced-function-initializer.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-template-argument.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-template-argument.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-ufcs-arguments.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-ufcs-arguments.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-ufcs-name-lookup.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-ufcs-name-lookup.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-ufcs-noexcept.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-ufcs-sfinae.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-ufcs-sfinae.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-unbraced-function-expression.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-unbraced-function-expression.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-variable-template.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-bugfix-for-variable-template.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-chained-comparisons.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-chained-comparisons.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-concept-definition.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-concept-definition.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-contracts.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-contracts.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-defaulted-comparisons-and-final-types.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-defaulted-comparisons-and-final-types.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-enum.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-enum.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-for-loop-range-with-lambda.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-for-loop-range-with-lambda.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-forward-return.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-forward-return.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-function-multiple-forward-arguments.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-function-multiple-forward-arguments.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-hello.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-hello.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-initialization-safety-with-else-if.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-initialization-safety-with-else-if.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-inspect-expression-in-generic-function-multiple-types.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-inspect-expression-in-generic-function-multiple-types.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-inspect-expression-with-as-in-generic-function.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-inspect-expression-with-as-in-generic-function.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-inspect-fallback-with-variant-any-optional.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-inspect-fallback-with-variant-any-optional.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-inspect-generic-void-empty-with-variant-any-optional.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-inspect-generic-void-empty-with-variant-any-optional.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-interpolation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-interpolation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-intro-example-hello-2022.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-intro-example-hello-2022.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-intro-example-three-loops.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-intro-example-three-loops.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-look-up-parameter-across-unnamed-function.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-look-up-parameter-across-unnamed-function.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-main-args.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-main-args.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-more-wildcards.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-more-wildcards.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-print.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-raw-string-literal-and-interpolation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-raw-string-literal-and-interpolation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-repeated-call.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-repeated-call.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-requires-clauses.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-requires-clauses.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-statement-scope-parameters.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-statement-scope-parameters.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-stdio-with-raii.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-stdio-with-raii.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-stdio.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-stdio.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-synthesize-rightshift-and-rightshifteq.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-synthesize-rightshift-and-rightshifteq.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-template-parameter-lists.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-template-parameter-lists.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-type-and-namespace-aliases.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-type-and-namespace-aliases.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-type-safety-1.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-type-safety-1.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-type-safety-2-with-inspect-expression.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-type-safety-2-with-inspect-expression.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-basics.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-basics.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-down-upcast.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-down-upcast.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-inheritance.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-inheritance.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-order-independence-and-nesting.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-order-independence-and-nesting.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-ordering-via-meta-functions.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-ordering-via-meta-functions.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-smf-and-that-1-provide-everything.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-smf-and-that-1-provide-everything.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-smf-and-that-2-provide-mvconstruct-and-cpassign.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-smf-and-that-2-provide-mvconstruct-and-cpassign.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-smf-and-that-3-provide-mvconstruct-and-mvassign.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-smf-and-that-3-provide-mvconstruct-and-mvassign.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-smf-and-that-4-provide-cpassign-and-mvassign.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-smf-and-that-4-provide-cpassign-and-mvassign.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-smf-and-that-5-provide-nothing-but-general-case.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-smf-and-that-5-provide-nothing-but-general-case.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-that-parameters.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-that-parameters.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-value-types-via-meta-functions.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-types-value-types-via-meta-functions.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-ufcs-member-access-and-chaining.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-ufcs-member-access-and-chaining.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-union.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-union.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-variadics.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-variadics.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-various-string-literals.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/pure2-various-string-literals.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/run-tests-gcc-10.sh create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-10/xyzzy create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/gcc-version.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-allcpp1-hello.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-allcpp1-hello.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-as-for-variant-20-types.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-as-for-variant-20-types.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-bounds-check.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-bounds-check.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-bounds-safety-with-assert-2.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-bounds-safety-with-assert-2.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-bounds-safety-with-assert.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-bounds-safety-with-assert.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-bugfix-for-cpp2-comment-cpp1-sequence.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-bugfix-for-cpp2-comment-cpp1-sequence.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-bugfix-for-literal-as-nttp.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-bugfix-for-literal-as-nttp.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-bugfix-for-ufcs-non-local.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-captures-in-expressions-and-postconditions.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-captures-in-expressions-and-postconditions.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-fixed-type-aliases.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-fixed-type-aliases.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-float-literals.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-float-literals.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-forwarding.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-forwarding.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-function-expression-and-std-for-each.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-function-expression-and-std-for-each.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-function-expression-and-std-ranges-for-each-with-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-function-expression-and-std-ranges-for-each-with-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-function-expression-and-std-ranges-for-each.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-function-expression-and-std-ranges-for-each.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-function-expression-with-pointer-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-function-expression-with-pointer-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-function-expression-with-repeated-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-function-expression-with-repeated-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-hello.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-hello.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-increment-decrement.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-increment-decrement.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-initialization-safety-3-contract-violation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-initialization-safety-3-contract-violation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-initialization-safety-3.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-initialization-safety-3.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-inspect-templates.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-inspect-templates.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-inspect-values-2.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-inspect-values-2.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-inspect-values.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-inspect-values.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-inspect-with-typeof-of-template-arg-list.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-inspect-with-typeof-of-template-arg-list.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-intro-example-three-loops.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-intro-example-three-loops.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-intro-for-with-counter-include-last.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-intro-for-with-counter-include-last.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-lifetime-safety-and-null-contracts.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-lifetime-safety-and-null-contracts.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-lifetime-safety-pointer-init-4.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-lifetime-safety-pointer-init-4.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-multiple-return-values.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-multiple-return-values.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-out-destruction.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-out-destruction.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-parameter-passing-generic-out.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-parameter-passing-generic-out.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-parameter-passing-with-forward.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-parameter-passing-with-forward.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-parameter-passing.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-parameter-passing.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-postexpression-with-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-postexpression-with-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-postfix-expression-custom-formatting.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-postfix-expression-custom-formatting.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-string-interpolation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-string-interpolation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-test-parens.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-test-parens.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-type-safety-1.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-type-safety-1.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-ufcs-multiple-template-arguments.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/mixed-ufcs-multiple-template-arguments.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bounds-safety-span.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bounds-safety-span.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-break-continue.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-break-continue.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-assign-expression-list.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-assign-expression-list.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-discard-precedence.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-discard-precedence.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-empty-index.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-max-munch.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-max-munch.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-memberwise-base-assignment.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-memberwise-base-assignment.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-name-lookup-and-value-decoration.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-name-lookup-and-value-decoration.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-non-local-function-expression.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-non-local-function-expression.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-non-local-initialization.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-non-local-initialization.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-optional-template-argument-list.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-optional-template-argument-list.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-requires-clause-in-forward-declaration.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-requires-clause-in-forward-declaration.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-requires-clause-unbraced-function-initializer.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-requires-clause-unbraced-function-initializer.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-template-argument.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-template-argument.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-ufcs-arguments.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-ufcs-arguments.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-ufcs-name-lookup.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-ufcs-name-lookup.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-ufcs-noexcept.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-ufcs-noexcept.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-ufcs-sfinae.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-ufcs-sfinae.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-unbraced-function-expression.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-unbraced-function-expression.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-variable-template.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-bugfix-for-variable-template.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-chained-comparisons.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-chained-comparisons.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-concept-definition.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-concept-definition.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-contracts.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-contracts.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-defaulted-comparisons-and-final-types.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-defaulted-comparisons-and-final-types.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-enum.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-enum.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-for-loop-range-with-lambda.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-for-loop-range-with-lambda.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-forward-return.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-forward-return.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-function-multiple-forward-arguments.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-function-multiple-forward-arguments.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-hello.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-hello.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-initialization-safety-with-else-if.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-initialization-safety-with-else-if.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-inspect-expression-in-generic-function-multiple-types.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-inspect-expression-in-generic-function-multiple-types.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-inspect-expression-with-as-in-generic-function.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-inspect-expression-with-as-in-generic-function.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-inspect-fallback-with-variant-any-optional.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-inspect-fallback-with-variant-any-optional.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-inspect-generic-void-empty-with-variant-any-optional.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-inspect-generic-void-empty-with-variant-any-optional.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-interpolation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-interpolation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-intro-example-hello-2022.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-intro-example-hello-2022.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-intro-example-three-loops.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-intro-example-three-loops.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-look-up-parameter-across-unnamed-function.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-look-up-parameter-across-unnamed-function.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-main-args.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-main-args.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-more-wildcards.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-more-wildcards.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-print.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-print.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-raw-string-literal-and-interpolation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-raw-string-literal-and-interpolation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-repeated-call.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-repeated-call.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-requires-clauses.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-requires-clauses.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-statement-scope-parameters.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-statement-scope-parameters.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-stdio-with-raii.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-stdio-with-raii.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-stdio.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-stdio.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-synthesize-rightshift-and-rightshifteq.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-synthesize-rightshift-and-rightshifteq.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-template-parameter-lists.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-template-parameter-lists.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-type-and-namespace-aliases.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-type-and-namespace-aliases.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-type-safety-1.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-type-safety-1.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-type-safety-2-with-inspect-expression.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-type-safety-2-with-inspect-expression.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-basics.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-basics.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-down-upcast.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-down-upcast.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-inheritance.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-inheritance.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-order-independence-and-nesting.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-order-independence-and-nesting.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-ordering-via-meta-functions.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-ordering-via-meta-functions.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-smf-and-that-1-provide-everything.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-smf-and-that-1-provide-everything.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-smf-and-that-2-provide-mvconstruct-and-cpassign.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-smf-and-that-2-provide-mvconstruct-and-cpassign.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-smf-and-that-3-provide-mvconstruct-and-mvassign.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-smf-and-that-3-provide-mvconstruct-and-mvassign.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-smf-and-that-4-provide-cpassign-and-mvassign.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-smf-and-that-4-provide-cpassign-and-mvassign.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-smf-and-that-5-provide-nothing-but-general-case.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-smf-and-that-5-provide-nothing-but-general-case.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-that-parameters.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-that-parameters.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-value-types-via-meta-functions.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-types-value-types-via-meta-functions.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-ufcs-member-access-and-chaining.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-ufcs-member-access-and-chaining.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-union.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-union.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-variadics.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-variadics.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-various-string-literals.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/pure2-various-string-literals.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/run-tests-gcc-13.sh create mode 100644 CompilerDriver/cc2/regression-tests/test-results/gcc-13/xyzzy create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-allcpp1-hello.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-allcpp1-hello.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-as-for-variant-20-types.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-as-for-variant-20-types.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-bounds-check.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-bounds-check.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-bounds-safety-with-assert-2.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-bounds-safety-with-assert-2.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-bounds-safety-with-assert.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-bounds-safety-with-assert.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-bugfix-for-cpp2-comment-cpp1-sequence.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-bugfix-for-cpp2-comment-cpp1-sequence.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-bugfix-for-literal-as-nttp.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-bugfix-for-literal-as-nttp.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-bugfix-for-ufcs-non-local.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-bugfix-for-ufcs-non-local.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-captures-in-expressions-and-postconditions.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-captures-in-expressions-and-postconditions.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-fixed-type-aliases.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-fixed-type-aliases.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-float-literals.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-float-literals.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-forwarding.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-forwarding.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-function-expression-and-std-for-each.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-function-expression-and-std-for-each.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-function-expression-and-std-ranges-for-each-with-capture.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-function-expression-and-std-ranges-for-each-with-capture.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-function-expression-and-std-ranges-for-each.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-function-expression-and-std-ranges-for-each.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-function-expression-with-pointer-capture.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-function-expression-with-pointer-capture.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-function-expression-with-repeated-capture.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-function-expression-with-repeated-capture.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-hello.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-hello.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-increment-decrement.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-increment-decrement.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-initialization-safety-1-error.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-initialization-safety-2-error.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-initialization-safety-3-contract-violation.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-initialization-safety-3-contract-violation.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-initialization-safety-3.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-initialization-safety-3.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-inspect-templates.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-inspect-templates.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-inspect-values-2.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-inspect-values-2.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-inspect-values.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-inspect-values.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-inspect-with-typeof-of-template-arg-list.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-inspect-with-typeof-of-template-arg-list.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-intro-example-three-loops.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-intro-example-three-loops.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-intro-for-with-counter-include-last.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-intro-for-with-counter-include-last.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-lifetime-safety-and-null-contracts.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-lifetime-safety-and-null-contracts.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-lifetime-safety-pointer-init-1-error.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-lifetime-safety-pointer-init-2-error.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-lifetime-safety-pointer-init-3-error.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-lifetime-safety-pointer-init-4.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-lifetime-safety-pointer-init-4.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-multiple-return-values.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-multiple-return-values.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-out-destruction.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-out-destruction.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-parameter-passing-generic-out.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-parameter-passing-generic-out.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-parameter-passing-with-forward.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-parameter-passing-with-forward.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-parameter-passing.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-parameter-passing.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-postexpression-with-capture.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-postexpression-with-capture.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-postfix-expression-custom-formatting.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-postfix-expression-custom-formatting.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-string-interpolation.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-string-interpolation.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-test-parens.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-test-parens.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-type-safety-1.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-type-safety-1.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-ufcs-multiple-template-arguments.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/mixed-ufcs-multiple-template-arguments.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/MSVC-version.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-allcpp1-hello.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-allcpp1-hello.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-as-for-variant-20-types.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-as-for-variant-20-types.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-bounds-check.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-bounds-check.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-bounds-safety-with-assert-2.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-bounds-safety-with-assert-2.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-bounds-safety-with-assert.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-bounds-safety-with-assert.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-bugfix-for-cpp2-comment-cpp1-sequence.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-bugfix-for-cpp2-comment-cpp1-sequence.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-bugfix-for-literal-as-nttp.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-bugfix-for-literal-as-nttp.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-bugfix-for-ufcs-non-local.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-bugfix-for-ufcs-non-local.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-captures-in-expressions-and-postconditions.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-captures-in-expressions-and-postconditions.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-fixed-type-aliases.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-fixed-type-aliases.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-float-literals.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-float-literals.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-forwarding.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-forwarding.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-function-expression-and-std-for-each.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-function-expression-and-std-for-each.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-function-expression-and-std-ranges-for-each-with-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-function-expression-and-std-ranges-for-each-with-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-function-expression-and-std-ranges-for-each.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-function-expression-and-std-ranges-for-each.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-function-expression-with-pointer-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-function-expression-with-pointer-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-function-expression-with-repeated-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-function-expression-with-repeated-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-hello.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-hello.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-increment-decrement.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-increment-decrement.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-initialization-safety-3-contract-violation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-initialization-safety-3-contract-violation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-initialization-safety-3.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-initialization-safety-3.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-inspect-templates.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-inspect-templates.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-inspect-values-2.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-inspect-values-2.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-inspect-values.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-inspect-values.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-inspect-with-typeof-of-template-arg-list.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-inspect-with-typeof-of-template-arg-list.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-intro-example-three-loops.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-intro-example-three-loops.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-intro-for-with-counter-include-last.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-intro-for-with-counter-include-last.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-lifetime-safety-and-null-contracts.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-lifetime-safety-and-null-contracts.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-lifetime-safety-pointer-init-4.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-lifetime-safety-pointer-init-4.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-multiple-return-values.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-multiple-return-values.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-out-destruction.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-out-destruction.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-parameter-passing-generic-out.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-parameter-passing-generic-out.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-parameter-passing-with-forward.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-parameter-passing-with-forward.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-parameter-passing.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-parameter-passing.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-postexpression-with-capture.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-postexpression-with-capture.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-postfix-expression-custom-formatting.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-postfix-expression-custom-formatting.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-string-interpolation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-string-interpolation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-test-parens.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-test-parens.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-type-safety-1.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-type-safety-1.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-ufcs-multiple-template-arguments.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/mixed-ufcs-multiple-template-arguments.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bounds-safety-span.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bounds-safety-span.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-break-continue.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-break-continue.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-assign-expression-list.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-assign-expression-list.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-discard-precedence.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-discard-precedence.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-max-munch.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-max-munch.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-memberwise-base-assignment.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-memberwise-base-assignment.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-name-lookup-and-value-decoration.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-name-lookup-and-value-decoration.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-non-local-function-expression.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-non-local-function-expression.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-non-local-initialization.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-non-local-initialization.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-optional-template-argument-list.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-optional-template-argument-list.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-requires-clause-in-forward-declaration.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-requires-clause-in-forward-declaration.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-requires-clause-unbraced-function-initializer.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-requires-clause-unbraced-function-initializer.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-template-argument.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-template-argument.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-ufcs-arguments.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-ufcs-arguments.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-ufcs-name-lookup.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-ufcs-name-lookup.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-ufcs-noexcept.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-ufcs-noexcept.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-ufcs-sfinae.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-ufcs-sfinae.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-unbraced-function-expression.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-unbraced-function-expression.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-variable-template.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-bugfix-for-variable-template.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-chained-comparisons.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-chained-comparisons.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-concept-definition.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-concept-definition.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-contracts.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-contracts.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-defaulted-comparisons-and-final-types.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-defaulted-comparisons-and-final-types.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-enum.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-enum.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-for-loop-range-with-lambda.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-for-loop-range-with-lambda.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-forward-return.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-forward-return.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-function-multiple-forward-arguments.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-function-multiple-forward-arguments.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-hello.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-hello.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-initialization-safety-with-else-if.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-initialization-safety-with-else-if.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-inspect-expression-in-generic-function-multiple-types.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-inspect-expression-in-generic-function-multiple-types.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-inspect-expression-with-as-in-generic-function.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-inspect-expression-with-as-in-generic-function.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-inspect-fallback-with-variant-any-optional.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-inspect-fallback-with-variant-any-optional.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-inspect-generic-void-empty-with-variant-any-optional.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-inspect-generic-void-empty-with-variant-any-optional.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-interpolation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-interpolation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-intro-example-hello-2022.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-intro-example-hello-2022.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-intro-example-three-loops.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-intro-example-three-loops.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-look-up-parameter-across-unnamed-function.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-look-up-parameter-across-unnamed-function.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-main-args.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-main-args.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-more-wildcards.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-more-wildcards.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-print.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-print.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-raw-string-literal-and-interpolation.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-raw-string-literal-and-interpolation.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-repeated-call.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-repeated-call.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-requires-clauses.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-requires-clauses.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-statement-scope-parameters.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-statement-scope-parameters.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-stdio-with-raii.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-stdio-with-raii.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-stdio.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-stdio.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-synthesize-rightshift-and-rightshifteq.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-synthesize-rightshift-and-rightshifteq.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-template-parameter-lists.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-template-parameter-lists.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-type-and-namespace-aliases.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-type-and-namespace-aliases.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-type-safety-1.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-type-safety-1.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-type-safety-2-with-inspect-expression.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-type-safety-2-with-inspect-expression.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-basics.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-basics.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-down-upcast.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-down-upcast.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-inheritance.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-inheritance.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-order-independence-and-nesting.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-order-independence-and-nesting.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-ordering-via-meta-functions.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-ordering-via-meta-functions.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-smf-and-that-1-provide-everything.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-smf-and-that-1-provide-everything.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-smf-and-that-2-provide-mvconstruct-and-cpassign.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-smf-and-that-2-provide-mvconstruct-and-cpassign.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-smf-and-that-3-provide-mvconstruct-and-mvassign.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-smf-and-that-3-provide-mvconstruct-and-mvassign.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-smf-and-that-4-provide-cpassign-and-mvassign.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-smf-and-that-4-provide-cpassign-and-mvassign.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-smf-and-that-5-provide-nothing-but-general-case.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-smf-and-that-5-provide-nothing-but-general-case.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-that-parameters.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-that-parameters.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-value-types-via-meta-functions.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-types-value-types-via-meta-functions.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-ufcs-member-access-and-chaining.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-ufcs-member-access-and-chaining.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-union.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-union.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-variadics.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-variadics.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-various-string-literals.cpp.execution create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/pure2-various-string-literals.cpp.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/run-tests-msvc-2022.bat create mode 100644 CompilerDriver/cc2/regression-tests/test-results/msvc-2022/xyzzy create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bounds-safety-pointer-arithmetic-error.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bounds-safety-span.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bounds-safety-span.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-break-continue.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-break-continue.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-assign-expression-list.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-assign-expression-list.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-declaration-equal-error.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-discard-precedence.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-discard-precedence.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-max-munch.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-max-munch.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-memberwise-base-assignment.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-memberwise-base-assignment.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-name-lookup-and-value-decoration.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-name-lookup-and-value-decoration.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-non-local-function-expression.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-non-local-function-expression.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-non-local-initialization.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-non-local-initialization.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-optional-template-argument-list.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-optional-template-argument-list.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-parameter-decl-list-error.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-requires-clause-in-forward-declaration.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-requires-clause-in-forward-declaration.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-requires-clause-unbraced-function-initializer.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-requires-clause-unbraced-function-initializer.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-template-argument.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-template-argument.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-ufcs-arguments.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-ufcs-arguments.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-ufcs-name-lookup.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-ufcs-name-lookup.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-ufcs-noexcept.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-ufcs-noexcept.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-ufcs-sfinae.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-ufcs-sfinae.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-unbraced-function-expression.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-unbraced-function-expression.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-variable-template.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-bugfix-for-variable-template.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-chained-comparisons.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-chained-comparisons.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-concept-definition.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-concept-definition.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-contracts.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-contracts.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-cpp1-multitoken-fundamental-types-error.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-cpp1-prefix-expression-error.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-deducing-pointers-error.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-defaulted-comparisons-and-final-types.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-defaulted-comparisons-and-final-types.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-enum.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-enum.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-for-loop-range-with-lambda.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-for-loop-range-with-lambda.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-forward-return-diagnostics-error.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-forward-return.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-forward-return.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-function-multiple-forward-arguments.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-function-multiple-forward-arguments.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-hello.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-hello.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-initialization-safety-with-else-if.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-initialization-safety-with-else-if.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-inspect-expression-in-generic-function-multiple-types.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-inspect-expression-in-generic-function-multiple-types.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-inspect-expression-with-as-in-generic-function.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-inspect-expression-with-as-in-generic-function.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-inspect-fallback-with-variant-any-optional.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-inspect-fallback-with-variant-any-optional.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-inspect-generic-void-empty-with-variant-any-optional.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-inspect-generic-void-empty-with-variant-any-optional.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-interpolation.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-interpolation.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-intro-example-hello-2022.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-intro-example-hello-2022.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-intro-example-three-loops.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-intro-example-three-loops.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-lifetime-safety-pointer-init-1-error.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-lifetime-safety-reject-null-error.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-look-up-parameter-across-unnamed-function.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-look-up-parameter-across-unnamed-function.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-main-args.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-main-args.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-more-wildcards.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-more-wildcards.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-print.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-print.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-raw-string-literal-and-interpolation.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-raw-string-literal-and-interpolation.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-repeated-call.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-repeated-call.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-requires-clauses.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-requires-clauses.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-return-tuple-no-identifier-error.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-return-tuple-no-type-error.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-statement-parse-error.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-statement-scope-parameters.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-statement-scope-parameters.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-stdio-with-raii.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-stdio-with-raii.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-stdio.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-stdio.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-synthesize-rightshift-and-rightshifteq.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-synthesize-rightshift-and-rightshifteq.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-template-parameter-lists.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-template-parameter-lists.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-type-and-namespace-aliases.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-type-and-namespace-aliases.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-type-safety-1.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-type-safety-1.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-type-safety-2-with-inspect-expression.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-type-safety-2-with-inspect-expression.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-basics.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-basics.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-down-upcast.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-down-upcast.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-inheritance.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-inheritance.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-order-independence-and-nesting.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-order-independence-and-nesting.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-ordering-via-meta-functions.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-ordering-via-meta-functions.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-smf-and-that-1-provide-everything.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-smf-and-that-1-provide-everything.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-smf-and-that-2-provide-mvconstruct-and-cpassign.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-smf-and-that-2-provide-mvconstruct-and-cpassign.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-smf-and-that-3-provide-mvconstruct-and-mvassign.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-smf-and-that-3-provide-mvconstruct-and-mvassign.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-smf-and-that-4-provide-cpassign-and-mvassign.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-smf-and-that-4-provide-cpassign-and-mvassign.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-smf-and-that-5-provide-nothing-but-general-case.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-smf-and-that-5-provide-nothing-but-general-case.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-that-parameters.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-that-parameters.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-value-types-via-meta-functions.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-types-value-types-via-meta-functions.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-ufcs-member-access-and-chaining.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-ufcs-member-access-and-chaining.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-union.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-union.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-variadics.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-variadics.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-various-string-literals.cpp create mode 100644 CompilerDriver/cc2/regression-tests/test-results/pure2-various-string-literals.cpp2.output create mode 100644 CompilerDriver/cc2/regression-tests/test-results/run-tests.bat create mode 100644 CompilerDriver/cc2/regression-tests/test-results/version create mode 100644 CompilerDriver/cc2/source/build.info create mode 100644 CompilerDriver/cc2/source/common.h create mode 100644 CompilerDriver/cc2/source/cpp2util.h create mode 100644 CompilerDriver/cc2/source/cppfront.cpp create mode 100644 CompilerDriver/cc2/source/io.h create mode 100644 CompilerDriver/cc2/source/lex.h create mode 100644 CompilerDriver/cc2/source/parse.h create mode 100644 CompilerDriver/cc2/source/reflect.h create mode 100644 CompilerDriver/cc2/source/reflect.h2 create mode 100644 CompilerDriver/cc2/source/sema.h create mode 100644 CompilerDriver/cc2/source/to_cpp1.h create mode 100644 CompilerDriver/cc2/source/version.info create mode 100644 CompilerDriver/ccplus.cxx create mode 100644 CompilerDriver/cpp.cxx create mode 100644 CompilerDriver/ld.cxx create mode 100644 CompilerDriver/makefile create mode 100644 CompilerDriver/masm.cxx (limited to 'CompilerDriver') diff --git a/CompilerDriver/.gitignore b/CompilerDriver/.gitignore new file mode 100644 index 0000000..41e8394 --- /dev/null +++ b/CompilerDriver/.gitignore @@ -0,0 +1,18 @@ +bin/ld +bin/cpp +bin/cc +bin/masm +bin/mkcdfs +bin/ccplus +bin/cpp2 + +bin/SourceUnitTest/*.c.pp +bin/SourceUnitTest/*.c +bin/SourceUnitTest/*.cpp.pp +bin/SourceUnitTest/*.cpp +bin/SourceUnitTest/*.cxx.pp +bin/SourceUnitTest/*.cxx +bin/SourceUnitTest/*.masm +bin/SourceUnitTest/*.h + +*.cxx.pp \ No newline at end of file diff --git a/CompilerDriver/bin/.gitkeep b/CompilerDriver/bin/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/CompilerDriver/bin/SourceUnitTest/.gitkeep b/CompilerDriver/bin/SourceUnitTest/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/CompilerDriver/cc.cxx b/CompilerDriver/cc.cxx new file mode 100644 index 0000000..80147ed --- /dev/null +++ b/CompilerDriver/cc.cxx @@ -0,0 +1,1871 @@ +/* + * ======================================================== + * + * cc + * Copyright WestCo, all rights reserved. + * + * ======================================================== + */ + +#include +#include +#include +#include +#include +#include +#include + +#define kOk 0 + +/* WestCo C driver */ +/* This is part of MP-UX C SDK. */ +/* (c) WestCo */ + +///////////////////// + +// ANSI ESCAPE CODES + +///////////////////// + +#define kBlank "\e[0;30m" +#define kRed "\e[0;31m" +#define kWhite "\e[0;97m" + +///////////////////////////////////// + +// INTERNAL STUFF OF THE C COMPILER + +///////////////////////////////////// + +namespace detail +{ + struct CompilerRegisterMap + { + std::string fName; + std::string fRegister; + }; + + struct CompilerState + { + std::vector fSyntaxTreeList; + std::vector kStackFrame; + ParserKit::SyntaxLeafList* fSyntaxTree{ nullptr }; + std::unique_ptr fOutputAssembly; + std::string fLastFile; + std::string fLastError; + bool kVerbose; + }; +} + +static detail::CompilerState kState; +static SizeType kErrorLimit = 100; + +static Int32 kAcceptableErrors = 0; + +namespace detail +{ + void print_error(std::string reason, std::string file) noexcept + { + if (reason[0] == '\n') + reason.erase(0, 1); + + if (file.find(".pp") != std::string::npos) + { + file.erase(file.find(".pp"), 3); + } + + if (kState.fLastFile != file) + { + std::cout << kRed << "[ cc ] " << kWhite << ((file == "cc") ? "internal compiler error " : ("in file, " + file)) << kBlank << std::endl; + std::cout << kRed << "[ cc ] " << kWhite << reason << kBlank << std::endl; + + kState.fLastFile = file; + } + else + { + std::cout << kRed << "[ cc ] [ " << kState.fLastFile << " ] " << kWhite << reason << kBlank << std::endl; + } + + if (kAcceptableErrors > kErrorLimit) + std::exit(3); + + ++kAcceptableErrors; + } + + struct CompilerType + { + std::string fName; + std::string fValue; + }; +} + +///////////////////////////////////////////////////////////////////////////////////////// + +// Target architecture. +static int kMachine = 0; + +///////////////////////////////////////// + +// REGISTERS ACCORDING TO USED ASSEMBLER + +///////////////////////////////////////// + +static size_t kRegisterCnt = kAsmRegisterLimit; +static size_t kStartUsable = 1; +static size_t kUsableLimit = 14; +static size_t kRegisterCounter = kStartUsable; +static std::string kRegisterPrefix = kAsmRegisterPrefix; + +///////////////////////////////////////// + +// COMPILER PARSING UTILITIES/STATES. + +///////////////////////////////////////// + +static std::vector kFileList; +static CxxKit::AssemblyFactory kFactory; +static bool kInStruct = false; +static bool kOnWhileLoop = false; +static bool kOnForLoop = false; +static bool kInBraces = false; +static size_t kBracesCount = 0UL; + +/* @brief C compiler backend for WestCo C */ +class CompilerBackendClang final : public ParserKit::CompilerBackend +{ +public: + explicit CompilerBackendClang() = default; + ~CompilerBackendClang() override = default; + + CXXKIT_COPY_DEFAULT(CompilerBackendClang); + + std::string Check(const char* text, const char* file); + void Compile(const char* text, const char* file) override; + + const char* Language() override { return "C"; } + +}; + +static CompilerBackendClang* kCompilerBackend = nullptr; +static std::vector kCompilerVariables; +static std::vector kCompilerFunctions; +static std::vector kCompilerTypes; + +// @brief this hook code before the begin/end command. +static std::string kAddIfAnyBegin; +static std::string kAddIfAnyEnd; +static std::string kLatestVar; + +static std::string cc_parse_function_call(std::string& _text) +{ + if (_text[0] == '(') { + std::string substr; + std::string args_buffer; + std::string args; + + bool type_crossed = false; + + for (char substr_first_index: _text) + { + args_buffer += substr_first_index; + + if (substr_first_index == ';') + { + args_buffer = args_buffer.erase(0, args_buffer.find('(')); + args_buffer = args_buffer.erase(args_buffer.find(';'), 1); + args_buffer = args_buffer.erase(args_buffer.find(')'), 1); + args_buffer = args_buffer.erase(args_buffer.find('('), 1); + + if (!args_buffer.empty()) + args += "\tpsh "; + + while (args_buffer.find(',') != std::string::npos) + { + args_buffer.replace(args_buffer.find(','), 1, "\n\tpsh "); + } + + args += args_buffer; + args += "\n\tjlr __import "; + } + } + + return args; + } + + return ""; +} + +#include + +namespace detail +{ + union number_type + { + number_type(UInt64 raw) + : raw(raw) + {} + + char number[8]; + UInt64 raw; + }; +} + +///////////////////////////////////////////////////////////////////////////////////////// + +// @name Compile +// @brief Generate MASM from a C source. + +///////////////////////////////////////////////////////////////////////////////////////// + +void CompilerBackendClang::Compile(const char* text, const char* file) +{ + std::string _text = text; + + auto syntax_tree = ParserKit::SyntaxLeafList::SyntaxLeaf(); + bool type_found = false; + bool function_found = false; + + // start parsing + for (size_t text_index = 0; text_index < _text.size(); ++text_index) + { + uuid_t out{0}; + + uuid_generate_random(out); + detail::number_type time_off = (UInt64)out; + + if (!type_found) + { + auto substr = _text.substr(text_index); + std::string match_type; + + for (size_t y = 0; y < substr.size(); ++y) + { + if (substr[y] == ' ') + { + while (match_type.find(' ') != std::string::npos) { + match_type.erase(match_type.find(' ')); + } + + for (auto& clType : kCompilerTypes) + { + if (clType.fName == match_type) + { + match_type.clear(); + + std::string buf; + + buf += clType.fValue; + buf += ' '; + + if (clType.fName == "struct" || + clType.fName == "union") + { + for (size_t a = y + 1; a < substr.size(); a++) + { + if (substr[a] == ' ') + { + break; + } + + if (substr[a] == '\n') + break; + + buf += substr[a]; + } + } + + if (substr.find('=') != std::string::npos) + { + break; + } + + if (_text.find('(') != std::string::npos) + { + syntax_tree.fUserValue = buf; + + kState.fSyntaxTree->fLeafList.push_back(syntax_tree); + } + + type_found = true; + break; + } + } + + break; + } + + match_type += substr[y]; + } + } + + if (_text[text_index] == '{') + { + if (kInStruct) + { + continue; + } + + kInBraces = true; + ++kBracesCount; + + if (kOnWhileLoop || + kOnForLoop) + { + syntax_tree.fUserValue = "void __export .text _L"; + syntax_tree.fUserValue += std::to_string(kBracesCount) + "_" + std::to_string(time_off.raw); + syntax_tree.fUserValue += "\nbegin"; + } + else + { + syntax_tree.fUserValue = "begin\n"; + syntax_tree.fUserValue += kAddIfAnyBegin; + } + + kState.fSyntaxTree->fLeafList.push_back(syntax_tree); + } + + // return keyword handler + if (_text[text_index] == 'r') + { + std::string return_keyword; + return_keyword += "return"; + + std::size_t index = 0UL; + + std::string value; + + for (size_t return_index = text_index; return_index < _text.size(); ++return_index) + { + if (_text[return_index] != return_keyword[index]) + { + for (size_t value_index = return_index; value_index < _text.size(); ++value_index) + { + if (_text[value_index] == ';') + break; + + value += _text[value_index]; + } + + break; + } + + ++index; + } + + if (index == return_keyword.size()) + { + if (!value.empty()) + { + if (value.find('(') != std::string::npos) + { + value.erase(value.find('(')); + } + + if (!isdigit(value[value.find('(') + 2])) + { + std::string tmp = value; + + value.clear(); + value += " __import"; + value += tmp; + } + + syntax_tree.fUserValue = "\tldw r31, "; + + // make it pretty. + if (value.find('\t') != std::string::npos) + value.erase(value.find('\t'), 1); + + syntax_tree.fUserValue += value + "\n"; + } + + syntax_tree.fUserValue += "\tjlr r31"; + + kState.fSyntaxTree->fLeafList.push_back(syntax_tree); + + break; + } + } + + if (_text[text_index] == 'i' && + _text[text_index + 1] == 'f') + { + std::string format = "ldw r15, %s\nldw r16, %s2\n"; + std::string expr = format; + + if (ParserKit::find_word(_text, "==")) + { + expr += "\nbeq"; + } + + if (ParserKit::find_word(_text, "!=")) + { + expr += "\nbneq"; + } + + if (ParserKit::find_word(_text, ">=")) + { + expr += "\nbge"; + } + else if (ParserKit::find_word(_text, ">")) + { + expr += "\nbg"; + } + + if (ParserKit::find_word(_text, "<=")) + { + expr += "\nble"; + } + else if (ParserKit::find_word(_text, "<")) + { + expr += "\nbl"; + } + + std::string substr = expr; + + std::string buf; + + for (size_t text_index_2 = (_text.find("if") + std::string("if").size()); text_index_2 < _text.size(); ++text_index_2) + { + if (_text[text_index_2] == ';') + { + buf.clear(); + + for (size_t text_index_3 = text_index_2 + 1; text_index_3 < _text.size(); text_index_3++) + { + if (_text[text_index_3] == '{') + continue; + + if (_text[text_index_3] == '}') + continue; + + if (_text[text_index_3] == ' ') + continue; + + if (_text[text_index_3] == '=') + continue; + + if (_text[text_index_3] == '<' && + _text[text_index_3+1] == '=' || + _text[text_index_3] == '=' && + _text[text_index_3+1] == '=' || + _text[text_index_3] == '>' && + _text[text_index_3+1] == '=' || + _text[text_index_3] == '>' || + _text[text_index_3] == '<' && + _text[text_index_3+1] == '=' || + _text[text_index_3] == '!') + { + buf += ", "; + continue; + } + else if (_text[text_index_3] == '=') + { + continue; + } + + buf += _text[text_index_3]; + } + + break; + } + + if (_text[text_index_2] == '{') + continue; + + if (_text[text_index_2] == '}') + continue; + + if (_text[text_index_2] == '<' && + _text[text_index_2+1] == '=' || + _text[text_index_2] == '=' && + _text[text_index_2+1] == '=' || + _text[text_index_2] == '>' && + _text[text_index_2+1] == '=' || + _text[text_index_2] == '>' || + _text[text_index_2] == '<' && + _text[text_index_2+1] == '=' || + _text[text_index_2] == '!') + { + buf += ", "; + continue; + } + else if (_text[text_index_2] == '=') + { + continue; + } + + buf += _text[text_index_2]; + } + + if (buf.find(",") == std::string::npos && + buf.find("(") != std::string::npos && + buf.find(")") != std::string::npos ) + { + + std::string cond = buf.substr(buf.find("(") + 1, buf.find(")") - 1); + cond.erase(cond.find("(")); + + std::string cond2 = buf.substr(buf.find("(") + 1, buf.find(")") - 1); + cond2.erase(cond2.find(")")); + + substr.replace(substr.find("%s"), 2, cond); + substr.replace(substr.find("%s2"), 3, cond2); + + buf.replace(buf.find(cond), cond.size(), "r15"); + buf.replace(buf.find(cond2), cond2.size(), "r16"); + + substr += buf; + + syntax_tree.fUserValue = substr + "\n"; + + kState.fSyntaxTree->fLeafList.push_back(syntax_tree); + + break; + } + else + { + continue; + } + + // dealing with pointer + if (buf.find("*") != std::string::npos) + { + buf.erase(buf.find("*"), 1); + } + + std::string cond = buf.substr(buf.find("(") + 1, buf.find(",") - 1); + cond.erase(cond.find(",")); + + std::string cond2 = buf.substr(buf.find(",") + 1, buf.find(")") - 1); + cond2.erase(cond2.find(")")); + + substr.replace(substr.find("%s"), 2, cond); + substr.replace(substr.find("%s2"), 3, cond2); + + buf.replace(buf.find(cond), cond.size(), "r15"); + buf.replace(buf.find(cond2), cond2.size(), "r16"); + + substr += buf; + + syntax_tree.fUserValue = substr + "\n"; + + kState.fSyntaxTree->fLeafList.push_back(syntax_tree); + + break; + } + + // Parse expressions and instructions here. + // what does this mean? + // we encounter an assignment, or we reached the end of an expression. + if (_text[text_index] == '=' || + _text[text_index] == ';') + { + if (function_found) + continue; + + if (_text[text_index] == ';' && + kInStruct) + continue; + + if (_text.find("typedef ") != std::string::npos) + continue; + + if (_text[text_index] == '=' && + kInStruct) + { + continue; + } + + if (_text[text_index+1] == '=' || + _text[text_index-1] == '!' || + _text[text_index-1] == '<' || + _text[text_index-1] == '>') + { + continue; + } + + std::string substr; + + if (_text.find('=') != std::string::npos && + kInBraces) + { + if (_text.find("*") != std::string::npos) + { + if (_text.find("=") > _text.find("*")) + substr += "\tlda "; + else + substr += "\tldw "; + } + else + { + substr += "\tldw "; + } + } + else if (_text.find('=') != std::string::npos && + !kInBraces) + { + substr += "stw __export .data "; + } + + int first_encountered = 0; + + std::string str_name; + + for (size_t text_index_2 = 0; text_index_2 < _text.size(); ++text_index_2) + { + if (_text[text_index_2] == '\"') + { + ++text_index_2; + + // want to add this, so that the parser recognizes that this is a string. + substr += '"'; + + for (; text_index_2 < _text.size(); ++text_index_2) + { + if (_text[text_index_2] == '\"') + break; + + kLatestVar += _text[text_index_2]; + substr += _text[text_index_2]; + } + } + + if (_text[text_index_2] == '{' || + _text[text_index_2] == '}') + continue; + + if (_text[text_index_2] == ';') + { + break; + } + + if (_text[text_index_2] == ' ' || + _text[text_index_2] == '\t') + { + if (first_encountered != 2) + { + if (_text[text_index] != '=' && + substr.find("__export .data") == std::string::npos && + !kInStruct && + _text.find("struct") == std::string::npos && + _text.find("extern") == std::string::npos && + _text.find("union") == std::string::npos && + _text.find("typedef") == std::string::npos) + substr += "__export .data "; + } + + ++first_encountered; + + continue; + } + + if (_text[text_index_2] == '=') + { + if (!kInBraces) + { + substr.replace(substr.find("__export .data"), strlen("__export .data"), "__export .page_zero "); + } + + substr += ","; + continue; + } + + kLatestVar += _text[text_index_2]; + substr += _text[text_index_2]; + } + + for (auto& clType : kCompilerTypes) + { + if (substr.find(clType.fName) != std::string::npos) + { + if (substr.find(clType.fName) > substr.find('"')) + continue; + + substr.erase(substr.find(clType.fName), clType.fName.size()); + } + else if (substr.find(clType.fValue) != std::string::npos) + { + if (substr.find(clType.fValue) > substr.find('"')) + continue; + + if (clType.fName == "const") + continue; + + substr.erase(substr.find(clType.fValue), clType.fValue.size()); + } + } + + if (substr.find("struct") != std::string::npos) + { + substr.replace(substr.find("struct"), strlen("struct"), "ldw "); + substr += ", 0"; + } + + if (substr.find("union") != std::string::npos) + { + substr.replace(substr.find("union"), strlen("union"), "ldw "); + substr += ", 0"; + } + + if (substr.find("static") != std::string::npos) + { + substr.replace(substr.find("static"), strlen("static"), "__export .data "); + } + else if (substr.find("extern") != std::string::npos) + { + substr.replace(substr.find("extern"), strlen("extern"), "__import "); + + if (substr.find("__export .data") != std::string::npos) + substr.erase(substr.find("__export .data"), strlen("__export .data")); + } + + auto var_to_find = std::find_if(kCompilerVariables.cbegin(), kCompilerVariables.cend(), [&](detail::CompilerType type) { + return type.fName.find(substr) != std::string::npos; + }); + + std::string reg = kAsmRegisterPrefix; + reg += std::to_string(kRegisterCounter); + + if (var_to_find == kCompilerVariables.cend()) + { + ++kRegisterCounter; + + kState.kStackFrame.push_back({ .fName = substr, .fRegister = reg }); + kCompilerVariables.push_back({ .fName = substr }); + } + + syntax_tree.fUserValue += substr; + kState.fSyntaxTree->fLeafList.push_back(syntax_tree); + + if (_text[text_index] == '=') + break; + } + + // function handler. + + if (_text[text_index] == '(' && + !function_found) + { + std::string substr; + std::string args_buffer; + std::string args; + + bool type_crossed = false; + + for (size_t idx = _text.find('(') + 1; idx < _text.size(); ++idx) + { + if (_text[idx] == ',') + continue; + + if (_text[idx] == ' ') + continue; + + if (_text[idx] == ')') + break; + } + + for (char substr_first_index : _text) + { + args_buffer += substr_first_index; + + if (substr_first_index == ';') + { + args_buffer = args_buffer.erase(0, args_buffer.find('(')); + args_buffer = args_buffer.erase(args_buffer.find(';'), 1); + args_buffer = args_buffer.erase(args_buffer.find(')'), 1); + args_buffer = args_buffer.erase(args_buffer.find('('), 1); + + if (!args_buffer.empty()) + args += "\tpsh "; + + while (args_buffer.find(',') != std::string::npos) + { + args_buffer.replace(args_buffer.find(','), 1, "\n\tpsh "); + } + + args += args_buffer; + args += "\n\tjlr __import "; + } + } + + for (char _text_i : _text) + { + if (_text_i == '\t' || + _text_i == ' ') + { + if (!type_crossed) + { + substr.clear(); + type_crossed = true; + } + + continue; + } + + if (_text_i == '(') + break; + + substr += _text_i; + } + + if (kInBraces) + { + syntax_tree.fUserValue = args; + + syntax_tree.fUserValue += substr; + + kState.fSyntaxTree->fLeafList.push_back(syntax_tree); + + function_found = true; + } + else + { + syntax_tree.fUserValue.clear(); + + syntax_tree.fUserValue += "__export .text "; + + syntax_tree.fUserValue += substr; + syntax_tree.fUserValue += "\n"; + + kState.fSyntaxTree->fLeafList.push_back(syntax_tree); + + function_found = true; + } + + kCompilerFunctions.push_back(_text); + } + + if (_text[text_index] == 's') + { + if (_text.find("struct") != text_index) + continue; + + if (_text.find(";") == std::string::npos) + kInStruct = true; + } + + if (_text[text_index] == 'u') + { + if (_text.find("union") != text_index) + continue; + + if (_text.find(";") == std::string::npos) + kInStruct = true; + } + + if (_text[text_index] == 'e') + { + if (_text.find("enum") != text_index) + continue; + + if (_text.find(";") == std::string::npos) + kInStruct = true; + } + + if (_text[text_index] == '-' && + _text[text_index+1] == '-') + { + _text = _text.replace(_text.find("--"), strlen("--"), ""); + + for (int _text_i = 0; _text_i < _text.size(); ++_text_i) + { + if (_text[_text_i] == '\t' || + _text[_text_i] == ' ') + _text.erase(_text_i, 1); + } + + syntax_tree.fUserValue += "dec "; + syntax_tree.fUserValue += _text; + + kState.fSyntaxTree->fLeafList.push_back(syntax_tree); + break; + } + + // while loop + if (_text[text_index] == 'w') + { + if (_text.find("while") == std::string::npos) + continue; + + if (_text.find("while") != text_index) + continue; + + syntax_tree.fUserValue = "jrl [r32+0x01]"; + + std::string symbol_loop = "_loop_while_"; + symbol_loop += std::to_string(time_off.raw); + symbol_loop += " "; + + syntax_tree.fUserValue = "beq "; + syntax_tree.fUserValue += kState.kStackFrame[kState.kStackFrame.size() - 2].fRegister; + syntax_tree.fUserValue += ","; + syntax_tree.fUserValue += kState.kStackFrame[kState.kStackFrame.size() - 1].fRegister; + syntax_tree.fUserValue += ", __end%s\njb __continue%s\n__export .text __end%s\nbegin\njlr r31\nend\nvoid __export .text __continue%s\nbegin\njb _L"; + syntax_tree.fUserValue += std::to_string(kBracesCount + 1) + "_" + std::to_string(time_off.raw); + syntax_tree.fUserValue += "\nend\nend"; + + while (syntax_tree.fUserValue.find("%s") != std::string::npos) + { + syntax_tree.fUserValue.replace(syntax_tree.fUserValue.find("%s"), strlen("%s"), symbol_loop); + } + + kState.fSyntaxTree->fLeafList.push_back(syntax_tree); + + kOnWhileLoop = true; + + break; + } + + if (_text[text_index] == 'f') + { + if (_text.find("for") == std::string::npos) + continue; + + if (_text.find("for") != text_index) + continue; + + syntax_tree.fUserValue = "jrl [r32+0x1]\n"; + + // actually set registers now. + + auto expr = _text.substr(_text.find("for") + strlen("for")); + + kLatestVar.clear(); + + kState.fSyntaxTree->fLeafList.push_back(syntax_tree); + + kOnForLoop = true; + break; + } + + if (_text[text_index] == '+' && + _text[text_index+1] == '+') + { + _text = _text.replace(_text.find("++"), strlen("++"), ""); + + for (int _text_i = 0; _text_i < _text.size(); ++_text_i) + { + if (_text[_text_i] == '\t' || + _text[_text_i] == ' ') + _text.erase(_text_i, 1); + } + + syntax_tree.fUserValue += "add "; + syntax_tree.fUserValue += _text; + + if (syntax_tree.fUserValue.find(";") != std::string::npos) + syntax_tree.fUserValue.erase(syntax_tree.fUserValue.find(";"), 1); + + kState.fSyntaxTree->fLeafList.push_back(syntax_tree); + } + + if (_text[text_index] == '}') + { + kRegisterCounter = kStartUsable; + + --kBracesCount; + + if (kBracesCount < 1) + { + kInBraces = false; + kBracesCount = 0; + } + + if (kInStruct) + kInStruct = false; + + if (!kInBraces) + { + syntax_tree.fUserValue += kAddIfAnyEnd; + syntax_tree.fUserValue = "\nend "; + + kAddIfAnyEnd.clear(); + + kState.fSyntaxTree->fLeafList.push_back(syntax_tree); + } + else + { + if (kOnWhileLoop || + kOnForLoop) + { + if (kOnForLoop) + kOnForLoop = false; + + if (kOnWhileLoop) + kOnWhileLoop = false; + + std::string symbol_loop = "_loop_for_"; + symbol_loop += std::to_string(time_off.raw); + symbol_loop += " "; + + syntax_tree.fUserValue = "beq "; + syntax_tree.fUserValue += kState.kStackFrame[kState.kStackFrame.size() - 2].fRegister; + syntax_tree.fUserValue += ","; + syntax_tree.fUserValue += kState.kStackFrame[kState.kStackFrame.size() - 1].fRegister; + syntax_tree.fUserValue += ", __end%s\njb __continue%s\n__export .text __end%s\nbegin\njlr r31\nend\nvoid __export .text __continue%s\nbegin\njb _L"; + syntax_tree.fUserValue += std::to_string(kBracesCount + 1) + "_" + std::to_string(time_off.raw); + syntax_tree.fUserValue += "\nend\nend"; + + while (syntax_tree.fUserValue.find("%s") != std::string::npos) + { + syntax_tree.fUserValue.replace(syntax_tree.fUserValue.find("%s"), strlen("%s"), symbol_loop); + } + + kState.fSyntaxTree->fLeafList.push_back(syntax_tree); + } + else + { + syntax_tree.fUserValue = "\nend "; + kState.fSyntaxTree->fLeafList.push_back(syntax_tree); + } + } + } + + syntax_tree.fUserValue.clear(); + } + + syntax_tree.fUserValue = "\n"; + kState.fSyntaxTree->fLeafList.push_back(syntax_tree); +} + +static bool kShouldHaveBraces = false; +static std::string kFnName; + +std::string CompilerBackendClang::Check(const char* text, const char* file) +{ + std::string err_str; + std::string ln = text; + + if (ln.empty()) + { + return err_str; + } + + bool non_ascii_found = false; + + for (int i = 0; i < ln.size(); ++i) { + if (isalnum(ln[i])) + { + non_ascii_found = true; + break; + } + } + + if (kShouldHaveBraces && + ln.find('{') != std::string::npos) { + kShouldHaveBraces = false; + } + + if (!non_ascii_found) + return err_str; + + size_t string_index = 1UL; + + if (ln.find('\'') != std::string::npos) + { + string_index = ln.find('\'') + 1; + + for (; string_index < ln.size(); ++string_index) + { + if (ln[string_index] == '\'') + { + if (ln[string_index + 1] != ';') + { + ln.erase(string_index, 1); + } + + return err_str; + } + } + } + else if (ln.find('"') != std::string::npos) + { + string_index = ln.find('"') + 1; + + for (; string_index < ln.size(); ++string_index) + { + if (ln[string_index] == '"') + { + if (ln[string_index + 1] != ';') + { + ln.erase(string_index, 1); + } + else + { + break; + } + } + } + } + else if (ln.find('"') == std::string::npos && + ln.find('\'') == std::string::npos) + { + std::vector forbidden_words; + + forbidden_words.push_back("\\"); + forbidden_words.push_back("?"); + forbidden_words.push_back("@"); + forbidden_words.push_back("~"); + forbidden_words.push_back("::"); + forbidden_words.push_back("/*"); + forbidden_words.push_back("*/"); + + // add them to avoid stupid mistakes. + forbidden_words.push_back("namespace"); + forbidden_words.push_back("class"); + forbidden_words.push_back("extern \"C\""); + + for (auto& forbidden : forbidden_words) + { + if (ParserKit::find_word(ln, forbidden)) + { + err_str += "\nForbidden character detected: "; + err_str += forbidden; + + return err_str; + } + } + } + + struct CompilerVariableRange final + { + std::string fBegin; + std::string fEnd; + }; + + const std::vector variables_list = { + { .fBegin = "static ", .fEnd = "="}, + { .fBegin = "=", .fEnd = ";"}, + { .fBegin = "if(", .fEnd = "="}, + { .fBegin = "if (", .fEnd = "="}, + { .fBegin = "if(", .fEnd = "<"}, + { .fBegin = "if (", .fEnd = "<"}, + { .fBegin = "if(", .fEnd = ">"}, + { .fBegin = "if (", .fEnd = ">"}, + { .fBegin = "if(", .fEnd = ")"}, + { .fBegin = "if (", .fEnd = ")"}, + + { .fBegin = "else(", .fEnd = "="}, + { .fBegin = "else (", .fEnd = "="}, + { .fBegin = "else(", .fEnd = "<"}, + { .fBegin = "else (", .fEnd = "<"}, + { .fBegin = "else(", .fEnd = ">"}, + { .fBegin = "else (", .fEnd = ">"}, + { .fBegin = "else(", .fEnd = ")"}, + { .fBegin = "else (", .fEnd = ")"}, + }; + + for (auto& variable : variables_list) + { + if (ln.find(variable.fBegin) != std::string::npos) + { + string_index = ln.find(variable.fBegin) + variable.fBegin.size(); + + while (ln[string_index] == ' ') + ++string_index; + + std::string keyword; + + for (; string_index < ln.size(); ++string_index) + { + if (ln[string_index] == variable.fEnd[0]) + { + std::string varname = ""; + + for (size_t index_keyword = ln.find(' '); ln[index_keyword] != variable.fBegin[0]; + ++index_keyword) + { + if (ln[index_keyword] == ' ') + { + continue; + } + + if (isdigit(ln[index_keyword])) + { + goto cc_next_loop; + } + + varname += ln[index_keyword]; + } + + if (varname.find(' ') != std::string::npos) + { + varname.erase(0, varname.find(' ')); + + if (variable.fBegin == "extern") + { + varname.erase(0, varname.find(' ')); + } + } + + std::string reg = kAsmRegisterPrefix; + reg += std::to_string(kRegisterCounter); + + kCompilerVariables.push_back({ .fValue = varname }); + goto cc_check_done; + } + + keyword.push_back(ln[string_index]); + } + + goto cc_next_loop; + + cc_check_done: + + // skip digit value. + if (isdigit(keyword[0]) || + keyword[0] == '"') + { + goto cc_next_loop; + } + + while (keyword.find(' ') != std::string::npos) + keyword.erase(keyword.find(' '), 1); + + for (auto& var : kCompilerVariables) + { + if (var.fValue.find(keyword) != std::string::npos) + { + err_str.clear(); + goto cc_next; + } + } + + for (auto& fn : kCompilerFunctions) + { + if (fn.find(keyword[0]) != std::string::npos) + { + auto where_begin = fn.find(keyword[0]); + auto keyword_begin = 0UL; + auto failed = false; + + for (; where_begin < keyword.size(); ++where_begin) + { + if (fn[where_begin] == '(' && + keyword[keyword_begin] == '(') + break; + + if (fn[where_begin] != keyword[keyword_begin]) + { + failed = true; + break; + } + + ++keyword_begin; + } + + if (!failed) + { + err_str.clear(); + goto cc_next; + } + else + { + continue; + } + } + } + +cc_error_value: + if (keyword.find("->") != std::string::npos) + return err_str; + + if (keyword.find(".") != std::string::npos) + return err_str; + + err_str += "\nUndefined value: " + keyword; + return err_str; + } + +cc_next_loop: + continue; + } + +cc_next: + + // extern doesnt declare anything, it imports a variable. + // so that's why it's not declare upper. + if (ParserKit::find_word(ln, "extern")) + { + auto substr = ln.substr(ln.find("extern") + strlen("extern")); + kCompilerVariables.push_back({ .fValue = substr }); + } + + if (kShouldHaveBraces && + ln.find('{') == std::string::npos) + { + err_str += "Missing '{' for function "; + err_str += kFnName; + err_str += "\n"; + + kShouldHaveBraces = false; + kFnName.clear(); + } + else if (kShouldHaveBraces && + ln.find('{') != std::string::npos) + { + kShouldHaveBraces = false; + kFnName.clear(); + } + + bool type_not_found = true; + + if (ln.find('\'') != std::string::npos) + { + ln.replace(ln.find('\''), 3, "0"); + } + + auto first = ln.find('"'); + if (first != std::string::npos) + { + auto second = 0UL; + bool found_second_quote = false; + + for (size_t i = first + 1; i < ln.size(); ++i) + { + if (ln[i] == '\"') + { + found_second_quote = true; + second = i; + + break; + } + } + + if (!found_second_quote) + { + err_str += "Missing terminating \"."; + err_str += " here -> " + ln.substr(ln.find('"'), second); + } + } + + if (ln.find(')') != std::string::npos && + ln.find(';') == std::string::npos) + { + if (ln.find('{') == std::string::npos) + { + kFnName = ln; + kShouldHaveBraces = true; + + goto skip_braces_check; + } + else if (ln.find('{') != std::string::npos) + { + kShouldHaveBraces = false; + } + } + +skip_braces_check: + + for (auto& key : kCompilerTypes) + { + if (ParserKit::find_word(ln, key.fName)) + { + if (isdigit(ln[ln.find(key.fName) + key.fName.size() + 1])) + { + err_str += "\nNumber cannot be set for "; + err_str += key.fName; + err_str += "'s name. here -> "; + err_str += ln; + } + + if (ln.find(key.fName) == 0 || + ln[ln.find(key.fName) - 1] == ' ' || + ln[ln.find(key.fName) - 1] == '\t') + { + type_not_found = false; + + if (ln[ln.find(key.fName) + key.fName.size()] != ' ') + { + type_not_found = true; + + if (ln[ln.find(key.fName) + key.fName.size()] == '\t') + type_not_found = false; + + goto next; + } + else if (ln[ln.find(key.fName) + key.fName.size()] != '\t') + { + type_not_found = true; + + if (ln[ln.find(key.fName) + key.fName.size()] == ' ') + type_not_found = false; + + } + } + +next: + + if (key.fName != "struct" || + key.fName != "enum" || + key.fName != "union") + { + if (ln.find(';') == std::string::npos) + { + if (ln.find('(') != std::string::npos) + { + if (ln.find('=') == std::string::npos) + continue; + } + + err_str += "\nMissing ';', here -> "; + err_str += ln; + } + else + { + continue; + } + + if (ln.find('=') != std::string::npos) + { + if (ln.find('(') != std::string::npos) + { + if (ln.find(')') == std::string::npos) + { + err_str += "\nMissing ')', after '(' here -> "; + err_str += ln.substr(ln.find('(')); + } + } + } + } + } + } + + if (kInBraces && + ln.find("struct") != std::string::npos && + ln.find("union") != std::string::npos && + ln.find("enum") != std::string::npos && + ln.find('=') != std::string::npos) + { + if (ln.find(';') == std::string::npos) + { + err_str += "\nMissing ';' after struct/union/enum declaration, here -> "; + err_str += ln; + } + } + + if (ln.find(';') != std::string::npos && + ln.find("for") == std::string::npos) + { + if (ln.find(';') + 1 != ln.size()) + { + for (int i = 0; i < ln.substr(ln.find(';') + 1).size(); ++i) + { + if ((ln.substr(ln.find(';') + 1)[i] != ' ') || + (ln.substr(ln.find(';') + 1)[i] != '\t')) + { + if (auto err = this->Check(ln.substr(ln.find(';') + 1).c_str(), file); + !err.empty()) + { + err_str += "\nUnexpected text after ';' -> "; + err_str += ln.substr(ln.find(';')); + err_str += err; + } + } + } + } + } + + if (ln.find('(') != std::string::npos) + { + if (ln.find(';') == std::string::npos && + !ParserKit::find_word(ln, "|") && + !ParserKit::find_word(ln, "||") && + !ParserKit::find_word(ln, "&") && + !ParserKit::find_word(ln, "&&") && + !ParserKit::find_word(ln, "~")) + { + bool found_func = false; + size_t i = ln.find('('); + std::vector opens; + std::vector closes; + + for (; i < ln.size(); ++i) + { + if (ln[i] == ')') + { + closes.push_back(1); + } + + if (ln[i] == '(') + { + opens.push_back(1); + } + } + + if (closes.size() != opens.size()) + err_str += "Unterminated (), here -> " + ln; + + bool space_found = false; + + for (int i = 0; i < ln.size(); ++i) + { + if (ln[i] == ')' && + !space_found) + { + space_found = true; + continue; + } + + if (space_found) + { + if (ln[i] == ' ' && + isalnum(ln[i+1])) + { + err_str += "\nBad function format here -> "; + err_str += ln; + } + } + } + } + + if (ln.find('(') < 1) + { + err_str += "\nMissing identifier before '(' here -> "; + err_str += ln; + } + else + { + if (type_not_found && + ln.find(';') == std::string::npos && + ln.find("if") == std::string::npos && + ln.find("while") == std::string::npos && + ln.find("for") == std::string::npos && + ln.find("static") == std::string::npos && + ln.find("inline") == std::string::npos && + ln.find("|") == std::string::npos && + ln.find("&") == std::string::npos) + { + err_str += "\n Missing ';' or type, here -> "; + err_str += ln; + } + } + + if (ln.find(')') == std::string::npos) + { + err_str += "\nMissing ')', after '(' here -> "; + err_str += ln.substr(ln.find('(')); + } + } + else + { + if (ln.find("for") != std::string::npos || + ln.find("while") != std::string::npos) + { + err_str += "\nMissing '(', after \"for\", here -> "; + err_str += ln; + } + } + + if (ln.find('}') != std::string::npos && + !kInBraces) + { + if (!kInStruct && + ln.find(';') == std::string::npos) + { + err_str += "\nMismatched '}', here -> "; + err_str += ln; + } + } + + if (!ln.empty()) + { + if (ln.find(';') == std::string::npos && + ln.find("struct") == std::string::npos && + ln.find("enum") == std::string::npos && + ln.find("union") == std::string::npos && + ln.find("for") == std::string::npos && + ln.find("while") == std::string::npos && + ln.find('{') == std::string::npos && + ln.find('}') == std::string::npos && + ln.find(')') == std::string::npos && + ln.find('(') == std::string::npos && + ln.find(',') == std::string::npos && + ln.find("typedef") == std::string::npos) + { + if (ln.size() <= 2) + return err_str; + + err_str += "\nMissing ';', here -> "; + err_str += ln; + } + } + + return err_str; +} + +///////////////////////////////////////////////////////////////////////////////////////// + +/** + * @brief C To Assembly mount-point. + */ + +///////////////////////////////////////////////////////////////////////////////////////// + +class AssemblyMountpointClang final : public CxxKit::AssemblyMountpoint +{ +public: + explicit AssemblyMountpointClang() = default; + ~AssemblyMountpointClang() override = default; + + CXXKIT_COPY_DEFAULT(AssemblyMountpointClang); + + [[maybe_unused]] static Int32 Arch() noexcept { return CxxKit::AssemblyFactory::kArchRISCV; } + + Int32 CompileToFormat(CxxKit::StringView& src, Int32 arch) override + { + if (arch != AssemblyMountpointClang::Arch()) + return -1; + + if (kCompilerBackend == nullptr) + return -1; + + /* @brief copy contents wihtout extension */ + std::string src_file = src.CData(); + std::ifstream src_fp = std::ifstream(src_file, std::ios::in); + std::string dest; + + for (auto& ch : src_file) + { + if (ch == '.') + { + break; + } + + dest += ch; + } + + /* According to pef abi. */ + dest += kAsmFileExt; + + kState.fOutputAssembly = std::make_unique(dest); + + auto fmt = CxxKit::current_date(); + + (*kState.fOutputAssembly) << "# Path: " << src_file << "\n"; + (*kState.fOutputAssembly) << "# Language: MP-UX Assembly\n"; + (*kState.fOutputAssembly) << "# Build Date: " << fmt << "\n\n"; + + ParserKit::SyntaxLeafList syntax; + + kState.fSyntaxTreeList.push_back(syntax); + kState.fSyntaxTree = &kState.fSyntaxTreeList[kState.fSyntaxTreeList.size() - 1]; + + std::string source; + + while (std::getline(src_fp, source)) + { + if (auto err = kCompilerBackend->Check(source.c_str(), src.CData()); + err.empty()) + { + kCompilerBackend->Compile(source.c_str(), src.CData()); + } + else + { + detail::print_error(err, src.CData()); + } + } + + if (kAcceptableErrors > 0) + return -1; + + for (auto& leaf : kState.fSyntaxTree->fLeafList) + { + if (leaf.fUserValue.find("typedef") != std::string::npos) + continue; + + if (ParserKit::find_word(leaf.fUserValue, "ldw") || + ParserKit::find_word(leaf.fUserValue, "stw") || + ParserKit::find_word(leaf.fUserValue, "add") || + ParserKit::find_word(leaf.fUserValue, "dec") || + ParserKit::find_word(leaf.fUserValue, "mv")) + { + for (auto & reg : kState.kStackFrame) + { + std::string needle; + + for (size_t i = 0; i < reg.fName.size(); i++) + { + if (reg.fName[i] == ' ') + { + ++i; + + for (; i < reg.fName.size(); i++) + { + if (reg.fName[i] == ',') + { + break; + } + + if (reg.fName[i] == ' ') + continue; + + needle += reg.fName[i]; + } + + break; + } + } + + if (ParserKit::find_word(leaf.fUserValue, needle)) + { + leaf.fUserValue.replace(leaf.fUserValue.find(needle), + needle.size(), reg.fRegister); + + } + } + } + } + + for (auto& leaf : kState.fSyntaxTree->fLeafList) + { + (*kState.fOutputAssembly) << leaf.fUserValue; + } + + kState.fSyntaxTree = nullptr; + + kState.fOutputAssembly->flush(); + kState.fOutputAssembly.reset(); + + return kOk; + } + +}; + +///////////////////////////////////////////////////////////////////////////////////////// + +#define kPrintF printf +#define kSplashCxx() kPrintF(kWhite "%s\n", "M64K C compiler, v1.13, (c) WestCo") + +static void cc_print_help() +{ + kSplashCxx(); + kPrintF(kWhite "--asm={MACHINE}: %s\n", "Compile to a specific assembler syntax. (masm)"); + kPrintF(kWhite "--compiler={COMPILER}: %s\n", "Select compiler engine (builtin -> dolvik)."); +} + +///////////////////////////////////////////////////////////////////////////////////////// + +#define kExt ".c" + +int main(int argc, char** argv) +{ + kCompilerTypes.push_back({ .fName = "bool", .fValue = "bool" }); + kCompilerTypes.push_back({ .fName = "void", .fValue = "void" }); + kCompilerTypes.push_back({ .fName = "char", .fValue = "byte" }); + kCompilerTypes.push_back({ .fName = "short", .fValue = "hword" }); + kCompilerTypes.push_back({ .fName = "int", .fValue = "dword" }); + kCompilerTypes.push_back({ .fName = "long", .fValue = "qword" }); + + kCompilerTypes.push_back({ .fName = "const", .fValue = " " }); + kCompilerTypes.push_back({ .fName = "*", .fValue = "offset" }); + + kCompilerTypes.push_back({ .fName = "float", .fValue = "float32" }); + kCompilerTypes.push_back({ .fName = "double", .fValue = "float64" }); + + bool skip = false; + + for (auto index = 1UL; index < argc; ++index) + { + if (skip) + { + skip = false; + continue; + } + + if (argv[index][0] == '-') + { + if (strcmp(argv[index], "-v") == 0 || + strcmp(argv[index], "--version") == 0) + { + kSplashCxx(); + return kOk; + } + + if (strcmp(argv[index], "--verbose") == 0) + { + kState.kVerbose = true; + + continue; + } + + if (strcmp(argv[index], "-h") == 0 || + strcmp(argv[index], "--help") == 0) + { + cc_print_help(); + + return kOk; + } + + if (strcmp(argv[index], "--dialect") == 0) + { + if (kCompilerBackend) + std::cout << kCompilerBackend->Language() << "\n"; + + return kOk; + } + + if (strcmp(argv[index], "--asm=masm") == 0) + { + delete kFactory.Unmount(); + + kFactory.Mount(new AssemblyMountpointClang()); + kMachine = CxxKit::AssemblyFactory::kArchRISCV; + + continue; + } + + if (strcmp(argv[index], "--compiler=dolvik") == 0) + { + if (!kCompilerBackend) + kCompilerBackend = new CompilerBackendClang(); + + continue; + } + + if (strcmp(argv[index], "-fmax-exceptions") == 0) + { + try + { + kErrorLimit = std::strtol(argv[index + 1], nullptr, 10); + } + // catch anything here + catch (...) + { + kErrorLimit = 0; + } + + skip = true; + + continue; + } + + std::string err = "Unknown command: "; + err += argv[index]; + + detail::print_error(err, "cc"); + + continue; + } + + kFileList.emplace_back(argv[index]); + + CxxKit::StringView srcFile = CxxKit::StringBuilder::Construct(argv[index]); + + if (strstr(argv[index], kExt) == nullptr) + { + if (kState.kVerbose) + { + std::cerr << argv[index] << " is not a valid C source.\n"; + } + + return -1; + } + + if (kFactory.Compile(srcFile, kMachine) != kOk) + return -1; + } + + return kOk; +} diff --git a/CompilerDriver/cc2/LICENSE b/CompilerDriver/cc2/LICENSE new file mode 100644 index 0000000..1689a5e --- /dev/null +++ b/CompilerDriver/cc2/LICENSE @@ -0,0 +1,11 @@ + +Copyright (c) Herb Sutter +SPDX-License-Identifier: CC-BY-NC-ND-4.0 + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/CompilerDriver/cc2/include/cpp2util.h b/CompilerDriver/cc2/include/cpp2util.h new file mode 100644 index 0000000..463dd99 --- /dev/null +++ b/CompilerDriver/cc2/include/cpp2util.h @@ -0,0 +1,1999 @@ + +// Copyright (c) Herb Sutter +// SPDX-License-Identifier: CC-BY-NC-ND-4.0 + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +//=========================================================================== +// Cpp2 utilities: +// Language support implementations +// #include'd by generated Cpp1 code +//=========================================================================== + +#ifndef CPP2_UTIL_H +#define CPP2_UTIL_H + +// If this implementation doesn't support source_location yet, disable it +#include +#if !defined(_MSC_VER) && !defined(__cpp_lib_source_location) + #undef CPP2_USE_SOURCE_LOCATION +#endif + +// If the cppfront user requested making the entire C++ standard library +// available via module import or header include, do that +#if defined(CPP2_IMPORT_STD) || defined(CPP2_INCLUDE_STD) + + // If C++23 'import std;' was requested and is available, use that + #if defined(CPP2_IMPORT_STD) && defined(__cpp_lib_modules) + + #ifndef _MSC_VER + // This is the ideal -- note that we just voted "import std;" + // into draft C++23 in late July 2022, so implementers haven't + // had time to catch up yet + import std; + #else // MSVC + // Note: When C++23 "import std;" is available, we will switch to that here + // In the meantime, this is what works on MSVC which is the only compiler + // I've been able to get access to that implements modules enough to demo + // (but we'll have more full-C++20 compilers soon!) + #ifdef _MSC_VER + #include "intrin.h" + #endif + import std.core; + import std.filesystem; + import std.memory; + import std.regex; + import std.threading; + + // Suppress spurious MSVC modules warning + #pragma warning(disable:5050) + #endif + + // Otherwise, as a fallback if 'import std;' was requested, or else + // because 'include all std' was requested, include all the standard + // headers, with a feature test #ifdef for each header that + // isn't yet supported by all of { VS 2022, g++-10, clang++-12 } + #else + #ifdef _MSC_VER + #include "intrin.h" + #endif + #include + #include + #include + #include + #ifdef __cpp_lib_barrier + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #ifdef __cpp_lib_coroutine + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #include + #if __has_include() + #include + #endif + #include + #include + #include + #ifndef CPP2_NO_EXCEPTIONS + #include + #endif + // libstdc++ currently has a dependency on linking TBB if is + // included, and TBB seems to be not automatically installed and linkable + // on some GCC installations, so let's not pull in that little-used header + // in our -pure-cpp2 "import std;" simulation mode... if you need this, + // use mixed mode (not -pure-cpp2) and #include all the headers you need + // including this one + // + // #include + #ifdef __cpp_lib_expected + #include + #endif + #include + #if defined(__cpp_lib_format) || (defined(_MSC_VER) && _MSC_VER >= 1929) + #include + #endif + #ifdef __cpp_lib_flat_map + #include + #endif + #ifdef __cpp_lib_flat_set + #include + #endif + #include + #include + #include + #include + #ifdef __cpp_lib_generator + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #ifdef __cpp_lib_latch + #include + #endif + #include + #include + #include + #include + #ifdef __cpp_lib_mdspan + #include + #endif + #include + #ifdef __cpp_lib_memory_resource + #include + #endif + #include + #include + #include + #include + #include + #include + #ifdef __cpp_lib_print + #include + #endif + #include + #include + #include + #include + #include + #include + #ifdef __cpp_lib_semaphore + #include + #endif + #include + #include + #ifdef __cpp_lib_source_location + #include + #endif + #include + #ifdef __cpp_lib_spanstream + #include + #endif + #include + #include + #ifdef __cpp_lib_stacktrace + #include + #endif + #ifdef __cpp_lib_stdatomic_h + #include + #endif + #include + #if __has_include() + #include + #endif + #ifdef __cpp_lib_jthread + #include + #endif + #include + #include + #include + #ifdef __cpp_lib_syncstream + #include + #endif + #include + #include + #include + #include + #include + #ifndef CPP2_NO_RTTI + #include + #endif + #include + #include + #include + #include + #include + #include + #endif + +// Otherwise, just #include the facilities used in this header +#else + #ifdef _MSC_VER + #include "intrin.h" + #endif + #include + #include + #include + #include + #include + #include + #include + #ifndef CPP2_NO_EXCEPTIONS + #include + #endif + #if defined(__cpp_lib_format) || (defined(_MSC_VER) && _MSC_VER >= 1929) + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #if defined(CPP2_USE_SOURCE_LOCATION) + #include + #endif + #include + #include + #include + #include + #include + #include + #ifndef CPP2_NO_RTTI + #include + #endif + #include + #include + #include +#endif + + +#define CPP2_TYPEOF(x) std::remove_cvref_t +#define CPP2_FORWARD(x) std::forward(x) +#define CPP2_PACK_EMPTY(x) (sizeof...(x) == 0) +#define CPP2_CONTINUE_BREAK(NAME) goto CONTINUE_##NAME; CONTINUE_##NAME: continue; goto BREAK_##NAME; BREAK_##NAME: break; + // these redundant goto's to avoid 'unused label' warnings + + +#if defined(_MSC_VER) + // MSVC can't handle 'inline constexpr' yet in all cases + #define CPP2_CONSTEXPR const +#else + #define CPP2_CONSTEXPR constexpr +#endif + + +namespace cpp2 { + + +//----------------------------------------------------------------------- +// +// Convenience names for fundamental types +// +// Note: De jure, some of these are optional per the C and C++ standards +// De facto, all of these are supported in all implementations I know of +// +//----------------------------------------------------------------------- +// + +// Encouraged by default: Fixed-precision names +using i8 = std::int8_t ; +using i16 = std::int16_t ; +using i32 = std::int32_t ; +using i64 = std::int64_t ; +using u8 = std::uint8_t ; +using u16 = std::uint16_t ; +using u32 = std::uint32_t ; +using u64 = std::uint64_t ; + +// Discouraged: Variable precision names +// short +using ushort = unsigned short; +// int +using uint = unsigned int; +// long +using ulong = unsigned long; +using longlong = long long; +using ulonglong = unsigned long long; +using longdouble = long double; + +// Strongly discouraged, for compatibility/interop only +using _schar = signed char; // normally use i8 instead +using _uchar = unsigned char; // normally use u8 instead + + +//----------------------------------------------------------------------- +// +// General helpers +// +//----------------------------------------------------------------------- +// + +inline constexpr auto max(auto... values) { + return std::max( { values... } ); +} + +template +inline constexpr auto is_any = std::disjunction_v...>; + +template +struct aligned_storage { + alignas(Align) unsigned char data[Len]; +}; + + +//----------------------------------------------------------------------- +// +// String: A helper workaround for passing a string literal as a +// template argument +// +//----------------------------------------------------------------------- +// +template +struct String +{ + constexpr String(const char (&str)[N]) + { + std::copy_n(str, N, value); + } + + auto operator<=>(String const&) const = default; + + char value[N] = {}; +}; + + +//----------------------------------------------------------------------- +// +// contract_group +// +//----------------------------------------------------------------------- +// + +#ifdef CPP2_USE_SOURCE_LOCATION + #define CPP2_SOURCE_LOCATION_PARAM , std::source_location where + #define CPP2_SOURCE_LOCATION_PARAM_WITH_DEFAULT , std::source_location where = std::source_location::current() + #define CPP2_SOURCE_LOCATION_PARAM_SOLO std::source_location where + #define CPP2_SOURCE_LOCATION_ARG , where +#else + #define CPP2_SOURCE_LOCATION_PARAM + #define CPP2_SOURCE_LOCATION_PARAM_WITH_DEFAULT + #define CPP2_SOURCE_LOCATION_PARAM_SOLO + #define CPP2_SOURCE_LOCATION_ARG +#endif + +// For C++23: make this std::string_view and drop the macro +// Before C++23 std::string_view was not guaranteed to be trivially copyable, +// and so in will pass it by const& and really it should be by value +#define CPP2_MESSAGE_PARAM char const* +#define CPP2_CONTRACT_MSG cpp2::message_to_cstr_adapter + +auto message_to_cstr_adapter( CPP2_MESSAGE_PARAM msg ) -> CPP2_MESSAGE_PARAM { return msg ? msg : ""; } +auto message_to_cstr_adapter( std::string const& msg ) -> CPP2_MESSAGE_PARAM { return msg.c_str(); } + +class contract_group { +public: + using handler = void (*)(CPP2_MESSAGE_PARAM msg CPP2_SOURCE_LOCATION_PARAM); + + constexpr contract_group (handler h = {}) : reporter{h} { } + constexpr auto set_handler(handler h = {}) { reporter = h; } + constexpr auto get_handler() const -> handler { return reporter; } + constexpr auto has_handler() const -> bool { return reporter != handler{}; } + + constexpr auto enforce(bool b, CPP2_MESSAGE_PARAM msg = "" CPP2_SOURCE_LOCATION_PARAM_WITH_DEFAULT) + -> void { if (!b) report_violation(msg CPP2_SOURCE_LOCATION_ARG); } + constexpr auto report_violation(CPP2_MESSAGE_PARAM msg = "" CPP2_SOURCE_LOCATION_PARAM_WITH_DEFAULT) + -> void { if (reporter) reporter(msg CPP2_SOURCE_LOCATION_ARG); } +private: + handler reporter; +}; + +[[noreturn]] inline auto report_and_terminate(std::string_view group, CPP2_MESSAGE_PARAM msg = "" CPP2_SOURCE_LOCATION_PARAM_WITH_DEFAULT) noexcept -> void { + std::cerr +#ifdef CPP2_USE_SOURCE_LOCATION + << where.file_name() << "(" + << where.line() << ") " + << where.function_name() << ": " +#endif + << group << " violation"; + if (msg && msg[0] != '\0') { + std::cerr << ": " << msg; + } + std::cerr << "\n"; + std::terminate(); +} + +auto inline Default = contract_group( + [](CPP2_MESSAGE_PARAM msg CPP2_SOURCE_LOCATION_PARAM)noexcept { + report_and_terminate("Contract", msg CPP2_SOURCE_LOCATION_ARG); + } +); +auto inline Bounds = contract_group( + [](CPP2_MESSAGE_PARAM msg CPP2_SOURCE_LOCATION_PARAM)noexcept { + report_and_terminate("Bounds safety", msg CPP2_SOURCE_LOCATION_ARG); + } +); +auto inline Null = contract_group( + [](CPP2_MESSAGE_PARAM msg CPP2_SOURCE_LOCATION_PARAM)noexcept { + report_and_terminate("Null safety", msg CPP2_SOURCE_LOCATION_ARG); + } +); +auto inline Type = contract_group( + [](CPP2_MESSAGE_PARAM msg CPP2_SOURCE_LOCATION_PARAM)noexcept { + report_and_terminate("Type safety", msg CPP2_SOURCE_LOCATION_ARG); + } +); +auto inline Testing = contract_group( + [](CPP2_MESSAGE_PARAM msg CPP2_SOURCE_LOCATION_PARAM)noexcept { + report_and_terminate("Testing", msg CPP2_SOURCE_LOCATION_ARG); + } +); + + +// Null pointer deref checking +// +auto assert_not_null(auto&& p CPP2_SOURCE_LOCATION_PARAM_WITH_DEFAULT) -> decltype(auto) +{ + // NOTE: This "!= T{}" test may or may not work for STL iterators. The standard + // doesn't guarantee that using == and != will reliably report whether an + // STL iterator has the default-constructed value. So use it only for raw *... + if constexpr (std::is_pointer_v) { + if (p == CPP2_TYPEOF(p){}) { + Null.report_violation("dynamic null dereference attempt detected" CPP2_SOURCE_LOCATION_ARG); + }; + } + return CPP2_FORWARD(p); +} + +// Subscript bounds checking +// +auto assert_in_bounds_impl(auto&& x, auto&& arg CPP2_SOURCE_LOCATION_PARAM_WITH_DEFAULT) -> void + requires (std::is_integral_v && + requires { std::size(x); std::ssize(x); x[arg]; std::begin(x) + 2; }) +{ + auto max = [&]() -> auto { + if constexpr (std::is_signed_v) { return std::ssize(x); } + else { return std::size(x); } + }; + auto msg = "out of bounds access attempt detected - attempted access at index " + std::to_string(arg) + ", "; + if (max() > 0 ) { + msg += "[min,max] range is [0," + std::to_string(max()-1) + "]"; + } + else { + msg += "but container is empty"; + } + if (!(0 <= arg && arg < max())) { + Bounds.report_violation(msg.c_str() CPP2_SOURCE_LOCATION_ARG); + } +} + +auto assert_in_bounds_impl(auto&&, auto&& CPP2_SOURCE_LOCATION_PARAM_WITH_DEFAULT) -> void +{ +} + +#define CPP2_ASSERT_IN_BOUNDS(x, arg) (cpp2::assert_in_bounds_impl((x),(arg)), (x)[(arg)]) + + +//----------------------------------------------------------------------- +// +// Support wrappers that unblock using this file in environments that +// disable EH or RTTI +// +// Note: This is not endorsing disabling those features, it's just +// recognizing that disabling them is popular (e.g., games, WASM) +// and so we should remove a potential adoption blocker... only a +// few features in this file depend on EH or RTTI anyway, and +// wouldn't be exercised in such an environment anyway so there +// is no real net loss here +// +//----------------------------------------------------------------------- +// + +[[noreturn]] auto Throw(auto&& x, [[maybe_unused]] char const* msg) -> void { +#ifdef CPP2_NO_EXCEPTIONS + auto err = std::string{"exceptions are disabled with -fno-exceptions - attempted to throw exception with type \"" + typeid(decltype(x)).name() + "\""}; + if (msg) { + err += " and the message \"" + msg + "\""; + } + Type.report_violation( err ); + std::terminate(); +#else + throw CPP2_FORWARD(x); +#endif +} + +inline auto Uncaught_exceptions() -> int { +#ifdef CPP2_NO_EXCEPTIONS + return 0; +#else + return std::uncaught_exceptions(); +#endif +} + +template +auto Dynamic_cast( [[maybe_unused]] auto&& x ) -> decltype(auto) { +#ifdef CPP2_NO_RTTI + Type.report_violation( "'as' dynamic casting is disabled with -fno-rtti" ); + return nullptr; +#else + return dynamic_cast(CPP2_FORWARD(x)); +#endif +} + +template +auto Typeid() -> decltype(auto) { +#ifdef CPP2_NO_RTTI + Type.report_violation( "'any' dynamic casting is disabled with -fno-rtti" ); +#else + return typeid(T); +#endif +} + +auto Typeid( [[maybe_unused]] auto&& x ) -> decltype(auto) { +#ifdef CPP2_NO_RTTI + Type.report_violation( "'typeid' is disabled with -fno-rtti" ); +#else + return typeid(CPP2_FORWARD(x)); +#endif +} + + +//----------------------------------------------------------------------- +// +// Arena objects for std::allocators +// +// Note: cppfront translates "new" to "cpp2_new", so in Cpp2 code +// these are invoked by simply "unique.new" etc. +// +//----------------------------------------------------------------------- +// +struct { + template + [[nodiscard]] auto cpp2_new(auto&& ...args) const -> std::unique_ptr { + // Prefer { } to ( ) so that initializing a vector with + // (10), (10, 20), and (10, 20, 30) is consistent + if constexpr (requires { T{CPP2_FORWARD(args)...}; }) { + // This is because apparently make_unique can't deal with list + // initialization of aggregates, even after P0960 + return std::unique_ptr( new T{CPP2_FORWARD(args)...} ); + } + else { + return std::make_unique(CPP2_FORWARD(args)...); + } + } +} inline unique; + +[[maybe_unused]] struct { + template + [[nodiscard]] auto cpp2_new(auto&& ...args) const -> std::shared_ptr { + // Prefer { } to ( ) as noted for unique.new + // + // Note this does mean we don't get the make_shared optimization a lot + // of the time -- we can restore that as soon as make_shared improves to + // allow list initialization. But the make_shared optimization isn't a + // huge deal anyway: it saves one allocation, but most of the cost of + // shared_ptrs is copying them and the allocation cost saving is probably + // outweighed by just a couple of shared_ptr copies; also, the make_shared + // optimization has the potential downside of keeping the raw storage + // alive longer when there are weak_ptrs. So, yes, we can and should + // restore the make_shared optimization as soon as make_shared supports + // list init, but I don't think it's all that important AFAIK + if constexpr (requires { T{CPP2_FORWARD(args)...}; }) { + // Why this calls 'unique.new': The workaround to use { } initialization + // requires calling naked 'new' to allocate the object separately anyway, + // so reuse the unique.new path that already does that (less code + // duplication, plus encapsulate the naked 'new' in one place) + return unique.cpp2_new(CPP2_FORWARD(args)...); + } + else { + return std::make_shared(CPP2_FORWARD(args)...); + } + } +} inline shared; + +template +[[nodiscard]] auto cpp2_new(auto&& ...args) -> std::unique_ptr { + return unique.cpp2_new(CPP2_FORWARD(args)...); +} + + +//----------------------------------------------------------------------- +// +// in For "in" parameter +// +//----------------------------------------------------------------------- +// +template +constexpr bool prefer_pass_by_value = + sizeof(T) <= 2*sizeof(void*) + && std::is_trivially_copy_constructible_v; + +template + requires std::is_class_v || std::is_union_v || std::is_array_v || std::is_function_v +constexpr bool prefer_pass_by_value = false; + +template + requires (!std::is_void_v) +using in = + std::conditional_t < + prefer_pass_by_value, + T const, + T const& + >; + + +//----------------------------------------------------------------------- +// +// Initialization: These are closely related... +// +// deferred_init For deferred-initialized local object +// +// out For out parameter +// +//----------------------------------------------------------------------- +// +template +class deferred_init { + alignas(T) std::byte data[sizeof(T)]; + bool init = false; + + auto t() -> T& { return *std::launder(reinterpret_cast(&data)); } + + template + friend class out; + + auto destroy() -> void { if (init) { t().~T(); } init = false; } + +public: + deferred_init() noexcept { } + ~deferred_init() noexcept { destroy(); } + auto value() noexcept -> T& { Default.enforce(init); return t(); } + + auto construct(auto&& ...args) -> void { Default.enforce(!init); new (&data) T{CPP2_FORWARD(args)...}; init = true; } +}; + + +template +class out { + // Not going to bother with std::variant here + union { + T* t; + deferred_init* dt; + }; + out* ot = {}; + bool has_t; + + // Each out in a chain contains its own uncaught_count ... + int uncaught_count = Uncaught_exceptions(); + // ... but all in a chain share the topmost called_construct_ + bool called_construct_ = false; + +public: + out(T* t_) noexcept : t{ t_}, has_t{true} { Default.enforce( t); } + out(deferred_init* dt_) noexcept : dt{dt_}, has_t{false} { Default.enforce(dt); } + out(out* ot_) noexcept : ot{ot_}, has_t{ot_->has_t} { Default.enforce(ot); + if (has_t) { t = ot->t; } + else { dt = ot->dt; } + } + + auto called_construct() -> bool& { + if (ot) { return ot->called_construct(); } + else { return called_construct_; } + } + + // In the case of an exception, if the parameter was uninitialized + // then leave it in the same state on exit (strong guarantee) + ~out() { + if (called_construct() && uncaught_count != Uncaught_exceptions()) { + Default.enforce(!has_t); + dt->destroy(); + called_construct() = false; + } + } + + auto construct(auto&& ...args) -> void { + if (has_t || called_construct()) { + if constexpr (requires { *t = T(CPP2_FORWARD(args)...); }) { + Default.enforce( t ); + *t = T(CPP2_FORWARD(args)...); + } + else { + Default.report_violation("attempted to copy assign, but copy assignment is not available"); + } + } + else { + Default.enforce( dt ); + if (dt->init) { + if constexpr (requires { *t = T(CPP2_FORWARD(args)...); }) { + dt->value() = T(CPP2_FORWARD(args)...); + } + else { + Default.report_violation("attempted to copy assign, but copy assignment is not available"); + } + } + else { + dt->construct(CPP2_FORWARD(args)...); + called_construct() = true; + } + } + } + + auto value() noexcept -> T& { + if (has_t) { + Default.enforce( t ); + return *t; + } + else { + Default.enforce( dt ); + return dt->value(); + } + } +}; + + +//----------------------------------------------------------------------- +// +// CPP2_UFCS: Variadic macro generating a variadic lamba, oh my... +// +//----------------------------------------------------------------------- +// +// Workaround . +#define CPP2_FORCE_INLINE_LAMBDA_CLANG /* empty */ + +#if defined(_MSC_VER) && !defined(__clang_major__) + #define CPP2_FORCE_INLINE __forceinline + #define CPP2_FORCE_INLINE_LAMBDA [[msvc::forceinline]] + #define CPP2_LAMBDA_NO_DISCARD +#else + #define CPP2_FORCE_INLINE __attribute__((always_inline)) + #if defined(__clang__) + #define CPP2_FORCE_INLINE_LAMBDA /* empty */ + #undef CPP2_FORCE_INLINE_LAMBDA_CLANG + #define CPP2_FORCE_INLINE_LAMBDA_CLANG __attribute__((always_inline)) + #else + #define CPP2_FORCE_INLINE_LAMBDA __attribute__((always_inline)) + #endif + + #if defined(__clang_major__) + // Also check __cplusplus, only to satisfy Clang -pedantic-errors + #if __cplusplus >= 202302L && (__clang_major__ > 13 || (__clang_major__ == 13 && __clang_minor__ >= 2)) + #define CPP2_LAMBDA_NO_DISCARD [[nodiscard]] + #else + #define CPP2_LAMBDA_NO_DISCARD + #endif + #elif defined(__GNUC__) + #if __GNUC__ >= 9 + #define CPP2_LAMBDA_NO_DISCARD [[nodiscard]] + #else + #define CPP2_LAMBDA_NO_DISCARD + #endif + #if ((__GNUC__ * 100) + __GNUC_MINOR__) < 1003 + // GCC 10.2 doesn't support this feature (10.3 is fine) + #undef CPP2_FORCE_INLINE_LAMBDA + #define CPP2_FORCE_INLINE_LAMBDA + #endif + #else + #define CPP2_LAMBDA_NO_DISCARD + #endif +#endif + +#define CPP2_UFCS_REMPARENS(...) __VA_ARGS__ + +// Ideally, the expression `CPP2_UFCS_IS_NOTHROW` expands to +// is in the _noexcept-specifier_ of the UFCS lambda, but without 'std::declval'. +// To workaround [GCC bug 101043](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101043), +// we instead make it a template parameter of the UFCS lambda. +// But using a template parameter, Clang also ICEs on an application. +// So we use these `NOTHROW` macros to fall back to the ideal for when not using GCC. +#define CPP2_UFCS_IS_NOTHROW(QUALID,TEMPKW,...) \ + requires { requires requires { std::declval().CPP2_UFCS_REMPARENS QUALID TEMPKW __VA_ARGS__(std::declval()...); }; \ + requires noexcept(std::declval().CPP2_UFCS_REMPARENS QUALID TEMPKW __VA_ARGS__(std::declval()...)); } \ +|| requires { requires !requires { std::declval().CPP2_UFCS_REMPARENS QUALID TEMPKW __VA_ARGS__(std::declval()...); }; \ + requires noexcept(CPP2_UFCS_REMPARENS QUALID __VA_ARGS__(std::declval(), std::declval()...)); } +#define CPP2_UFCS_IS_NOTHROW_PARAM(...) /*empty*/ +#define CPP2_UFCS_IS_NOTHROW_ARG(QUALID,TEMPKW,...) CPP2_UFCS_IS_NOTHROW(QUALID,TEMPKW,__VA_ARGS__) +#if defined(__GNUC__) && !defined(__clang__) + #undef CPP2_UFCS_IS_NOTHROW_PARAM + #undef CPP2_UFCS_IS_NOTHROW_ARG + #define CPP2_UFCS_IS_NOTHROW_PARAM(QUALID,TEMPKW,...) , bool IsNothrow = CPP2_UFCS_IS_NOTHROW(QUALID,TEMPKW,__VA_ARGS__) + #define CPP2_UFCS_IS_NOTHROW_ARG(...) IsNothrow + #if __GNUC__ < 11 + #undef CPP2_UFCS_IS_NOTHROW_PARAM + #undef CPP2_UFCS_IS_NOTHROW_ARG + #define CPP2_UFCS_IS_NOTHROW_PARAM(...) /*empty*/ + #define CPP2_UFCS_IS_NOTHROW_ARG(...) false // GCC 10 UFCS is always potentially-throwing. + #endif +#endif + +// Ideally, the expression `CPP2_UFCS_CONSTRAINT_ARG` expands to +// is in the _requires-clause_ of the UFCS lambda. +// To workaround an MSVC bug within a member function 'F' where UFCS is also for 'F' +// (), +// we instead make it a template parameter of the UFCS lambda. +// But using a template parameter, Clang also ICEs and GCC rejects a local 'F'. +// Also, Clang rejects the SFINAE test case when using 'std::declval'. +// So we use these `CONSTRAINT` macros to fall back to the ideal for when not using MSVC. +#define CPP2_UFCS_CONSTRAINT_PARAM(...) /*empty*/ +#define CPP2_UFCS_CONSTRAINT_ARG(QUALID,TEMPKW,...) \ + requires { CPP2_FORWARD(obj).CPP2_UFCS_REMPARENS QUALID TEMPKW __VA_ARGS__(CPP2_FORWARD(params)...); } \ +|| requires { CPP2_UFCS_REMPARENS QUALID __VA_ARGS__(CPP2_FORWARD(obj), CPP2_FORWARD(params)...); } +#if defined(_MSC_VER) + #undef CPP2_UFCS_CONSTRAINT_PARAM + #undef CPP2_UFCS_CONSTRAINT_ARG + #define CPP2_UFCS_CONSTRAINT_PARAM(QUALID,TEMPKW,...) , bool IsViable = \ + requires { std::declval().CPP2_UFCS_REMPARENS QUALID TEMPKW __VA_ARGS__(std::declval()...); } \ +|| requires { CPP2_UFCS_REMPARENS QUALID __VA_ARGS__(std::declval(), std::declval()...); } + #define CPP2_UFCS_CONSTRAINT_ARG(...) IsViable +#endif + +#define CPP2_UFCS_(LAMBDADEFCAPT,QUALID,TEMPKW,...) \ +[LAMBDADEFCAPT]< \ + typename Obj, typename... Params \ + CPP2_UFCS_IS_NOTHROW_PARAM(QUALID,TEMPKW,__VA_ARGS__) \ + CPP2_UFCS_CONSTRAINT_PARAM(QUALID,TEMPKW,__VA_ARGS__) \ + > \ + CPP2_LAMBDA_NO_DISCARD (Obj&& obj, Params&& ...params) CPP2_FORCE_INLINE_LAMBDA_CLANG \ + noexcept(CPP2_UFCS_IS_NOTHROW_ARG(QUALID,TEMPKW,__VA_ARGS__)) CPP2_FORCE_INLINE_LAMBDA -> decltype(auto) \ + requires CPP2_UFCS_CONSTRAINT_ARG(QUALID,TEMPKW,__VA_ARGS__) { \ + if constexpr (requires{ CPP2_FORWARD(obj).CPP2_UFCS_REMPARENS QUALID TEMPKW __VA_ARGS__(CPP2_FORWARD(params)...); }) { \ + return CPP2_FORWARD(obj).CPP2_UFCS_REMPARENS QUALID TEMPKW __VA_ARGS__(CPP2_FORWARD(params)...); \ + } else { \ + return CPP2_UFCS_REMPARENS QUALID __VA_ARGS__(CPP2_FORWARD(obj), CPP2_FORWARD(params)...); \ + } \ +} + +#define CPP2_UFCS(...) CPP2_UFCS_(&,(),,__VA_ARGS__) +#define CPP2_UFCS_TEMPLATE(...) CPP2_UFCS_(&,(),template,__VA_ARGS__) +#define CPP2_UFCS_QUALIFIED_TEMPLATE(QUALID,...) CPP2_UFCS_(&,QUALID,template,__VA_ARGS__) +#define CPP2_UFCS_NONLOCAL(...) CPP2_UFCS_(,(),,__VA_ARGS__) +#define CPP2_UFCS_TEMPLATE_NONLOCAL(...) CPP2_UFCS_(,(),template,__VA_ARGS__) +#define CPP2_UFCS_QUALIFIED_TEMPLATE_NONLOCAL(QUALID,...) CPP2_UFCS_(,QUALID,template,__VA_ARGS__) + + +//----------------------------------------------------------------------- +// +// to_string for string interpolation +// +//----------------------------------------------------------------------- +// +// For use when returning "no such thing", such as +// when customizing "as" for std::variant +struct nonesuch_ { + auto operator==(auto const&) -> bool { return false; } +}; +constexpr inline nonesuch_ nonesuch; + +inline auto to_string(...) -> std::string +{ + return "(customize me - no cpp2::to_string overload exists for this type)"; +} + +inline auto to_string(nonesuch_) -> std::string +{ + return "(invalid type)"; +} + +inline auto to_string(std::same_as auto const&) -> std::string +{ + return "std::any"; +} + +inline auto to_string(bool b) -> std::string +{ + return b ? "true" : "false"; +} + +template +inline auto to_string(T const& t) -> std::string + requires requires { std::to_string(t); } +{ + return std::to_string(t); +} + +inline auto to_string(char const& t) -> std::string +{ + return std::string{t}; +} + +inline auto to_string(char const* s) -> std::string +{ + return std::string{s}; +} + +inline auto to_string(std::string const& s) -> std::string const& +{ + return s; +} + +template +inline auto to_string(T const& sv) -> std::string + requires (std::is_convertible_v + && !std::is_convertible_v) +{ + return std::string{sv}; +} + +template +inline auto to_string(std::variant const& v) -> std::string; + +template < typename T, typename U> +inline auto to_string(std::pair const& p) -> std::string; + +template < typename... Ts> +inline auto to_string(std::tuple const& t) -> std::string; + +template +inline auto to_string(std::optional const& o) -> std::string { + if (o.has_value()) { + return cpp2::to_string(o.value()); + } + return "(empty)"; +} + +template +inline auto to_string(std::variant const& v) -> std::string +{ + if (v.valueless_by_exception()) return "(empty)"; + // Need to guard this with is_any otherwise the get_if is illegal + if constexpr (is_any) if (std::get_if(&v) != nullptr) return "(empty)"; + + return std::visit([](auto&& arg) -> std::string { + return cpp2::to_string(arg); + }, v); +} + +template < typename T, typename U> +inline auto to_string(std::pair const& p) -> std::string +{ + return "(" + cpp2::to_string(p.first) + ", " + cpp2::to_string(p.second) + ")"; +} + +template < typename... Ts> +inline auto to_string(std::tuple const& t) -> std::string +{ + if constexpr (sizeof...(Ts) == 0) { + return "()"; + } else { + std::string out = "(" + cpp2::to_string(std::get<0>(t)); + std::apply([&out](auto&&, auto&&... args) { + ((out += ", " + cpp2::to_string(args)), ...); + }, t); + out += ")"; + return out; + } +} + +// MSVC supports it but doesn't define __cpp_lib_format until the ABI stablizes, but here +// don't care about that, so consider it as supported since VS 2019 16.10 (_MSC_VER 1929) +#if defined(__cpp_lib_format) || (defined(_MSC_VER) && _MSC_VER >= 1929) +inline auto to_string(auto&& value, std::string_view fmt) -> std::string +{ + return std::vformat(fmt, std::make_format_args(CPP2_FORWARD(value))); +} +#else +inline auto to_string(auto&& value, std::string_view) -> std::string +{ + // This Cpp1 implementation does not support -ted string interpolation + // so the best we can do is ignore the formatting request (degraded operation + // seems better than a dynamic error message string or a hard error) + return to_string(CPP2_FORWARD(value)); +} +#endif + + +//----------------------------------------------------------------------- +// +// is and as +// +//----------------------------------------------------------------------- +// + +//------------------------------------------------------------------------------------------------------------- +// Built-in is +// + +// For designating "holds no value" -- used only with is, not as +// TODO: Does this really warrant a new synonym? Perhaps "is void" is enough +using empty = void; + + +// Templates +// +template