Migrate C code to Rust
This report presents the forensic synthetic code analysis of immunant/c2rust, a Rust project with 4,753 GitHub stars. SynthScan v2.0 examined 263,965 lines of code across 1289 source files, recording 682 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 3.5 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 682 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | analysis/runtime/src/handlers.rs | 61 | } | COMMENT |
| LOW | analysis/runtime/src/runtime/global_runtime.rs | 21 | /// as it depends on [`super::FINISHED`], which is also a global. | COMMENT |
| LOW | analysis/runtime/src/runtime/scoped_runtime.rs | 161 | COMMENT | |
| LOW | analysis/tests/misc/src/pointers.rs | 21 | fn free(__ptr: *mut libc::c_void); | COMMENT |
| LOW | analysis/tests/lighttpd-minimal/src/main.rs | 1141 | // ); | COMMENT |
| LOW | c2rust-analyze/tests/filecheck/fixed.rs | 1 | use std::ptr; | COMMENT |
| LOW | c2rust-analyze/tests/filecheck/test_attrs.rs | 1 | #![feature(register_tool)] | COMMENT |
| LOW | c2rust-analyze/tests/filecheck/call1.rs | 1 | // With a naive iteration order, reaching a fixpoint used to take 3 iterations. By following a | COMMENT |
| LOW | c2rust-analyze/tests/filecheck/non_null_rewrites.rs | 161 | // | COMMENT |
| LOW | c2rust-analyze/tests/filecheck/non_null_rewrites.rs | 181 | // | COMMENT |
| LOW | c2rust-analyze/tests/filecheck/fields.rs | 1 | // CHECK-LABEL: === ADT Metadata === | COMMENT |
| LOW | c2rust-analyze/tests/filecheck/fields.rs | 41 | COMMENT | |
| LOW | c2rust-analyze/tests/filecheck/fields.rs | 81 | // CHECK-DAG: pub struct Data<'d,'h0,'h1,'h2> { | COMMENT |
| LOW | c2rust-analyze/tests/filecheck/trivial.rs | 1 | use std::cell::{Cell, RefCell}; | COMMENT |
| LOW | c2rust-analyze/tests/filecheck/call_cast.rs | 1 | #![feature(register_tool)] | COMMENT |
| LOW | c2rust-analyze/tests/filecheck/alias3.rs | 1 | use std::ptr; | COMMENT |
| LOW | c2rust-analyze/tests/filecheck/alloc.rs | 1 | #![feature(extern_types)] | COMMENT |
| LOW | c2rust-analyze/tests/filecheck/unrewritten_calls.rs | 21 | // CHECK-LABEL: fn good2<'h0,'h1>(x: &'h0 mut (i32)) -> &'h1 (i32) | COMMENT |
| LOW | c2rust-analyze/tests/common/mod.rs | 41 | } | COMMENT |
| LOW | c2rust-analyze/tests/common/mod.rs | 61 | COMMENT | |
| LOW | c2rust-analyze/tests/analyze/rust_intrinsic.rs | 1 | /// Check that `extern "rust-intrinsic"` (which can be generic) foreign `fn`s | COMMENT |
| LOW | c2rust-analyze/src/util.rs | 21 | /// A pointer projection, such as `&(*x.y).z`. The rvalue is split into a base pointer | COMMENT |
| LOW | c2rust-analyze/src/util.rs | 121 | /// A [`Trivial`] library function is one that has no effect on pointer permissions in its caller. | COMMENT |
| LOW | c2rust-analyze/src/util.rs | 141 | /// | COMMENT |
| LOW | c2rust-analyze/src/util.rs | 461 | /// which is defined as `*(from as *const To)` being a safe operation, | COMMENT |
| LOW | c2rust-analyze/src/util.rs | 481 | /// which we cannot check unlike for arrays, which we need for translated string literals. | COMMENT |
| LOW | c2rust-analyze/src/util.rs | 541 | Some(is_transmutable_to(from, to)) | COMMENT |
| LOW | c2rust-analyze/src/labeled_ty.rs | 1 | //! Provides a wrapper around `rustc::ty::Ty` with a label attached to each type constructor. We | COMMENT |
| LOW | c2rust-analyze/src/log.rs | 21 | /// Initialize an [`env_logger::Logger`]. | COMMENT |
| LOW | c2rust-analyze/src/analyze.rs | 141 | Some(s) => s, | COMMENT |
| LOW | c2rust-analyze/src/analyze.rs | 561 | _ => panic!("bad value {:?} for C2RUST_ANALYZE_REWRITE_MODE", val), | COMMENT |
| LOW | c2rust-analyze/src/analyze.rs | 641 | // Compute hypothetical region data for all ADTs and functions. This can only be done after | COMMENT |
| LOW | c2rust-analyze/src/main.rs | 61 | /// Set `$RUSTFLAGS` for the wrapped `cargo`. | COMMENT |
| LOW | c2rust-analyze/src/main.rs | 81 | rewrite_paths: Vec<OsString>, | COMMENT |
| LOW | c2rust-analyze/src/main.rs | 101 | /// Add "start/end of def" annotations as comments around each definition. These annotations | COMMENT |
| LOW | c2rust-analyze/src/main.rs | 161 | fn exit_with_status(status: ExitStatus) { | COMMENT |
| LOW | c2rust-analyze/src/main.rs | 281 | /// Note that despite setting `--crate-type bin` and [`is_bin_crate`] being true, | COMMENT |
| LOW | c2rust-analyze/src/main.rs | 301 | /// | COMMENT |
| LOW | c2rust-analyze/src/last_use.rs | 1 | //! Analysis to find the last use of a MIR local. For non-`Copy` types, the last use can be made | COMMENT |
| LOW | c2rust-analyze/src/last_use.rs | 41 | /// | COMMENT |
| LOW | c2rust-analyze/src/known_fn.rs | 101 | /// We skip non-ptr [`PointerId`]s in such iteration, | COMMENT |
| LOW | c2rust-analyze/src/known_fn.rs | 201 | /// Determine the [`PermissionSet`]s that should constrain [`PointerId`]s | COMMENT |
| LOW | c2rust-analyze/src/known_fn.rs | 241 | matching | COMMENT |
| LOW | c2rust-analyze/src/context.rs | 41 | bitflags! { | COMMENT |
| LOW | c2rust-analyze/src/context.rs | 61 | const WRITE = 0x0002; | COMMENT |
| LOW | c2rust-analyze/src/context.rs | 81 | COMMENT | |
| LOW | c2rust-analyze/src/context.rs | 101 | /// Non-zero but invalid pointers, such as those produced by: | COMMENT |
| LOW | c2rust-analyze/src/context.rs | 121 | /// * [`core::ptr::null`] | COMMENT |
| LOW | c2rust-analyze/src/context.rs | 181 | pub const STRING_LITERAL: Self = Self::union_all([Self::READ, Self::OFFSET_ADD, Self::STACK]); | COMMENT |
| LOW | c2rust-analyze/src/context.rs | 1141 | /// ```ignore | COMMENT |
| LOW | c2rust-analyze/src/dataflow/mod.rs | 21 | /// must also contain `OFFSET`. This is sufficient because all assignments and | COMMENT |
| LOW | c2rust-analyze/src/dataflow/type_check.rs | 21 | COMMENT | |
| LOW | c2rust-analyze/src/dataflow/type_check.rs | 41 | /// different modes, one for computing equivalence constraints and the other for computing all | COMMENT |
| LOW | c2rust-analyze/src/dataflow/type_check.rs | 161 | // We support only one case here, which is the case of null pointers | COMMENT |
| LOW | c2rust-analyze/src/dataflow/type_check.rs | 401 | /// Unify corresponding [`PointerId`]s in `lty1` and `lty2`. | COMMENT |
| LOW | c2rust-analyze/src/rewrite/mod.rs | 1 | //! The overall implementation strategy for rewriting is: | COMMENT |
| LOW | c2rust-analyze/src/rewrite/mod.rs | 61 | /// Emit some fixed text. | COMMENT |
| LOW | c2rust-analyze/src/rewrite/mod.rs | 81 | RemovedCast(Box<Rewrite>), | COMMENT |
| LOW | c2rust-analyze/src/rewrite/mod.rs | 101 | Let1(String, Box<Rewrite>), | COMMENT |
| LOW | c2rust-analyze/src/rewrite/apply.rs | 101 | COMMENT | |
| 308 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | examples/libxml2/common.py | 0 | reflect changes to all configuration variables that depend on llvm_ver | STRING |
| HIGH | examples/tinycc/common.py | 0 | reflect changes to all configuration variables that depend on llvm_ver | STRING |
| HIGH | examples/snudown/common.py | 0 | reflect changes to all configuration variables that depend on llvm_ver | STRING |
| HIGH | examples/tmux/common.py | 0 | reflect changes to all configuration variables that depend on llvm_ver | STRING |
| HIGH | scripts/common.py | 0 | reflect changes to all configuration variables that depend on llvm_ver | STRING |
| HIGH | examples/libxml2/common.py | 0 | add common command-line arguments that commonglobals understands to construct necessary paths. | STRING |
| HIGH | examples/tinycc/common.py | 0 | add common command-line arguments that commonglobals understands to construct necessary paths. | STRING |
| HIGH | examples/snudown/common.py | 0 | add common command-line arguments that commonglobals understands to construct necessary paths. | STRING |
| HIGH | examples/tmux/common.py | 0 | add common command-line arguments that commonglobals understands to construct necessary paths. | STRING |
| HIGH | scripts/common.py | 0 | add common command-line arguments that commonglobals understands to construct necessary paths. | STRING |
| HIGH | examples/libxml2/common.py | 0 | ask rustc for the correct path to its {lib,bin} directory. | STRING |
| HIGH | examples/tinycc/common.py | 0 | ask rustc for the correct path to its {lib,bin} directory. | STRING |
| HIGH | examples/snudown/common.py | 0 | ask rustc for the correct path to its {lib,bin} directory. | STRING |
| HIGH | examples/tmux/common.py | 0 | ask rustc for the correct path to its {lib,bin} directory. | STRING |
| HIGH | scripts/common.py | 0 | ask rustc for the correct path to its {lib,bin} directory. | STRING |
| HIGH | examples/libxml2/common.py | 0 | log fatal error and exit with specified error code. | STRING |
| HIGH | examples/tinycc/common.py | 0 | log fatal error and exit with specified error code. | STRING |
| HIGH | examples/snudown/common.py | 0 | log fatal error and exit with specified error code. | STRING |
| HIGH | examples/tmux/common.py | 0 | log fatal error and exit with specified error code. | STRING |
| HIGH | scripts/common.py | 0 | log fatal error and exit with specified error code. | STRING |
| HIGH | examples/libxml2/common.py | 0 | estimate the highest number of parallel link jobs we can run without causing the machine to swap. we conservatively esti | STRING |
| HIGH | examples/tinycc/common.py | 0 | estimate the highest number of parallel link jobs we can run without causing the machine to swap. we conservatively esti | STRING |
| HIGH | examples/snudown/common.py | 0 | estimate the highest number of parallel link jobs we can run without causing the machine to swap. we conservatively esti | STRING |
| HIGH | examples/tmux/common.py | 0 | estimate the highest number of parallel link jobs we can run without causing the machine to swap. we conservatively esti | STRING |
| HIGH | scripts/common.py | 0 | estimate the highest number of parallel link jobs we can run without causing the machine to swap. we conservatively esti | STRING |
| HIGH | examples/libxml2/common.py | 0 | make sure directory has a `.gitignore` file with a wildcard pattern in it. | STRING |
| HIGH | examples/tinycc/common.py | 0 | make sure directory has a `.gitignore` file with a wildcard pattern in it. | STRING |
| HIGH | examples/snudown/common.py | 0 | make sure directory has a `.gitignore` file with a wildcard pattern in it. | STRING |
| HIGH | examples/tmux/common.py | 0 | make sure directory has a `.gitignore` file with a wildcard pattern in it. | STRING |
| HIGH | scripts/common.py | 0 | make sure directory has a `.gitignore` file with a wildcard pattern in it. | STRING |
| HIGH | examples/libxml2/common.py | 0 | run c2rust-ast-exporter for a single compiler invocation. :param ast_expo: command object representing c2rust-ast-export | STRING |
| HIGH | examples/tinycc/common.py | 0 | run c2rust-ast-exporter for a single compiler invocation. :param ast_expo: command object representing c2rust-ast-export | STRING |
| HIGH | examples/snudown/common.py | 0 | run c2rust-ast-exporter for a single compiler invocation. :param ast_expo: command object representing c2rust-ast-export | STRING |
| HIGH | examples/tmux/common.py | 0 | run c2rust-ast-exporter for a single compiler invocation. :param ast_expo: command object representing c2rust-ast-export | STRING |
| HIGH | scripts/common.py | 0 | run c2rust-ast-exporter for a single compiler invocation. :param ast_expo: command object representing c2rust-ast-export | STRING |
| HIGH | examples/libxml2/common.py | 0 | run the transpiler on all c files in a compile commands database. | STRING |
| HIGH | examples/tinycc/common.py | 0 | run the transpiler on all c files in a compile commands database. | STRING |
| HIGH | examples/snudown/common.py | 0 | run the transpiler on all c files in a compile commands database. | STRING |
| HIGH | examples/tmux/common.py | 0 | run the transpiler on all c files in a compile commands database. | STRING |
| HIGH | scripts/common.py | 0 | run the transpiler on all c files in a compile commands database. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | c2rust-analyze/rename_nll_facts.py | 70 | def match_path_assigned_at_base(): | CODE |
| LOW | c2rust-analyze/rename_nll_facts.py | 95 | def match_use_of_var_derefs_origin(): | CODE |
| LOW | tests/integration/tests/__init__.py | 172 | def ensure_submodule_checkout(self): | CODE |
| LOW | tests/integration/tests/requirements.py | 102 | def collect_packages_for_host(yaml: Dict): | CODE |
| LOW | c2rust-refactor/gen/rewrite.py | 238 | def type_needs_generated_impl(d, trait): | CODE |
| LOW | c2rust-refactor/gen/rewrite.py | 445 | def do_recover_children_match(d): | CODE |
| LOW | c2rust-refactor/gen/rewrite.py | 512 | def generate_recover_children_impls(decls): | CODE |
| LOW | c2rust-refactor/gen/rewrite.py | 543 | def do_maybe_rewrite_seq_impl(d): | CODE |
| LOW | c2rust-refactor/gen/rewrite.py | 560 | def generate_maybe_rewrite_seq_impls(decls): | CODE |
| LOW | c2rust-refactor/doc/literate/refactor.py | 706 | def run_refactor_for_playground(args: argparse.Namespace, | CODE |
| LOW | c2rust-refactor/doc/literate/marks.py | 213 | def init_file_keep_mark_lines(f: File): | CODE |
| LOW | c2rust-refactor/doc/literate/file.py | 245 | def set_drop_irrelevant_lines(self, drop_irrelevant_lines: Annot[None]): | CODE |
| LOW⚡ | examples/libxml2/common.py | 216 | def get_rust_toolchain_libpath() -> str: | CODE |
| LOW⚡ | examples/libxml2/common.py | 220 | def get_rust_toolchain_binpath() -> str: | CODE |
| LOW⚡ | examples/tinycc/common.py | 216 | def get_rust_toolchain_libpath() -> str: | CODE |
| LOW⚡ | examples/tinycc/common.py | 220 | def get_rust_toolchain_binpath() -> str: | CODE |
| LOW | examples/snudown/translate.py | 34 | def generate_html_entries_header(snudown: str): | CODE |
| LOW⚡ | examples/snudown/common.py | 216 | def get_rust_toolchain_libpath() -> str: | CODE |
| LOW⚡ | examples/snudown/common.py | 220 | def get_rust_toolchain_binpath() -> str: | CODE |
| LOW⚡ | examples/tmux/common.py | 216 | def get_rust_toolchain_libpath() -> str: | CODE |
| LOW⚡ | examples/tmux/common.py | 220 | def get_rust_toolchain_binpath() -> str: | CODE |
| LOW⚡ | scripts/common.py | 216 | def get_rust_toolchain_libpath() -> str: | CODE |
| LOW⚡ | scripts/common.py | 220 | def get_rust_toolchain_binpath() -> str: | CODE |
| LOW | scripts/test_cross_checks.py | 18 | def checkout_and_build_libclevrbuf(): | CODE |
| LOW⚡ | c2rust-postprocess/tests/test_utils.py | 10 | def test_existing_file_returns_path(tmp_path: Path) -> None: | CODE |
| LOW⚡ | c2rust-postprocess/tests/test_utils.py | 20 | def test_existing_file_rejects_missing_file(tmp_path: Path) -> None: | CODE |
| LOW⚡ | c2rust-postprocess/tests/test_utils.py | 29 | def test_existing_file_rejects_directory(tmp_path: Path) -> None: | CODE |
| LOW⚡ | c2rust-postprocess/tests/test_utils.py | 34 | def test_get_rust_files_raises_on_missing_path(): | CODE |
| LOW | c2rust-postprocess/tests/test_utils.py | 45 | def test_get_rust_files_happy_path(tmp_path): | CODE |
| LOW | c2rust-postprocess/tests/test_utils.py | 55 | def test_test_rust_files_finds_qsort_rs(transpile_qsort): | CODE |
| LOW | c2rust-postprocess/tests/conftest.py | 20 | def generate_compile_commands_for_qsort(ensure_bear): | CODE |
| LOW | c2rust-postprocess/tests/test_apply_file.py | 115 | def test_accepted_batch_is_applied(patched_io, rust_file: Path) -> None: | CODE |
| LOW | c2rust-postprocess/tests/test_apply_file.py | 130 | def test_rejection_counts_failure_and_invalidates_final_response( | CODE |
| LOW | c2rust-postprocess/tests/test_apply_file.py | 149 | def test_rejection_raises_without_keep_going(patched_io, rust_file: Path) -> None: | CODE |
| LOW | c2rust-postprocess/tests/test_apply_file.py | 164 | def test_no_update_rust_is_purely_generative(patched_io, rust_file: Path) -> None: | CODE |
| LOW | c2rust-postprocess/tests/test_apply_file.py | 182 | def test_without_validator_candidates_are_applied(patched_io, rust_file: Path) -> None: | CODE |
| LOW | c2rust-postprocess/tests/test_apply_file.py | 196 | def test_format_exclude_entries_groups_by_file(tmp_path: Path) -> None: | CODE |
| LOW | c2rust-postprocess/tests/test_apply_file.py | 228 | def split_merge_tools_available() -> bool: | CODE |
| LOW | c2rust-postprocess/tests/test_apply_file.py | 238 | def test_end_to_end_type_invalid_rewrite_is_isolated(tmp_path: Path) -> None: | CODE |
| LOW | c2rust-postprocess/tests/test_definitions.py | 18 | def test_get_c_sourcefile_qsort(generate_compile_commands_for_qsort, transpile_qsort): | CODE |
| LOW | c2rust-postprocess/tests/test_definitions.py | 31 | def test_get_rust_function_spans(transpile_qsort, pytestconfig): | CODE |
| LOW | c2rust-postprocess/tests/test_definitions.py | 68 | def test_c_function_splitting(generate_compile_commands_for_qsort, transpile_qsort): | CODE |
| LOW | c2rust-postprocess/tests/test_definitions.py | 89 | def test_demote_misplaced_doc_comments(): | CODE |
| LOW⚡ | c2rust-postprocess/tests/test_definitions.py | 123 | def test_demote_misplaced_doc_comments_inner_doc(): | STRING |
| LOW⚡ | c2rust-postprocess/tests/test_definitions.py | 128 | def test_rust_parse_has_errors(): | STRING |
| LOW⚡ | c2rust-postprocess/tests/test_definitions.py | 133 | def test_comment_insertion_qsort(): | STRING |
| LOW | c2rust-postprocess/tests/test_validate.py | 46 | def test_valid_batch_is_retained_with_one_check(source: Path) -> None: | CODE |
| LOW | c2rust-postprocess/tests/test_validate.py | 58 | def test_mixed_batch_retains_only_valid_candidates(source: Path) -> None: | CODE |
| LOW | c2rust-postprocess/tests/test_validate.py | 74 | def test_single_rejected_candidate_restores_baseline_exactly(source: Path) -> None: | CODE |
| LOW | c2rust-postprocess/tests/test_validate.py | 84 | def test_interacting_candidates_reject_only_one(source: Path) -> None: | CODE |
| LOW | c2rust-postprocess/tests/test_validate.py | 102 | def test_check_exception_restores_file(source: Path) -> None: | CODE |
| LOW | c2rust-postprocess/tests/test_validate.py | 111 | def test_apply_exception_restores_file(source: Path) -> None: | CODE |
| LOW | c2rust-postprocess/tests/test_validate.py | 124 | def test_empty_batch_runs_no_check(source: Path) -> None: | CODE |
| LOW | c2rust-postprocess/tests/test_validate.py | 130 | def test_find_manifest_returns_nearest(tmp_path: Path) -> None: | CODE |
| LOW⚡ | c2rust-postprocess/tests/test_validate.py | 161 | def test_cargo_checker_passes_valid_crate(tmp_path: Path) -> None: | STRING |
| LOW⚡ | c2rust-postprocess/tests/test_validate.py | 167 | def test_cargo_checker_reports_type_error(tmp_path: Path) -> None: | STRING |
| LOW⚡ | c2rust-postprocess/tests/test_validate.py | 175 | def test_main_aborts_on_broken_baseline(tmp_path: Path) -> None: | STRING |
| LOW | c2rust-postprocess/tests/test_comments_transform.py | 50 | def test_directive_line_comment_survives_preprocessed_check() -> None: | CODE |
| LOW | c2rust-postprocess/tests/test_comments_transform.py | 113 | def test_body_doc_comments_are_demoted(monkeypatch) -> None: | STRING |
| LOW | c2rust-postprocess/tests/test_comments_transform.py | 142 | def test_syntactically_invalid_response_is_rejected() -> None: | STRING |
| 29 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | c2rust-analyze/scripts/auto_fix_errors.py | 7 | CODE | |
| LOW | c2rust-analyze/scripts/pointwise_metrics.py | 25 | CODE | |
| LOW | c2rust-analyze/scripts/extract_working_defs.py | 13 | CODE | |
| LOW | tests/integration/tests/__init__.py | 10 | CODE | |
| LOW | tests/integration/tests/__init__.py | 11 | CODE | |
| LOW | tests/integration/tests/requirements.py | 5 | CODE | |
| LOW | c2rust-refactor/gen/ast_equiv.py | 21 | CODE | |
| LOW | c2rust-refactor/gen/ast_equiv.py | 23 | CODE | |
| LOW | c2rust-refactor/gen/ast_equiv.py | 24 | CODE | |
| LOW | c2rust-refactor/gen/process_ast.py | 7 | CODE | |
| LOW | c2rust-refactor/gen/matcher.py | 21 | CODE | |
| LOW | c2rust-refactor/gen/matcher.py | 23 | CODE | |
| LOW | c2rust-refactor/gen/matcher.py | 24 | CODE | |
| LOW | c2rust-refactor/gen/ast_deref.py | 3 | CODE | |
| LOW | c2rust-refactor/gen/nt_match.py | 18 | CODE | |
| LOW | c2rust-refactor/gen/nt_match.py | 19 | CODE | |
| LOW | c2rust-refactor/gen/get_span.py | 22 | CODE | |
| LOW | c2rust-refactor/gen/get_span.py | 22 | CODE | |
| LOW | c2rust-refactor/gen/get_span.py | 24 | CODE | |
| LOW | c2rust-refactor/gen/get_span.py | 25 | CODE | |
| LOW | c2rust-refactor/gen/get_node_id.py | 19 | CODE | |
| LOW | c2rust-refactor/gen/get_node_id.py | 19 | CODE | |
| LOW | c2rust-refactor/gen/get_node_id.py | 21 | CODE | |
| LOW | c2rust-refactor/gen/get_node_id.py | 22 | CODE | |
| LOW | c2rust-refactor/gen/mac_match.py | 18 | CODE | |
| LOW | c2rust-refactor/gen/mac_match.py | 19 | CODE | |
| LOW | c2rust-refactor/gen/lr_expr.py | 17 | CODE | |
| LOW | c2rust-refactor/gen/lr_expr.py | 19 | CODE | |
| LOW | c2rust-refactor/gen/lr_expr.py | 20 | CODE | |
| LOW | c2rust-refactor/gen/mac_table.py | 36 | CODE | |
| LOW | c2rust-refactor/gen/mac_table.py | 37 | CODE | |
| LOW | c2rust-refactor/gen/ast_names.py | 3 | CODE | |
| LOW | c2rust-refactor/gen/ast_names.py | 4 | CODE | |
| LOW | c2rust-refactor/gen/list_node_ids.py | 10 | CODE | |
| LOW | c2rust-refactor/gen/list_node_ids.py | 12 | CODE | |
| LOW | c2rust-refactor/gen/list_node_ids.py | 13 | CODE | |
| LOW | c2rust-refactor/gen/rewrite.py | 148 | CODE | |
| LOW | c2rust-refactor/gen/rewrite.py | 150 | CODE | |
| LOW | c2rust-refactor/gen/rewrite.py | 153 | CODE | |
| LOW | c2rust-refactor/doc/literate/refactor.py | 7 | CODE | |
| LOW | c2rust-refactor/doc/literate/refactor.py | 13 | CODE | |
| LOW | c2rust-refactor/doc/literate/refactor.py | 14 | CODE | |
| LOW | c2rust-refactor/doc/literate/render.py | 1 | CODE | |
| LOW | c2rust-refactor/doc/literate/render.py | 8 | CODE | |
| LOW | c2rust-refactor/doc/literate/render.py | 8 | CODE | |
| LOW | c2rust-refactor/doc/literate/render.py | 10 | CODE | |
| LOW | c2rust-refactor/doc/literate/annot.py | 12 | CODE | |
| LOW | c2rust-refactor/doc/literate/marks.py | 3 | CODE | |
| LOW | c2rust-refactor/doc/literate/diff.py | 1 | CODE | |
| LOW | c2rust-refactor/doc/literate/highlight.py | 5 | CODE | |
| LOW | examples/json-c/translate.py | 6 | CODE | |
| LOW | examples/json-c/translate.py | 6 | CODE | |
| LOW | examples/json-c/translate.py | 13 | CODE | |
| LOW | examples/libxml2/translate.py | 4 | CODE | |
| LOW | examples/libxml2/translate.py | 4 | CODE | |
| LOW | examples/libxml2/translate.py | 13 | CODE | |
| LOW | examples/libxml2/translate.py | 16 | CODE | |
| LOW | examples/libxml2/common.py | 15 | CODE | |
| LOW | examples/libxml2/patch_translated_code.py | 5 | CODE | |
| LOW | examples/libxml2/patch_translated_code.py | 6 | CODE | |
| 29 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | examples/json-c/repo/ltmain.sh | 1229 | # This function is only a basic sanity check; it will hardly flush out | COMMENT |
| MEDIUM | examples/json-c/repo/ltmain.sh | 1240 | # This function implements the same check as func_lalib_p without | COMMENT |
| MEDIUM | examples/json-c/repo/ltmain.sh | 1263 | # This function is only a basic sanity check; it will hardly flush out | COMMENT |
| MEDIUM | examples/json-c/repo/ltmain.sh | 1272 | # This function is only a basic sanity check; it will hardly flush out | COMMENT |
| MEDIUM | examples/json-c/repo/ltmain.sh | 1297 | # This function is only a basic sanity check; it will hardly flush out | COMMENT |
| MEDIUM | examples/json-c/repo/ltmain.sh | 1433 | # Create a libtool object file (analogous to a ".la" file), | COMMENT |
| MEDIUM | examples/json-c/repo/ltmain.sh | 6028 | # Create the object directory. | COMMENT |
| MEDIUM | examples/json-c/repo/ltmain.sh | 8656 | # Create the old-style object. | COMMENT |
| MEDIUM | examples/json-c/repo/ltmain.sh | 8676 | # Create an invalid libtool object if no PIC, so that we don't | COMMENT |
| MEDIUM | examples/tinycc/translate.py | 88 | # Create the src dir if it doesn't already exist | STRING |
| MEDIUM | examples/robotfindskitten/repo/ltmain.sh | 888 | # Create a libtool object file (analogous to a ".la" file), | COMMENT |
| MEDIUM | examples/robotfindskitten/repo/ltmain.sh | 1982 | # Create the object directory. | COMMENT |
| MEDIUM | examples/robotfindskitten/repo/ltmain.sh | 4265 | # Create the old-style object. | COMMENT |
| MEDIUM | examples/robotfindskitten/repo/ltmain.sh | 4295 | # Create an invalid libtool object if no PIC, so that we don't | COMMENT |
| MEDIUM | scripts/test_examples.py | 152 | # Create a link to the example data files | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | examples/json-c/translate.py | 39 | mk_select('crate; desc(fn && pub);') + [';', 'wrap_api'], | CODE |
| HIGH⚡ | examples/json-c/translate.py | 43 | mk_select('crate; desc(foreign_item && fn && !name(".*locale.*"));') + | CODE |
| HIGH⚡ | examples/json-c/translate.py | 46 | mk_select(r'crate; desc(foreign_item && fn && name("__isnan(l|f)?"));') + | CODE |
| HIGH⚡ | examples/json-c/translate.py | 49 | mk_select(r'crate; desc(foreign_item && fn && name("__isinf(l|f)?"));') + | CODE |
| HIGH | c2rust-postprocess/tests/conftest.py | 24 | # compile to /dev/null, we just want compile_commands.json | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | c2rust-analyze/src/analyze.rs | 133 | /// but I'll soon replace it with a more robust (but complex) version | COMMENT |
| MEDIUM | c2rust-analyze/src/borrowck/type_check.rs | 371 | // Here we relabel `expect_ty` to utilize the permissions it carries | COMMENT |
| MEDIUM | c2rust-analyze/src/borrowck/type_check.rs | 383 | // Here we relabel `expect_ty` to utilize the permissions it carries | COMMENT |
| MEDIUM | c2rust-refactor/src/driver.rs | 52 | /// robust against broken code. (For example, phase 3 provides typechecking results, but can't be | COMMENT |
| MEDIUM | examples/json-c/repo/ltmain.sh | 397 | # Sed substitution that helps us do robust quoting. It backslashifies | COMMENT |
| MEDIUM | examples/json-c/repo/ltmain.sh | 3852 | # Sed substitution that helps us do robust quoting. It backslashifies | COMMENT |
| MEDIUM | examples/json-c/repo/ltmain.sh | 7681 | # This code stresses the "libraries are programs" paradigm to its | COMMENT |
| MEDIUM | examples/json-c/repo/doc/html/printbuf_8h.html | 194 | <p>This is an optimization wrapper around <a class="el" href="printbuf_8h.html#a22f09779a19db59a83e7cb8c2ce4c75f">printb | CODE |
| MEDIUM | examples/robotfindskitten/repo/ltmain.sh | 86 | # Sed substitution that helps us do robust quoting. It backslashifies | COMMENT |
| MEDIUM | examples/robotfindskitten/repo/ltmain.sh | 3517 | # This code stresses the "libraries are programs" paradigm to its | COMMENT |
| MEDIUM | examples/robotfindskitten/repo/ltmain.sh | 5259 | # Sed substitution that helps us do robust quoting. It backslashifies | COMMENT |
| MEDIUM | scripts/test_examples.py | 87 | # Should be used on projects that utilize GNU Build Systems | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | c2rust-analyze/scripts/auto_fix_errors.py | 64 | CODE | |
| LOW | c2rust-analyze/scripts/extract_working_defs.py | 52 | CODE | |
| LOW | tests/integration/tests/__init__.py | 47 | CODE | |
| LOW | tests/integration/tests/__init__.py | 204 | CODE | |
| LOW | c2rust-refactor/gen/ast_equiv.py | 90 | CODE | |
| LOW | c2rust-refactor/gen/process_ast.py | 29 | CODE | |
| LOW | c2rust-refactor/gen/matcher.py | 82 | CODE | |
| LOW | c2rust-refactor/gen/lr_expr.py | 23 | CODE | |
| LOW | c2rust-refactor/gen/rewrite.py | 344 | CODE | |
| LOW | c2rust-refactor/gen/rewrite.py | 445 | CODE | |
| LOW | c2rust-refactor/doc/literate/refactor.py | 356 | CODE | |
| LOW | c2rust-refactor/doc/literate/refactor.py | 209 | CODE | |
| LOW | c2rust-refactor/doc/literate/render.py | 62 | CODE | |
| LOW | c2rust-refactor/doc/literate/render.py | 243 | CODE | |
| LOW | c2rust-refactor/doc/literate/__init__.py | 99 | CODE | |
| LOW | c2rust-refactor/doc/literate/__init__.py | 146 | CODE | |
| LOW | c2rust-refactor/doc/literate/__init__.py | 237 | CODE | |
| LOW | c2rust-refactor/doc/literate/marks.py | 84 | CODE | |
| LOW | c2rust-refactor/doc/literate/diff.py | 38 | CODE | |
| LOW | c2rust-refactor/doc/literate/diff.py | 124 | CODE | |
| LOW | c2rust-refactor/doc/literate/highlight.py | 98 | CODE | |
| LOW | scripts/package.py | 144 | CODE | |
| LOW | scripts/test_translator.py | 229 | CODE | |
| LOW | scripts/convert_build_commands.py | 27 | CODE | |
| LOW | scripts/build_cross_checks.py | 29 | CODE | |
| LOW | scripts/test_rust_refactor.py | 39 | CODE | |
| LOW | c2rust-postprocess/postprocess/cache.py | 83 | CODE | |
| LOW | c2rust-postprocess/postprocess/cache.py | 91 | CODE | |
| LOW | c2rust-postprocess/postprocess/definitions/__init__.py | 151 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/libxml2/common.py | 159 | def update_args(self, args: Optional[Any] = None) -> None: | CODE |
| LOW⚡ | examples/libxml2/common.py | 210 | def update_or_init_submodule(submodule_path: str) -> None: | CODE |
| LOW | examples/tinycc/common.py | 159 | def update_args(self, args: Optional[Any] = None) -> None: | CODE |
| LOW⚡ | examples/tinycc/common.py | 210 | def update_or_init_submodule(submodule_path: str) -> None: | CODE |
| LOW | examples/snudown/common.py | 159 | def update_args(self, args: Optional[Any] = None) -> None: | CODE |
| LOW⚡ | examples/snudown/common.py | 210 | def update_or_init_submodule(submodule_path: str) -> None: | CODE |
| LOW | examples/tmux/common.py | 159 | def update_args(self, args: Optional[Any] = None) -> None: | CODE |
| LOW⚡ | examples/tmux/common.py | 210 | def update_or_init_submodule(submodule_path: str) -> None: | CODE |
| LOW | scripts/common.py | 159 | def update_args(self, args: Optional[Any] = None) -> None: | CODE |
| LOW⚡ | scripts/common.py | 210 | def update_or_init_submodule(submodule_path: str) -> None: | CODE |
| LOW⚡ | c2rust-postprocess/tests/test_cache.py | 32 | def set_age_days(entry_dir: Path, days: int) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | c2rust-analyze/src/borrowck/type_check.rs | 113 | let field_adt_metadata = if let Some(field_adt_metadata) = self.acx.gacx.adt_metadata.table.get( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cross-checks/c-checks/clang-plugin/runtime/hash.c | 52 | // TODO: implement more types, e.g., bool, char, double, float | COMMENT |
| LOW | c2rust-refactor/src/analysis/ownership/intra.rs | 439 | // TODO: implement these; we shouldn't see them in transpiled | COMMENT |
| LOW | scripts/test_rust_refactor.py | 90 | # TODO: implement rustfmt and diff actions from `run-test.sh` | COMMENT |
| LOW | c2rust-postprocess/postprocess/models/gpt.py | 25 | # TODO: implement tool calling support | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/json-c/repo/ltmain.sh | 2593 | # Check if any of the arguments is a wrapper script. | COMMENT |
| LOW | examples/json-c/repo/ltmain.sh | 8382 | # Loop over the list of objects to be linked. | COMMENT |
| LOW | examples/robotfindskitten/repo/ltmain.sh | 4062 | # Loop over the list of objects to be linked. | COMMENT |
| LOW | examples/robotfindskitten/repo/ltmain.sh | 6392 | # Check if any of the arguments is a wrapper script. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/libxml2/common.py | 467 | CODE | |
| LOW | examples/tinycc/common.py | 467 | CODE | |
| LOW | examples/snudown/common.py | 467 | CODE | |
| LOW | examples/tmux/common.py | 467 | CODE | |
| LOW | scripts/common.py | 467 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/example/src/test_file_xfail.rs | 6 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam non mauris | CODE |
| LOW | tests/unit/example/src/test_file_xfail.rs | 6 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam non mauris | CODE |
| LOW | tests/unit/example/src/skip_me.c | 5 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam non mauris | CODE |
| LOW | tests/unit/example/src/skip_me.c | 5 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam non mauris | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | c2rust-refactor/src/driver.rs | 45 | // TODO: don't forget to call span_fix after parsing | COMMENT |
| LOW | examples/json-c/repo/json_object.h | 460 | * ownership through json_object_get (& don't forget to do a json_object_put | COMMENT |
| LOW | examples/json-c/repo/doc/html/json__object_8h.html | 1851 | <p><em>No</em> reference counts will be changed. There is no need to manually adjust reference counts through the json_o | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/integration/tests/__init__.py | 163 | except Exception: # noqa | CODE |
| MEDIUM | c2rust-postprocess/postprocess/definitions/clang.py | 52 | print(f"Error running clang on {source_file}: {e.stderr}") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | c2rust-transpile/src/translator/mod.rs | 1820 | /// The purpose of this function is to decide on whether or not a static initializer's | COMMENT |