Closed
Description
Currently, c2rust-analyze
can't handle any string literals, such as ""
or b""
:
callgraph traversal order:
DefId(0:3 ~ string_casts[c5c4]::f)
visit_statement(StorageLive(_1))
visit_statement(_1 = const "")
thread 'rustc' panicked at 'unexpected pointer type in &str', c2rust-analyze/src/context.rs:506:9
stack backtrace:
0: rust_begin_unwind
at /rustc/d394408fb38c4de61f765a3ed5189d2731a1da91/library/std/src/panicking.rs:584:5
1: core::panicking::panic_fmt
at /rustc/d394408fb38c4de61f765a3ed5189d2731a1da91/library/core/src/panicking.rs:142:14
2: c2rust_analyze::context::label_no_pointers::{{closure}}
at ./src/context.rs:503:9
3: c2rust_analyze::labeled_ty::LabeledTyCtxt<L>::label
at ./src/labeled_ty.rs:157:21
4: c2rust_analyze::context::label_no_pointers
at ./src/context.rs:502:5
5: <rustc_middle::mir::syntax::Operand as c2rust_analyze::context::TypeOf>::type_of
at ./src/context.rs:494:41
6: <&T as c2rust_analyze::context::TypeOf>::type_of
at ./src/context.rs:464:9
7: c2rust_analyze::context::AnalysisCtxt::type_of
at ./src/context.rs:241:9
8: c2rust_analyze::context::AnalysisCtxt::type_of_rvalue
at ./src/context.rs:304:36
9: c2rust_analyze::dataflow::type_check::TypeChecker::visit_statement
at ./src/dataflow/type_check.rs:233:30
10: c2rust_analyze::dataflow::type_check::visit
at ./src/dataflow/type_check.rs:388:13
11: c2rust_analyze::dataflow::generate_constraints
at ./src/dataflow/mod.rs:326:5
12: c2rust_analyze::run
at ./src/main.rs:480:45
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Fixing this is a prerequisite to #833.