Migrate C code to Rust
This report summarizes scanner evidence for immunant/c2rust, a Rust project with 4,832 GitHub stars. SynthScan examined 269,082 lines of code across 1334 source files, recording 695 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 3.6 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 541 finding(s).
Are imports declared and package/API names verified? 99 finding(s).
Are wrappers, guards, and repeated structures necessary? 149 finding(s).
Which changes need focused human review? 695 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 695 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| 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/labeled_ty.rs | 221 | /// Label multiple `Ty`s using a callback. | 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 | 581 | /// [`GlobalAnalysisCtxt`] to get a complete [`AnalysisCtxt`] for use within this function. | COMMENT |
| LOW | c2rust-analyze/src/analyze.rs | 721 | 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 | /// the `LTy`s of other value, rather than using the `PointerId`s assigned in `rvalue_tys`. | 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 | 421 | /// this function unifies the [`PointerId`]s that `lty1` and `lty2` have at that position. | 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 |
| 318 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 | 180 | 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 | 12 | CODE | |
| LOW | tests/integration/tests/__init__.py | 13 | 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 | 21 | CODE | |
| LOW | c2rust-refactor/gen/nt_match.py | 22 | 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 | 20 | CODE | |
| LOW | c2rust-refactor/gen/lr_expr.py | 22 | CODE | |
| LOW | c2rust-refactor/gen/lr_expr.py | 23 | 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 | 377 | // Here we relabel `expect_ty` to utilize the permissions it carries | COMMENT |
| MEDIUM | c2rust-analyze/src/borrowck/type_check.rs | 389 | // Here we relabel `expect_ty` to utilize the permissions it carries | COMMENT |
| MEDIUM | c2rust-refactor/src/driver.rs | 55 | /// 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 | 55 | CODE | |
| LOW | tests/integration/tests/__init__.py | 212 | 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 | 26 | CODE | |
| LOW | c2rust-refactor/gen/lr_expr.py | 95 | 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 | 119 | let field_adt_metadata = if let Some(field_adt_metadata) = self.acx.gacx.adt_metadata.table.get( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/package.py | 54 | except ValueError: | CODE |
| HIGH | scripts/test_translator.py | 622 | except OSError: | 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 | 445 | // 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 | 48 | // 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 | 171 | 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 | 1846 | /// The purpose of this function is to decide on whether or not a static initializer's | COMMENT |